Commit Graph

90 Commits

Author SHA1 Message Date
figsoda
b6c0e7f563
Merge pull request #205935 from figsoda/cargo-lock
rustPlatform.importCargoLock: add allowBuiltinFetchGit option
2022-12-25 19:38:36 -05:00
figsoda
403e25e3e3 doc: fix typos 2022-12-17 18:21:48 -05:00
figsoda
cce3dc63a0 rustPlatform.importCargoLock: add allowBuiltinFetchGit option 2022-12-13 11:27:26 -05:00
Jörg Thalheim
c0491d5fd2
Merge pull request #204343 from urandom2/sridoc
doc: use sri hash syntax
2022-12-04 10:04:57 +01:00
Colin Arnott
bac379f30a
doc: use sri hash syntax
The nixpkgs manual contains references to both sri hash and explicit
sha256 attributes. This is at best confusing to new users. Since the
final destination is exclusive use of sri hashes, see nixos/rfcs#131,
might as well push new users in that direction gently.

Notable exceptions to sri hash support are builtins.fetchTarball,
cataclysm-dda, coq, dockerTools.pullimage, elixir.override, and
fetchCrate. None, other than builtins.fetchTarball, are fundamentally
incompatible, but all currently accept explicit sha256 attributes as
input. Because adding backwards compatibility is out of scope for this
change, they have been left intact, but migration to sri format has been
made for any using old hash formats.

