Commit Graph

270 Commits

Author SHA1 Message Date
Ivan Petkov
6b864957e1
checks: add tests for building crates using workspace inheritance (#147) 2022-10-23 22:56:18 +00:00
Ivan Petkov
bdea451966
Update flake.lock (#146)
flake.lock: Update

Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ff9793cfd1a25145a7e591af604675b3d6f68987' (2022-09-26)
  → 'github:NixOS/nixpkgs/31acb601e388eb7d552f137dbe5cb4677fdf1c3c' (2022-10-22)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/8643439d1db65a33ca6813d0aa8956b2be4bd91d' (2022-10-18)
  → 'github:oxalica/rust-overlay/af2e939ba2c7cbb188d06d6650c6353b10b3f2be' (2022-10-23)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-10-23 22:04:20 +00:00
Ivan Petkov
4d6f74978e
ci: disable automatic approval for flake update workflow 2022-10-23 14:42:23 -07:00
Ivan Petkov
af1da2f271
ci: rewrite flake update workflow
* Rewrite the workflow to open (and then immediately approve) a PR with
  the flake updates, allowing the rest of the branch protection rules
  (i.e. running the test suite) to be applied before merging
2022-10-23 14:20:57 -07:00
Ivan Petkov
eadc11533b
ci: schedule periodic flake updates 2022-10-21 17:36:43 -07:00
Ivan Petkov
a7e27ff425
ci: actually update the flake 2022-10-20 21:07:16 -07:00
Ivan Petkov
9ed120ca50
ci: move test logic into a script 2022-10-20 21:05:09 -07:00
Ivan Petkov
9c16d69328
ci: allow test workflow to be called 2022-10-20 17:58:03 -07:00
Ivan Petkov
77dcc1315f
ci: update workflow 2022-10-19 21:06:08 -07:00
Ivan Petkov
e98f7263f4
ci: Add workflow for updating flake dependencies 2022-10-19 21:01:43 -07: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
1020bbe7dd Remove deprecated package bindings 2022-10-09 11:33:57 -10:00
Ivan Petkov
f2a92d6010
Update CHANGELOG 2022-10-09 14:08:50 -07:00
Ivan Petkov
a1e9a4197c
Fixup docs (#133) 2022-10-09 21:02:27 +00: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
37def1e9c3
readme: update with advice on patching Cargo.lock (#129) 2022-10-09 02:10:13 +00: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
755acd231a
Update changelog 2022-09-28 17:54:49 -07: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
1428f3ae64
Update flake deps (#121) 2022-09-26 21:52:38 -07: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
78f7d689fb
docs: fix typos (#109) 2022-09-20 01:08:24 +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
99c8438f51
cargoAudit: fix tests, config file goes in .cargo/audit.toml (#100) 2022-09-15 16:17:48 +00:00
Ivan Petkov
924250db18
cargoAudit: ensure audit.toml is kept when cleaning source (#98) 2022-09-15 00:44:40 +00:00
Ivan Petkov
2d5e7fbfce
Update CHANGELOG 2022-09-07 20:47:33 -07:00
Ivan Petkov
d9f394e4e2
Document specifying/overriding a Cargo.lock file (#94) 2022-08-30 16:12:41 +00:00
Ivan Petkov
77d7e549a0
flake.lock: Update (#93)
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249' (2022-07-04)
  → 'github:numtide/flake-utils/c0e246b9b83f637f4681389ecabcb2681b4f3af0' (2022-08-07)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/cd8d1784506a7c7eb0796772b73437e0b82fad57' (2022-07-20)
  → 'github:NixOS/nixpkgs/0e304ff0d9db453a4b230e9386418fd974d5804a' (2022-08-24)
2022-08-30 15:47:39 +00:00
Ivan Petkov
dbda889c05
Replace source prefix mapping with remove-references-to (#90) 2022-08-28 01:44:07 +00:00
Ivan Petkov
5548a68f5d
README: add FAQ about avoiding unnecessary rebuilds (#78) 2022-08-14 03:22:43 +00:00
Ivan Petkov
185465a734
docs: tweak cargoBuild docs to mention doInstallCargoArtifacts (#77) 2022-08-14 03:20:49 +00:00