Ivan Petkov
2ce1a3313e
Eliminate dead code ( #148 )
2022-10-23 23:20:22 +00:00
Ivan Petkov
6b864957e1
checks: add tests for building crates using workspace inheritance ( #147 )
2022-10-23 22:56:18 +00:00
Roman Volosatovs
097afacc53
mkDummySrc: support freestanding targets ( #126 )
...
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
Co-authored-by: Ivan Petkov <ivanppetkov@gmail.com>
2022-10-19 02:13:38 +00:00
Ivan Petkov
1bea2b5212
crateNameFromCargoToml: handle workspace inheritance ( #144 )
2022-10-16 17:12:31 +00:00
Ivan Petkov
d78cb0453b
cargoBuild: do not run tests
2022-10-09 12:56:21 -10:00
Ivan Petkov
b84c191b59
buildDepsOnly: accept cargo{Check,Test}ExtraArgs
2022-10-09 12:56:21 -10:00
Ivan Petkov
17f4ff6ad7
buildPackage: use mkCargoDerivation instead of cargoBuild
2022-10-09 12:56:21 -10:00
Ivan Petkov
f27d6dd45d
cargoTarpaulin: require that cargoArtifacts
are specified
2022-10-09 11:33:57 -10:00
Ivan Petkov
0b71f12fc7
Add cargoTest for running crate tests ( #132 )
2022-10-09 21:00:17 +00:00
Ivan Petkov
1127ed2587
cargoNextest: use mkCargoDerivation instead of cargoBuild
2022-10-09 09:40:53 -10:00
Ivan Petkov
2b70a82caf
cargoClippy: use mkCargoDerivation instead of cargoBuild
2022-10-09 09:40:53 -10:00
Ivan Petkov
0ad37656bc
cargoTarpaulin: use mkCargoDerivation instead of cargoBuild
2022-10-09 09:40:53 -10:00
Ivan Petkov
8c97f06448
cargoAudit: use mkCargoDerivation instead of cargoBuild
2022-10-09 09:40:53 -10:00
Ivan Petkov
b61434b0b2
cargoDoc: use mkCargoDerivation instead of cargoBuild
2022-10-09 09:40:53 -10:00
Ivan Petkov
51bbfae3f6
cargoFmt: use mkCargoDerivation instead of cargoBuild
2022-10-09 09:40:53 -10:00
Ivan Petkov
cc7d69f1ed
mkCargoDerivation: default to empty checkPhaseCargoCommand
2022-10-09 09:40:53 -10:00
Ivan Petkov
d4a3bee75f
mkCargoDerivation: populate pname and version if not specified
2022-10-09 09:40:53 -10:00
Ivan Petkov
d3db2ecf01
mkCargoDerivation: automatically vendor deps if cargoVendorDir not set
2022-10-09 09:40:53 -10:00
Ivan Petkov
0017a8da68
flake: deprecate the packages
flake output ( #130 )
...
Even though the setup hooks can be thought of as "packages", it makes
things much more simple to access everything from the same place
2022-10-09 10:28:48 -07:00
Ivan Petkov
fc545e6784
hooks: do not use substitutions for needed tools ( #128 )
...
* Using substitutions for build hooks is a great way to ensure the
necessary utility is present without making the caller supply it to
the builder, except it makes things confusing when applying overrides
* For example, the `installFromCargoBuildLog` hook was inadvertently
ignoring any `cargo` overrides applied to the entire `lib`
instantiation
* By removing all explicit substations we also side step the issue of
trying to select the correct build/host/target version of the tool and
use whatever is present in the build environment
2022-10-09 02:03:05 +00:00
Ivan Petkov
22f971a126
mkDummySrc: fix handling of build scripts ( #122 )
...
* Instead of injecting our own dummy `build.rs` file, we will patch the
`Cargo.toml` files to specify a build script in the Nix store
* This allow cargo to notice the difference (i.e. changed build script
path) where it could not before (due to nix enforcing that all sources
always have the same timestamp)
2022-09-28 02:05:06 +00:00
Ivan Petkov
21e627606c
mkDummySrc: allow running a custom script after dummification is done ( #116 )
2022-09-27 06:25:09 +00:00
Ivan Petkov
06b1f7bd80
Improve stripping references to vendored sources ( #120 )
...
* Also add removeReferencesToVendoredSourcesHook
2022-09-24 23:45:56 +00:00
Ivan Petkov
c12fec0a8b
Add cleanCargoSource and filterCargoSources ( #110 )
2022-09-21 01:27:47 +00:00
Ivan Petkov
4f691ac0ce
cargoDoc: add ability to run cargo doc
on a workspace ( #107 )
2022-09-20 01:05:43 +00:00
Ivan Petkov
352c7ff1b8
mkCargoDerivation: add default configurePhase
( #106 )
...
This is done to avoid breaking builds by including puts happen to have
setup-hooks which try to claim the configure phase (such as `cmake`).
The old behavior can be brought back by setting `configurePhase = null;`
on the derivation.
2022-09-18 01:18:03 +00:00
Ivan Petkov
ca294409f3
mkCargoDerivation: allow ergonomically overriding stdenv ( #101 )
2022-09-15 10:20:48 -07:00
Ivan Petkov
924250db18
cargoAudit: ensure audit.toml is kept when cleaning source ( #98 )
2022-09-15 00:44:40 +00:00
Ivan Petkov
dbda889c05
Replace source prefix mapping with remove-references-to
( #90 )
2022-08-28 01:44:07 +00:00
Ivan Petkov
b5ac03b201
vendorGitDeps: ignore crates not referenced by Cargo.lock ( #71 )
2022-08-12 23:48:53 +00:00
Ivan Petkov
8de515289f
cargoClippy: add --all-targets to default cargoClippyExtraArgs ( #67 )
...
* This allows callers to opt-out of using `--all-targets` without having
to override the entire cargo command itself
2022-08-11 23:58:32 +00:00
Ivan Petkov
7474abe543
vendorGitDeps: throw descriptive error if locked revision is missing ( #58 )
2022-08-07 12:07:33 -07:00
Ivan Petkov
57448afcec
cargoAudit: filter source to only include Cargo.lock files ( #56 )
...
* Seems like cargo-audit only needs a `Cargo.lock` file and an advisory
database to run, so we can filter the inputs down even further to
avoid rebuilds and file copying into the Nix sandbox
2022-08-01 15:55:52 -07:00
ngerstle-cognite
50a021ad55
Add support for cargo audit ( #53 )
...
Co-authored-by: Ivan Petkov <ivanppetkov@gmail.com>
2022-07-30 08:52:07 -07:00
Ivan Petkov
3c65d924ec
Add cargo-nextest
2022-07-23 16:29:05 -07:00
Ivan Petkov
a2dd1b8ad4
Allow configuring which cargo profile is selected
2022-07-23 11:10:45 -07:00
Ivan Petkov
bce972e03b
Add cargoHelperFunctionsHook
...
* It will automatically capture and log all `cargo` invocations
2022-07-23 11:11:36 -07:00
Ivan Petkov
7fc1a8fec3
Remove --workspace
from all default commands
...
* This allows for fewer assumptions about the project structure
* The old behavior can easily be brought back by setting `cargoExtraArgs
= "--workspace";` in any derivation
2022-07-20 19:27:52 -07:00
Ivan Petkov
9eb8357f53
Reformat nix files
2022-07-09 20:20:15 -07:00
Ivan Petkov
b9b1c322a5
mkDummySrc: fix handling when src is already filtered
2022-06-29 20:49:12 -07:00
Ivan Petkov
43aab4b7d8
Add .overrideToolchain convenience method
2022-06-26 11:25:40 -07:00
Ivan Petkov
49141d2b37
Import groupBy from lib not builtins
...
* lib.groupBy will default to builtins.groupBy if available, so it is
safer to use
2022-06-07 14:51:20 -07:00
Yusuf Bera Ertan
8f0b89244f
fix(mkDummySrc): remove IFD trigger by not checking if cargo lock path exists, the build will fail if it doesnt
2022-06-05 14:04:20 +03:00
Ivan Petkov
6fd4d85dac
buildDepsOnly: remove (now unnecessary) cargoLock check
...
* Previously we would manually copy over any Cargo.lock file from the
source to the dummified source
* Now, `mkDummySrc` will implicitly copy the file if it is present, or
ignore it if missing, so this check is a bit overzealous now
* Loosening this check also allows callers to sneak in their own
Cargo.lock file (e.g. through a patch phase) while still avoiding IFD
2022-06-02 20:51:28 -07:00
Ivan Petkov
c2acd4b443
Minor cleanup
2022-06-02 19:49:44 -07:00
adisbladis
a1e56fba69
Stop passing around fromTOML
...
It's a builtin that we can just use directly.
2022-06-03 02:01:02 +08:00
adisbladis
2491382d63
Remove internal dependency on toTOML
2022-06-03 02:01:02 +08:00
Ivan Petkov
4bd60ab128
Drop compatibility for Nix versions below 2.8.1
2022-06-01 17:05:52 -07:00
Ivan Petkov
4f2b1c43c9
mkDummySrc: fix cache invalidation if src is flake root
2022-05-16 20:10:38 -07:00
Ivan Petkov
c8b8597ecb
Merge pull request #26 from firestack/fix/relative-paths
...
fix(nix-relative-paths): quote relative paths to allow for external sources
2022-05-10 17:21:29 -07:00