Age | Commit message (Collapse) | Author |
|
Pass this around instead of `Source &` and `Sink &` directly. This will
give us something to put the protocol version on once the time comes.
To do this ergonomically, we need to expose `RemoteStore::Connection`,
so do that too. Give it some more API docs while we are at it.
|
|
The motivation is exactly the same as for the last commit. In addition,
this anticipates us formally defining separate serialisers for the serve
protocol.
|
|
See API docs on that struct for why. The pasing as as template argument
doesn't yet happen in that commit, but will instead happen in later
commit.
Also make `WorkerOp` (now `Op`) and enum struct. This led us to catch
that two operations were not handled!
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
|
|
This is generally a fine practice: Putting implementations in headers
makes them harder to read and slows compilation. Unfortunately it is
necessary for templates, but we can ameliorate that by putting them in a
separate header. Only files which need to instantiate those templates
will need to include the header with the implementation; the rest can
just include the declaration.
This is now documenting in the contributing guide.
Also, it just happens that these polymorphic serializers are the
protocol agnostic ones. (Worker and serve protocol have the same logic
for these container types.) This means by doing this general template
cleanup, we are also getting a head start on better indicating which
code is protocol-specific and which code is shared between protocols.
|
|
restoreMountNamespace(): Restore the original root directory
|
|
maintainers: add note on marking PRs as draft
|
|
CONTRIBUTING.md: add link to "good first issues"
|
|
as discussed with maintainers team
|
|
|
|
src/libexpr/eval.hh: add link for allowed-uris option
|
|
- Greatly expand API docs
- Clean up code in misc ways
- Instead of a complicated single loop on generations, do different
operations in successive subsequent steps.
- Avoid `ref` in one place where `&` is fine
- Just return path instead of mutating an argument in `makeName`
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
|
|
While this is not actually a notion in the implementation, it is
explicitly described in the thesis and quite important for understanding
how the store works.
Co-authored-by: John Ericson <git@JohnEricson.me>
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
|
|
Refine wording on the purpose of the Nix language
|
|
This commit adds a link to the documentation for `--option
allowed-uris` where that option is mentioned while describing
`restrict-eval`.
|
|
ci: bump install-nix-action, don't fail fast
|
|
|
|
|
|
Tarball flake improvements
|
|
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
|
|
|
|
Fix build hook error for libstore library users
|
|
Don't assume the type of string::size_type
|
|
The code accidentally conflated `std::string::size_type` and `long unsigned int`.
This was fine on 64bits machines where they are apparently the same in
practice, but not on 32bits. Fix that by using `std::string::size_type`
everywhere.
|
|
A library shouldn't require changes to the caller's argument handling,
especially if it doesn't have to, and indeed we don't have to.
This changes the lookup order to prioritize the hardcoded path to nix
if it exists. The static executable still finds itself through /proc
and the like.
|
|
build: show UID and GID in welcome message
|
|
src/libexpr/eval.hh: fix typo
|
|
Co-authored-by: John Ericson <git@JohnEricson.me>
|
|
The option name is `allowed-uris`, not `allowed-uri`.
|
|
docs issue template: move checklist down
|
|
Rename files referring to antiquotation
|
|
also slightly reword the purpose statement to introduce (and explain)
derivations right away.
|
|
it's annoying to write issues with the checklist in the way, and the
proposal is more important.
|
|
since we renamed this to string interpolation, file names should be
fixed up as well
|
|
|
|
Expanding tests and docs relating to deleting profiles
|
|
Remove RegisterPrimOp constructor without support for documentation
|
|
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
|
|
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
|
|
Good for test parallelism, and separation of concerns (core GC vs
profiles deleting).
|
|
|
|
Introduce what substituters "are" in the configuration option entry.
Remove arbitrary line breaks for easier editing in the future.
Link glossary some more.
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
Co-authored-by: John Ericson <git@JohnEricson.me>
|
|
The remaining constructor RegisterPrimOp::RegisterPrimOp(Info && info)
allows specifying the documentation in .args and .doc members of the
Info structure.
Commit 8ec1ba02109e removed all uses of the removed constructor in the
nix binary. Here, we remove the constructor completely as well as its
use in a plugin test. According to #8515, we didn't promis to maintain
compatibility with external plugins.
Fixes #8515
|
|
fix: Do not apply default installables when using --stdin
|
|
nix actually needs c++20 now
|
|
Document several undocumented builtin functions
|
|
`filesystem.cc` is the only place where `createSymlink()` is used with three arguments:
in the definition of `replaceSymlink()` with three parameters that _is not used at all_.
Closes #8495
|
|
darwin installer: remove the file before installing new one
|
|
Add `nix-channel --list-generations`
|
|
Otherwise results into:
cp: /Library/LaunchDaemons/org.nixos.nix-daemon.plist and /nix/var/nix/profiles/default/Library/LaunchDaemons/org.nixos.nix-daemon.plist are identical (not copied).
|
|
fix the hash rewriting for ca-derivations
|