This is a git mirror of the source code for carnix
, a tool used to
generate Nix-expressions for Rust crates. This is not currently
the development repository for carnix.
The upstream source repository is on the Pijul Nest.
Releases of carnix
are happening on crates.io and this
repository is simply mirroring them into git
to make the source code
as well as an overview over versions easily accessible.
Issues should be reported in the discussions in the source repository.
Based on the patch
list on Pijul
which contains most of the changes to Carnix, as well as the git diff
output between the imported versions, this section attempts to
provide a changelog of what has changed in between the different
released versions of Carnix.
Specific changes may be missing from this list if they weren't included in the patch list or aren't easily discernible from the code changes.
These versions were released in November 2018. They are grouped together here as the chronological release history doesn't seem to line up with the patch history in Pijul.
Included changes:
- Carnix no longer depends on SQLite for its crate cache
- A new subcommand for merging
crates-io.nix
-files was added - URL and crate version parsing has improved
Other changes may also be included.
These versions contain minor internal changes, some of them were released on the same day as 0.8.6, others came in a bit later.
Most notably it seems that the target_arch
target configuration from
Cargo is now supported.
This version was released on October 21st and includes fixes for local sources, feature-gated binary builds and internal refactorings.
I'm not sure what changed in these versions yet. There may be some
info in the nixpkgs
repository, but I haven't gone hunting for it
yet.
Will update this once I've had time to figure it out.
On a sidenote there really is no 0.8.2
, it goes straight from
0.8.1
to 0.8.3
.
This version seems to contain minor changes to workspace handling again.
This version seems to contain refactorings related to error handling and something about handling replaced packages in Cargo correctly.
This version seems to contain the most major changes yet, with a new CLI structure and a Cargo subcommand provided by Carnix.
I actually found a pull request to nixpkgs
in which the author
of Carnix, @P-E-Meunier, says the following about v0.7.0:
Carnix 0.7 improves support for workspaces, environment variables, and introduces the external cargo command cargo generate-nixfile.
The src field for workspaces, in the generated code, is now split between an src field, pointing to the root of the workspace, and a member field, specifying the remainder of the path. This fixes issues with members pointing to each other, and to the root.
Also, environment variables generated by build scripts are now handled properly.
This PR bumps the version straight to 0.7.2
though, so the summary
probably includes "all of the above".
This version seems to contain changes to how Carnix handles the local "workspace" of a crate and which files are included into the Nix sources when building a derivation.
This version seems to contain minor changes to how nix-prefetch-git
errors are handled.
Repository was bootstrapped from crates.io
sources at this version,
not sure what the difference to the previous versions is.
Again, just to be clear - I'm not the author of this project, I'm only mirroring it here to ensure that there's an easily available source repository.
All credit for buildRustCrate
and carnix
itself goes to the people
behind Pijul!