feat(tvix): add crate2nixGenerate target
`mg run //tvix:crate2nixGenerate --` runs crate2nix generate and depotfmt's it afterwards. This removes a frequent point of friction, because the Cargo.nix emitted by crate2nix needs another formatter. Change-Id: I649495980718cd3847d4cff77c9d4bfcb599387c Reviewed-on: https://cl.tvl.fyi/c/depot/+/7612 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
This commit is contained in:
parent
2e04f68df8
commit
40a17acdc1
2 changed files with 11 additions and 9 deletions
|
@ -14,14 +14,9 @@ single Rust workspace in `//tvix` to maintain the Nix build
|
||||||
configuration.
|
configuration.
|
||||||
|
|
||||||
When making changes to Cargo dependency configuration in any of the
|
When making changes to Cargo dependency configuration in any of the
|
||||||
Rust projects under `//tvix`, be sure to run `crate2nix generate` in
|
Rust projects under `//tvix`, be sure to run
|
||||||
`//tvix` itself and commit the changes to the generated `Cargo.nix`
|
`mg run //tvix:crate2nixGenerate --` in `//tvix` itself and commit the changes
|
||||||
file.
|
to the generated `Cargo.nix` file.
|
||||||
|
|
||||||
`crate2nix` is available via `direnv` inside of depot, or can be built
|
|
||||||
from the `third_party.nixpkgs.crate2nix` attribute of depot. Make sure
|
|
||||||
to build it from depot to avoid generating files with a different
|
|
||||||
version that might have different output.
|
|
||||||
|
|
||||||
## License structure
|
## License structure
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Nix helpers for projects under //tvix
|
# Nix helpers for projects under //tvix
|
||||||
{ pkgs, ... }:
|
{ pkgs, depot, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Load the crate2nix crate tree.
|
# Load the crate2nix crate tree.
|
||||||
|
@ -8,6 +8,13 @@
|
||||||
nixpkgs = pkgs.path;
|
nixpkgs = pkgs.path;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Run crate2nix generate in the current working directory, then
|
||||||
|
# format the generated file with depotfmt.
|
||||||
|
crate2nixGenerate = pkgs.writeShellScriptBin "crate2nix-generate" ''
|
||||||
|
${pkgs.crate2nix}/bin/crate2nix generate
|
||||||
|
${depot.tools.depotfmt}/bin/depotfmt Cargo.nix
|
||||||
|
'';
|
||||||
|
|
||||||
# Provide a shell for the combined dependencies of all Tvix Rust
|
# Provide a shell for the combined dependencies of all Tvix Rust
|
||||||
# projects. Note that as this is manually maintained it may be
|
# projects. Note that as this is manually maintained it may be
|
||||||
# lacking something, but it is required for some people's workflows.
|
# lacking something, but it is required for some people's workflows.
|
||||||
|
|
Loading…
Reference in a new issue