All hashes have been manually tested to be accurate, and updates were
only made for missing upstream artefacts or bugs.
2022-12-04 06:12:18 +00:00
figsoda
0f386d1896 docs/rust: document cargoNextestHook and useNextest 2022-11-28 18:30:30 -05:00
figsoda
82fe76d1cd carnix,cratesIO: remove 2022-11-22 14:10:25 -05:00
Artturi
80212614a3
Merge pull request #187921 from amjoseph-nixpkgs/pr/manual/rust/buildRustY
doc/../rust.section.md: prominently mention `buildRustXX` names
2022-11-21 19:08:38 +02:00
0x4A6F
b37df78bfe
doc/languages-frameworks/rust: example for disabling tests (#198705) 2022-10-31 22:39:34 +01:00
Ian Macalinao
30a5965216
doc/languages-frameworks/rust: fix typo 2022-09-03 15:45:21 -05:00
Adam Joseph
aad7f1d6b3 doc/../rust.section.md: prominently mention buildRustXX names
This was a source of massive confusion for me when I first learned my way around nixpkgs' rust machinery.  I seek to save others from that confusion.

* `buildRustPackage` should have been named `buildRustPackageUsingCargo`

* `buildRustCrate` should have been named `buildRustPackageUsingNix`

It is, unfortunately, too late to fix this.  Let's do the next best thing and make the names `buildRustPackage` and `buildRustCrate` very prominent in the documentation, so readers see immediately that they need to learn the following jargon:

* `buildRustPackage` means "build this Rust crate by calling `cargo` in one (or two) monolithic derivations"

* `buildRustCrate` means "build this Rust crate by calling `rustc` in one derivation for each crate"
2022-08-22 14:37:41 -07:00
Guillaume Girol
bedabfbcef rustPlatform.bindgenHook: init 2022-02-22 19:37:07 +01:00
Andreas Stührk
192fcbd32a docs: Fix markdown in Rust language section 2021-12-18 14:05:46 +01:00
github-actions[bot]
933da575d4
Merge master into staging-next 2021-11-05 18:01:07 +00:00
Eli Flanagan
933f117a78
docs: Rust language section consistency
I found out how to use aspell with a custom dictionary and so ran that
on  `rust.section.md`.

These changes are trivial consistency in spelling and nomenclature.
2021-11-05 10:40:59 -04:00
github-actions[bot]
ac4cb43546
Merge staging-next into staging 2021-11-05 00:02:01 +00:00
Eli Flanagan
7bffde6dbc
docs: fix Rust language typos
I tried to use aspell following https://github.com/NixOS/nixpkgs/issues/34308#issuecomment-361431632 but there are too many false positives!
2021-11-04 16:19:01 -04:00
github-actions[bot]
20bee66ec8
Merge staging-next into staging 2021-11-04 18:01:44 +00:00
Eli Flanagan
326cfefd68 Apply suggestions from code review
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2021-11-05 00:17:56 +09:00
Eli Flanagan
b829fe48e3 add an example with buildRustPackage 2021-11-05 00:17:56 +09:00
Eli Flanagan
8650a7e6e1 docs: improve, clean up Rust language advice
This stems from a discussion [here](https://discourse.nixos.org/t/what-rust-overlay-do-you-use-and-why-advice-appreciated/15412)

I removed an entire section because I feel like that duplicated
Mozilla's original instructions on how to consume the overlay.

The goal here is to simply the "getting started with Rust" in a nix or
NixOS environment.

I will try to do some follow up work to update the code snippets and
output. nightly is on `1.57.0-nightly` :)
2021-11-05 00:17:56 +09:00
figsoda
62d502d703 doc/rust: add documentation for feature options 2021-10-27 09:24:19 -04:00
Arthur Gautier
c1a440b6cc doc: rust: target escape hatch has been removed
As far as I can tell, a8efb2053f removed
the `target =` escape hatch.
See #112804

This commit removes it from the documentation.

Signed-off-by: Arthur Gautier <baloo@superbaloo.net>
2021-10-19 05:38:45 +00:00
Robin Stumm
5b0a3115c8 doc: rust: rephrase paragraph about cargoLock.lockFileContents
mentioning that `Cargo.lock` cannot be patched in the `patchPhase`
2021-09-22 20:32:19 +09:00
Robin Stumm
4771684208 doc: rust: simplify snippet
Do not use recursive attribute sets where not needed, it could confuse the reader.
2021-09-22 20:32:19 +09:00
Robin Stumm
4ab63a8ca8 doc: rust: improve clarity of example snippet
Make it more clear that the return type is a string.

Co-authored-by: figsoda <figsoda@pm.me>
2021-09-22 20:32:19 +09:00
Robin Stumm
4ecb3e8795 doc: rust: document cargoLock.lockFileContents 2021-09-22 20:32:19 +09:00
Markus S. Wamser
b06ffb4b45 doc/rust: add missing fetchfromGitHub to derivation example 2021-09-19 16:41:11 +00:00
figsoda
a3925908e4 doc: rust: improve documentation on cargoLock.lockFile 2021-08-01 17:01:13 -04:00
Alyssa Ross
fc11b5eaa4
doc: rust: add missing semicolon 2021-07-30 08:37:25 +00:00
Jan Tojnar
6ecc641d08
doc: prepare for commonmark
We are still using Pandoc’s Markdown parser, which differs from CommonMark spec slightly.

Notably:
- Line breaks in lists behave differently.
- Admonitions do not support the simpler syntax https://github.com/jgm/commonmark-hs/issues/75
- The auto_identifiers uses a different algorithm – I made the previous ones explicit.
- Languages (classes) of code blocks cannot contain whitespace so we have to use “pycon” alias instead of Python “console” as GitHub’s linguist

While at it, I also fixed the following issues:
- ShellSesssion was used
- Removed some pointless docbook tags.
2021-06-07 06:34:59 +02:00
Daniël de Kok
9cca8ce446 doc: fix incorrect use of cargoDeps
Thanks to @bjornfor for reporting this error!
2021-06-01 13:14:28 +02:00
Daniël de Kok
b3969f3ad7 rustPlatform.buildRustPackage: support direct use of Cargo.lock
This change introduces the cargoLock argument to buildRustPackage,
which can be used in place of cargo{Sha256,Hash} or cargoVendorDir. It
uses the importCargoLock function to build the vendor
directory. Differences compared to cargo{Sha256,Hash}:

- Requires a Cargo.lock file.
- Does not require a Cargo hash.
- Retrieves all dependencies as fixed-output derivations.

This makes buildRustPackage much easier to use as part of a Rust
project, since it does not require updating cargo{Sha256,Hash} for
every change to the lock file.
2021-05-28 08:01:28 +02:00
Daniël de Kok
2f46d77e28 rustPlatform.importCargoLock: init
This function can be used to create an output path that is a cargo
vendor directory. In contrast to e.g. fetchCargoTarball all the
dependent crates are fetched using fixed-output derivations. The
hashes for the fixed-output derivations are gathered from the
Cargo.lock file.

Usage is very simple, e.g.:

importCargoLock {
  lockFile = ./Cargo.lock;
}

would use the lockfile from the current directory.

The implementation of this function is based on Eelco Dolstra's
import-cargo:

https://github.com/edolstra/import-cargo/blob/master/flake.nix

Compared to upstream:

- We use fetchgit in place of builtins.fetchGit.
- Sync to current cargo vendoring.
2021-05-28 08:01:25 +02:00
Sandro
3a6116c550
Merge pull request #116257 from SuperSandro2000/code-fences
doc/languages-frameworks/*: add missing languages to code fences
2021-04-05 05:38:38 +02:00
Sandro Jäckel
2c143a4614 doc/languages-frameworks/*: add missing languages to code fences
convert shell -> ShellSession
2021-04-05 05:23:19 +02:00
Frederik Rietdijk
1ecb97eae9 Merge master into staging-next 2021-03-19 18:17:01 +01:00
Katharina Fey
29df3bc24c
doc: fix code formatting 2021-03-19 13:37:27 +01:00
github-actions[bot]
8c04f70ddd
Merge master into staging-next 2021-03-14 12:21:07 +00:00
Florian Engel
3329093c6a Remove repeating words from doc 2021-03-14 12:15:34 +01:00
Max Hausch
ebe3ae4d4d
buildRustPackage: Add cargoTestFlags
This makes it possible to pass flags to `cargo test`, which is needed if
a crate is compiled with custom feature flags.
2021-03-02 09:45:26 +01:00
Max Hausch
fa62f37160
doc: rust: Fix code blocks in markdown
And add a word
2021-03-02 09:40:58 +01:00
Daniël de Kok
c50a347cb5 buildRustPackage: use checkType argument
The `checkType` argument of buildRustPackage was not used anymore
since the refactoring of `buildRustPackage` into hooks. This was
an oversight that is fixed by this change.

The check type can also be passed directly to cargoCheckHook using the
`cargoCheckType` environment variable.
2021-02-26 11:57:27 +01:00
Frederik Rietdijk
c456a2512f Merge master into staging-next 2021-02-26 10:25:13 +01:00
Daniël de Kok
05e40e79a8 buildRustPackage: factor out check phase to cargoCheckHook
API change:

`cargoParallelTestThreads` suggests that this attribute sets the
number of threads used during tests, while it is actually a boolean
option (use 1 thread or NIX_BUILD_CORES threads). In the hook, this
is replaced by a more canonical name `dontUseCargoParallelTests`.
2021-02-16 08:09:15 +01:00
Daniël de Kok
9757c7101a buildRustPackage: factor out install phase to cargoInstallHook 2021-02-15 12:17:18 +01:00
Daniël de Kok
d92396039d buildRustPackage: add cargoDepsName attribute
The directory in the tarball of vendored dependencies contains `name`,
which is by default set to `${pname}-${version}`. This adds an
additional attribute to permit setting the name to something of the
user's choosing.

Since `cargoSha256`/`cargoHash` depend on the name of the directory of
vendored dependencies, `cargoDepsName` can be used to e.g. make the
hash invariant to the package version by setting `cargoDepsName =
pname`.
2021-02-15 07:06:31 +01:00
Daniël de Kok
dbc8633daf doc: describe cargoBuildHook and maturinBuildHook in the Rust section 2021-02-12 08:40:46 +01:00
Daniël de Kok
198dd77635 doc: describe cargoSetupHook in the Rust section 2021-02-10 07:03:48 +01:00
V
7616206b77
doc: add function argument order convention (#110060)
* doc: add function argument order convention

Ordering by usage is the de facto ordering given to arguments. It's
logical, and makes finding argument usage easier. Putting lib first is
common in NixOS modules, so it's reasonable to mirror this in nixpkgs
proper. Additionally, it's not a package as such, has zero dependencies,
and can be found used anywhere in a derivation.

* doc: clean up usage of lib
2021-01-20 19:07:16 -05:00