Valentin Gagarin
9be3c6c7c7
add note on self-references and cycles
...
Co-authored-by: John Ericson <git@JohnEricson.me>
2023-01-17 12:33:23 +01:00
Valentin Gagarin
59f03437c2
references refer to store objects, not paths
...
as noted by @Ericson2314
2023-01-17 12:29:45 +01:00
Valentin Gagarin
bc9de373c7
reword definition of "reference"
2023-01-17 12:29:45 +01:00
Eelco Dolstra
1df3d62c76
Merge pull request #7585 from NixOS/macos-disconnect
...
MonitorFdHup: Make it work on macOS again
2023-01-16 13:30:15 +01:00
Robert Hensing
c133e66375
Merge pull request #7604 from obsidiansystems/fix-variant-missing-raw
...
Try to fix build failure
2023-01-16 12:22:30 +01:00
John Ericson
f419ab48e6
Try to fix build failure
...
Failure: https://hydra.nixos.org/build/205357257/nixlog/1
The problem seems to be trying to `std::visit` a derived class of
`std::variant`. Per
https://stackoverflow.com/questions/63616709/incomplete-type-stdvariant-used-in-nested-name-specifier
certain C++ standard library implementations allow this, but others do
not.
The solution is simply to call the `raw` method, which upcasts the
reference back to the `std::variant`.
2023-01-15 15:16:14 -05:00
Robert Hensing
2e41ae9f93
Merge pull request #7599 from obsidiansystems/move-path-info-definitions
...
Move `ValidPathInfo` defintions to `path-info.cc`
2023-01-14 11:54:57 +01:00
John Ericson
a416476217
Move ValidPathInfo
defintions to path-info.cc
...
Originally there was no `path-info.*`, then there was `path-info.hh`,
then there was `path-info.cc`, but only for new things. Moving this
stuff over makes everything consistent.
2023-01-13 15:39:19 -05:00
Robert Hensing
fec527bba1
Merge pull request #7597 from tweag/move-implem-bit-to-implem-file
...
Move the `getBuildLog` implementation to its own implementation file
2023-01-13 20:16:33 +01:00
Robert Hensing
d21f54958e
Merge pull request #6815 from obsidiansystems/better-wanted-outputs
...
`OutputSpec` for `DerivationGoal` and `DerivedPath`, today's `OutputSpec` -> `ExtendedOutputSpec`
2023-01-13 16:03:12 +01:00
Théophane Hufschmitt
b8a0e9a9b8
Move the getBuildLog
implementation to its own implementation file
...
Keep the header minimal and clean
2023-01-13 11:05:44 +01:00
Théophane Hufschmitt
bdeb6de889
Merge pull request #7430 from tweag/ca/fix-nix-log
...
Ca/fix nix log
2023-01-13 11:00:56 +01:00
Théophane Hufschmitt
dda71d3726
Merge pull request #7427 from fricklerhandwerk/pr-policy
...
state priorities in triaging and discussion process
2023-01-13 10:53:40 +01:00
John Ericson
d8512653d4
Write more (extended) output spec tests
2023-01-12 22:05:55 -05:00
John Ericson
d29eb08563
Assert on construction that OutputsSpec::Names
is non-empty
2023-01-12 20:52:29 -05:00
John Ericson
e947aa5401
Unit test OuputsSpec::{union_, isSubsetOf}
2023-01-12 20:33:50 -05:00
John Ericson
31875bcfb7
Split OutputsSpec::merge
into OuputsSpec::{union_, isSubsetOf}
...
Additionally get rid of the evil time we made an empty
`OutputSpec::Names()`.
2023-01-12 20:20:27 -05:00
Valentin Gagarin
7de8af526e
state priorities in triaging and discussion process
...
based on
- Nix team decisions
https://discourse.nixos.org/t/2022-11-11-nix-team-meeting-minutes-7/23451#planning-discussion-1
https://discourse.nixos.org/t/2022-12-02-nix-team-meeting-minutes-13/23731#discussion-3
- proposal to deal use labels more effectively
https://discourse.nixos.org/t/improving-nix-developer-experience/21629
- documentation team decision to foster gauging interest using upvotes
https://github.com/NixOS/nix/pull/7387
2023-01-12 19:33:41 +01:00
Théophane Hufschmitt
eaa20f2574
Merge pull request #7590 from fricklerhandwerk/remove-unnecessary-cast
...
remove unncessary cast
2023-01-12 14:00:43 +01:00
Valentin Gagarin
48b2a3a0d0
remove unncessary cast
2023-01-12 13:23:32 +01:00
John Ericson
0faf5326bd
Improve tests for OutputsSpec
2023-01-11 19:09:21 -05:00
John Ericson
5ba6e5d0d9
Remove default constructor from OutputsSpec
...
This forces us to be explicit.
It also requires to rework how `from_json` works. A `JSON_IMPL` is added
to assist with this.
2023-01-11 19:08:19 -05:00
John Ericson
114a6e2b09
Make it hard to construct an empty OutputsSpec::Names
...
This should be a non-empty set, and so we don't want people doing this
by accident. We remove the zero-0 constructor with a little inheritance
trickery.
2023-01-11 19:08:19 -05:00
John Ericson
8a3b1b7ced
Simplify and document store path installable parsing
2023-01-11 19:08:19 -05:00
John Ericson
ce2f91d356
Split OutputsSpec
and ExtendedOutputsSpec
, use the former more
...
`DerivedPath::Built` and `DerivationGoal` were previously using a
regular set with the convention that the empty set means all outputs.
But it is easy to forget about this rule when processing those sets.
Using `OutputSpec` forces us to get it right.
2023-01-11 18:57:18 -05:00
John Ericson
a7c0cff07f
Rename OutputPath
-> ExtendedOutputPath
...
Do this prior to making a new more limitted `OutputPath` we will use in
more places.
2023-01-11 18:55:29 -05:00
John Ericson
a8f45b5e5a
Improve OutputsSpec
slightly
...
A few little changes preparing for the rest.
2023-01-11 18:54:50 -05:00
Eelco Dolstra
9fc8d00d74
MonitorFdHup: Make it work on macOS again
...
It appears that on current macOS versions, our use of poll() to detect
client disconnects no longer works. As a workaround, poll() for
POLLRDNORM, since this *will* wake up when the client has
disconnected. The downside is that it also wakes up when input is
available. So just sleep for a bit in that case. This means that on
macOS, a client disconnect may take up to a second to be detected,
but that's better than not being detected at all.
Fixes #7584 .
2023-01-11 10:48:40 -08:00
Eelco Dolstra
6dd8b3b412
Merge pull request #7581 from edolstra/getline-tests
...
Backport getLine tests from lazy-trees
2023-01-11 14:30:47 +01:00
Eelco Dolstra
7515617ad0
Backport getLine tests from lazy-trees
2023-01-11 13:49:39 +01:00
Théophane Hufschmitt
a3ba80357d
Merge pull request #7543 from obsidiansystems/typed-string-context
...
Parse string context elements properly
2023-01-11 07:09:37 +01:00
Robert Hensing
f58c301112
Merge pull request #7541 from hercules-ci/check-manual-links
...
Check links in the manual
2023-01-10 23:07:38 +01:00
Robert Hensing
6ae4d762d0
doc/manual/src/contributing/hacking.md: Apply suggestion
...
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2023-01-10 22:30:41 +01:00
Robert Hensing
da4d4feacf
doc/manual/hacking: Document @docroot@ variable
2023-01-10 22:30:41 +01:00
Robert Hensing
fefa3a49ce
doc/manual: Apply suggestions from code review
...
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2023-01-10 22:30:41 +01:00
Robert Hensing
fd2af69e60
doc/manual: Move the html files back where they were before
...
... before the link checking "output" was added, bumping the
html output into a subdirectory.
2023-01-10 22:30:41 +01:00
Robert Hensing
d5c8289f1e
doc/manual: Document hacking on the manual links
2023-01-10 22:30:41 +01:00
Robert Hensing
e79f935718
doc/manual: Fix broken internal links
...
The targets I could find.
2023-01-10 22:30:41 +01:00
Robert Hensing
34a1e0d29b
doc/manual: Introduce @docroot@ as a stable base for includable snippets
...
This way the links are clearly within the manual (ie not absolute paths),
while allowing snippets to reference the documentation root reliably,
regardless of at which base url they're included.
2023-01-10 22:30:41 +01:00
Robert Hensing
be10c09d23
manual: Check links
...
mdbook-linkcheck is not consistent about its warning setting.
It disables some warnings, but not the warnings about lack of
fragment checking support; hence the extra filtering.
2023-01-10 22:30:41 +01:00
John Ericson
5576d5e987
Parse string context elements properly
...
Prior to this change, we had a bunch of ad-hoc string manipulation code
scattered around. This made it hard to figure out what data model for
string contexts is.
Now, we still store string contexts most of the time as encoded strings
--- I was wary of the performance implications of changing that --- but
whenever we parse them we do so only through the
`NixStringContextElem::parse` method, which handles all cases. This
creates a data type that is very similar to `DerivedPath` but:
- Represents the funky `=<drvpath>` case as properly distinct from the
others.
- Only encodes a single output, no wildcards and no set, for the
"built" case.
(I would like to deprecate `=<path>`, after which we are in spitting
distance of `DerivedPath` and could maybe get away with fewer types, but
that is another topic for another day.)
2023-01-10 13:10:49 -05:00
John Ericson
da64f026dd
Make clear that StorePathWithOutputs
is a deprecated type
...
- Add a comment
- Put `OutputsSpec` in a different header (First part of #6815 )
- Make a few stray uses of it in new code use `DerivedPath` instead.
2023-01-10 11:27:19 -05:00
Eelco Dolstra
1c98daf6e8
Merge pull request #7484 from edolstra/fix-7417
...
InstallableFlake::toDerivedPaths(): Support paths and store paths
2023-01-10 15:57:58 +01:00
Eelco Dolstra
cc02e11967
Merge pull request #7547 from alxthm/fish-support-older-versions
...
Fix Nix installation on older versions of fish
2023-01-10 15:24:00 +01:00
Eelco Dolstra
59cc920cc0
Add a FIXME
2023-01-10 15:20:30 +01:00
Eelco Dolstra
7f1af270dd
Clean up toDerivedPaths() logic
2023-01-10 15:08:46 +01:00
Eelco Dolstra
1123c42f90
Apply suggestions from code review
...
Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
2023-01-10 14:57:35 +01:00
Eelco Dolstra
b4dc68f0be
Show string in error message
2023-01-10 14:56:03 +01:00
Eelco Dolstra
b80e4b57da
ExtraInfo -> ExtraPathInfo
2023-01-10 14:52:49 +01:00
Eelco Dolstra
8e923bf4c5
Merge remote-tracking branch 'origin/master' into fix-7417
2023-01-10 14:35:06 +01:00