John Ericson
6365bbfa81
Improve the FileSystemObjectSink
interface
...
More invariants are enforced in the type, and less state needs to be
stored in the main sink itself. The method here is roughly that known as
"session types".
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2024-01-22 18:01:21 -05:00
John Ericson
966d6fcd01
ParseSink
-> FileSystemObjectSink
...
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2024-01-22 18:01:18 -05:00
Robert Hensing
5f72a97092
Merge pull request #9753 from 9999years/print-value-on-type-error
...
Print the value in `value is X while a Y is expected` error
2024-01-22 22:18:16 +01:00
Robert Hensing
74534829f2
Merge pull request #9830 from hercules-ci/test-cross-version-remote-build
...
tests/nixos: Test remote build against older versions
2024-01-22 19:42:57 +01:00
John Ericson
71bf592381
Merge pull request #6134 from obsidiansystems/expose-proto-rawer
...
Factoring out parts of the serve protocol for Hydra to share
2024-01-22 13:38:50 -05:00
Robert Hensing
c4d7c4a848
nixos/tests/remote-builds*: Format
...
nixpkgs-fmt
2024-01-22 18:47:59 +01:00
Robert Hensing
5167351efb
tests/nixos/remote-builds*: Inline module + format
2024-01-22 18:44:16 +01:00
John Ericson
1fb2582969
Create unit tests for the serve proto handshake
...
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2024-01-22 12:43:11 -05:00
John Ericson
e960b28230
Factor our ServeProto::BasicServerConnection::handshake
...
We'll need this for unit testing.
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2024-01-22 12:43:11 -05:00
John Ericson
4a5ca576da
Factor out ServeProto::BasicClientConnection::handshake
Hydra to share
2024-01-22 12:43:11 -05:00
John Ericson
4580bed3e4
LegacySSHStore::openConnection
move more logic inside catch block
...
Broader error handling logic is more robust.
2024-01-22 12:43:11 -05:00
John Ericson
ce2f714e6d
Start factoring out the serve protocol for Hydra to share
...
Factor out `ServeProto::BasicClientConnection` for Hydra to share
- `queryValidPaths`: Hydra uses the lock argument differently than Nix,
so we un-hard-code it.
- `buildDerivationRequest`: Just the request half, as Hydra does some
things between requesting and responding.
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2024-01-22 12:43:03 -05:00
Robert Hensing
e502d1cf94
tests/nixos: Test remote build against older versions
2024-01-22 18:39:15 +01:00
John Ericson
50ce3832dc
Merge pull request #9512 from hercules-ci/release-notes-bdwgc-traceable-allocator-patch
...
prerequisites-source: Add bdwgc-traceable-allocator-patch
2024-01-22 11:58:43 -05:00
Rebecca Turner
cb7fbd4d83
Print value on type error
...
Adds the failing value to `value is <TYPE> while a <TYPE> is expected`
error messages.
2024-01-22 08:56:02 -08:00
John Ericson
b74ec56da9
Merge pull request #9829 from obsidiansystems/fix-if-if-else-ambiguity
...
If `if`...`if`...`else` ambiguity
2024-01-22 10:58:46 -05:00
John Ericson
316e50cc7c
Fix if
...if
...else
ambiguity
...
This can be parsed two ways. Add a pair of braces so it must be parsed
the intended way.
2024-01-22 10:33:40 -05:00
John Ericson
176dcd5c61
Merge pull request #9626 from jvns/locked-input
...
Make fetchTree locked input error message clearer
2024-01-22 09:31:59 -05:00
Eelco Dolstra
16ccca2e86
Merge pull request #9703 from fricklerhandwerk/upgrade-no-channel
...
don't show `nix-channel` in upgrade instructions
2024-01-22 14:46:47 +01:00
John Ericson
b2066c3574
Merge pull request #9521 from fricklerhandwerk/conf-reword-max-jobs
...
reword description of the `max-jobs` setting
2024-01-22 08:29:12 -05:00
John Ericson
a0b86b3160
Merge pull request #9760 from hercules-ci/doc-glossary-nix-expression
...
doc/glossary: Nix expression can be language expression
2024-01-22 08:26:01 -05:00
Théophane Hufschmitt
c8d33bca8d
Merge pull request #9822 from obsidiansystems/algo-vs-hash-algo
...
Start standardizing hash algo flags
2024-01-22 11:08:24 +01:00
Théophane Hufschmitt
f51409cf98
Merge pull request #9805 from yshui/prefetch-unpack
...
Add --unpack to nix store prefetch-file
2024-01-22 10:51:50 +01:00
John Ericson
da1aae2d06
Merge pull request #9821 from obsidiansystems/fix-typo
...
Fix typo in upcomming release notes
2024-01-20 18:03:25 -05:00
John Ericson
202c5e2afc
Start standardizing hash algo flags
...
Do this if we want to do `--hash-algo` everywhere, and not `--algo` for
hash commands.
The new `nix hash convert` is updated. Deprecated new CLI commands are
left as-is (`nix hash path` needs to be redone and is also left as-is).
2024-01-20 17:29:35 -05:00
John Ericson
a93b204c27
Merge pull request #9348 from obsidiansystems/json-formats
...
Document JSON formats
2024-01-20 17:22:39 -05:00
John Ericson
65294fe5fe
Fix typo in upcomming release notes
...
Thanks @cole-h for finding in https://github.com/NixOS/nix/pull/9815#discussion_r1460604130
2024-01-20 17:07:21 -05:00
John Ericson
edf3ecc497
Document JSON formats
...
Good to document these formats separately from commands that happen to
use them.
Eventually I would like this and `builtins.derivation` to refer to a
store section on derivations that is authoritative, but that doesn't yet
exist, and will take some time to make. So I think we're just best off
merging this now as is.
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2024-01-20 17:03:47 -05:00
John Ericson
9b896bf7e9
Merge pull request #9809 from obsidiansystems/nix-store-add-algo
...
Add missing `--hash-algo` flag to `nix store add`
2024-01-19 23:37:11 -05:00
John Ericson
356352c370
Add missing --hash-algo
flag to nix store add
2024-01-19 23:11:18 -05:00
Robert Hensing
382fa51ff0
Merge pull request #9794 from hercules-ci/queryPathInfoFromClientCache
...
refactor: Extract `Store::queryPathInfoFromClientCache`
2024-01-19 17:33:52 +01:00
Robert Hensing
d19627e8b4
refactor: Remove throw from queryPathInfoFromClientCache
...
Return a value instead of throwing.
Rather than the more trivial refactor of wrapping the return value in
another std::optional, we retain the meaning of the outer optional:
"we know at least something."
So we have changed:
return nullopt -> return nullopt
throw InvalidPath -> return make_optional(nullptr)
return vpi -> return make_optional(vpi)
2024-01-19 17:01:19 +01:00
Robert Hensing
8983ee8b2e
refactor: Un-callback transform Store::queryPathInfoFromClientCache
...
This part of the code was not necessarily callback based.
Removing CPS is always nice; particularly if there's no loss of
functionality, like here.
2024-01-19 17:01:19 +01:00
Yuxuan Shui
75a6e6dd0e
Add --unpack to nix store prefetch-file
2024-01-19 15:53:45 +00:00
Eelco Dolstra
e6e160a075
Merge pull request #9632 from cole-h/nix-daemon-testing
...
Use `nix daemon` in the test suite
2024-01-19 16:21:51 +01:00
Théophane Hufschmitt
10165c7593
Merge pull request #9811 from DavHau/fix-git-auth
...
fetchTree/fetchGit: re-enable shallow fetching
2024-01-19 16:14:41 +01:00
John Ericson
57d6284eb7
Merge pull request #9812 from NixOS/remove-n-shorthand-for---mode
...
Remove a nonsensical shorthand flag in `nix store add`
2024-01-19 08:34:43 -05:00
DavHau
bc00fa4647
fetchTree/fetchGit: re-enable shallow fetching
...
Add several tests for git fetching:
- shallow-cache-separation: can fetch the same repo shallowly and non-shallowly
- shallow-ignore-ref: ensure that ref gets ignored when shallow=true is set
- ssh-shallow: can fetch a git repo via ssh using shallow=1
2024-01-19 20:30:47 +07:00
Robert Hensing
d762caff46
Merge pull request #9806 from hercules-ci/fix-git-auth
...
Fix git auth
2024-01-19 13:47:52 +01:00
Théophane Hufschmitt
28d7db249a
Remove a nonsensical shorthand flag in nix store add
...
`-n` was an alias for `--mode`, but that seems to just be a copy-paste error as it doesn't make sense.
`--mode` probably doesn't need a shorthand flag at all, so remove it.
Noticed in https://github.com/NixOS/nix/pull/9809#issuecomment-1899890555
2024-01-19 10:10:00 +01:00
Eelco Dolstra
3b20cca962
Merge pull request #9804 from edolstra/missing-nar-crash
...
Fix crash when NAR is missing from binary cache
2024-01-19 09:38:53 +01:00
Robert Hensing
4e8483d09d
Merge pull request #9792 from fricklerhandwerk/move-section
...
move section on make variables
2024-01-19 00:55:33 +01:00
Robert Hensing
14f470ec4e
doc/hacking.md: Hint short option make -e
...
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2024-01-19 00:32:30 +01:00
Robert Hensing
346d513d86
tests/nixos/fetch-git: Add http-auth test
2024-01-18 22:34:38 +01:00
Robert Hensing
8d422c2fef
Revert libgit2 fetching
...
libgit2 is not capable of using git-credentials helpers yet.
This prevents private repositories from being used.
Based on code that was replaced in https://github.com/NixOS/nix/pull/9240
(Introduce libgit2); hence:
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2024-01-18 22:29:26 +01:00
Robert Hensing
76a50b3a69
doc: GitRepoImpl::path
2024-01-18 22:29:26 +01:00
Robert Hensing
ed975e953c
tests/nixos/fetch-git: Testsupport for private repos
2024-01-18 22:29:26 +01:00
Robert Hensing
0bd9e10aea
Merge pull request #9676 from DavHau/git-testsuite
...
initialize test suite for git fetchers
2024-01-18 21:51:48 +01:00
Robert Hensing
1254170405
tests/nixos/fetch-git: Make the store paths unique
2024-01-18 21:00:40 +01:00
Robert Hensing
94eba0ebbb
tests/nixos/fetch-git: Memoize -> save
...
Memoization is for thunk-like behavior whereas this is executed eagerly.
2024-01-18 21:00:40 +01:00