John Ericson
903700c5e1
Simplify ContentAddress
...
Whereas `ContentAddressWithReferences` is a sum type complex because different
varieties support different notions of reference, and
`ContentAddressMethod` is a nested enum to support that,
`ContentAddress` can be a simple pair of a method and hash.
`ContentAddress` does not need to be a sum type on the outside because
the choice of method doesn't effect what type of hashes we can use.
Co-Authored-By: Cale Gibbard <cgibbard@gmail.com>
2023-07-07 07:30:01 -04:00
John Ericson
6a3a87a714
Improve error message for self reference with text hashing
...
The `ContentAddressWithReferences` method is made total, with error
handling now squarely the caller's job. This is better.
2023-05-09 14:44:08 -04:00
John Ericson
753fc1661d
Cleanups to content address types
2023-05-09 13:05:38 -04:00
John Ericson
d3c125e5a8
Apply suggestions from code review
...
Thanks!
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-05-09 12:45:51 -04:00
John Ericson
8eeaf591db
Add more docs to TextIngestionMethod
...
Thanks so much!
Co-authored-by: Adam Joseph <54836058+amjoseph-nixpkgs@users.noreply.github.com>
2023-04-21 01:30:55 -04:00
John Ericson
7103c6da70
Remove references from fixed output derivation ab syntax
...
In other words, use a plain `ContentAddress` not
`ContentAddressWithReferences` for `DerivationOutput::CAFixed`.
Supporting fixed output derivations with (fixed) references would be a
cool feature, but it is out of scope at this moment.
2023-04-19 15:00:04 -04:00
John Ericson
aba8a8a83a
Add a few more content addressing methods
...
Good to round out the library interface.
2023-04-19 14:13:30 -04:00
John Ericson
668377f217
TextHashMethod
-> TextIngestionMethod
, gate with XP feature
...
I suppose we can use `dynamic-derivations` for the few things we neeed.
2023-04-17 19:02:45 -04:00
John Ericson
e12efa3654
Merge remote-tracking branch 'upstream/master' into ca-drv-exotic
2023-04-17 10:16:57 -04:00
John Ericson
fd21f9d76e
Merge remote-tracking branch 'upstream/master' into path-info
2023-04-07 20:39:04 -04:00
John Ericson
fe9cbe838c
Create Derivation::fromJSON
...
And test, of course
2023-04-07 08:34:58 -04:00
John Ericson
5d56e2daf7
Add comparison methods for content addresses
2023-04-01 16:52:23 -04:00
John Ericson
eeecfacb43
Merge branch 'path-info' into ca-drv-exotic
2023-04-01 16:40:32 -04:00
John Ericson
f7f44f7c96
Merge commit 'aa99005004bccc9be506a2a2f162f78bad4bcb41' into ca-drv-exotic
2023-04-01 15:15:32 -04:00
John Ericson
f4ab297b31
Ensure all headers have #pragma once
and are in API docs
...
`///@file` makes them show up in the internal API dos. A tiny few were
missing `#pragma once`.
2023-03-31 23:19:44 -04:00
John Ericson
c51d554c93
Use "raw pattern" for content address types
...
We weren't because this ancient PR predated it!
This is actually a new version of the pattern which addresses some
issues identified in #7479 .
2023-03-30 17:12:49 -04:00
John Ericson
aa99005004
Merge remote-tracking branch 'upstream/master' into path-info
...
Also improve content-address.hh API docs.
2023-03-30 16:28:53 -04:00
John Ericson
8cab89a94b
Convert a bunch of comments in headers to Doxygen documentation
...
The internal API docs now contain more useful information.
Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
2023-03-29 23:22:07 -04:00
John Ericson
5abd643c6d
Merge branch 'path-info' into ca-drv-exotic
2023-02-28 12:46:00 -05:00
John Ericson
d381248ec0
No inheritance for TextInfo
and FixedOutputInfo
2023-02-28 12:14:11 -05:00
John Ericson
e68e8e3cee
Merge branch 'path-info' into ca-drv-exotic
2023-01-23 16:54:45 -05:00
John Ericson
4540e7b940
Don't add StorePathDescriptor
for now
...
We don't need it yet, we can add it back later.
2023-01-23 12:58:27 -05:00
John Ericson
7c82213813
Merge branch 'path-info' into ca-drv-exotic
2023-01-14 17:09:58 -05:00
John Ericson
b3d91239ae
Make ValidPathInfo
have plain StorePathSet
references like before
...
This change can wait for another PR.
2023-01-14 16:42:03 -05:00
John Ericson
81727f85cb
Merge branch 'path-info' into ca-drv-exotic
2023-01-06 15:45:34 -05:00
John Ericson
46e942ff9e
Do big rename to clean up code
...
- `PathReferences` -> `References`
- `PathReferences<StorePath>` -> `StoreReference`
- `references` -> `others`
- `hasSelfReference` -> `self`
And get rid of silly subclassing
2023-01-06 15:36:05 -05:00
John Ericson
8623143921
Make formatting consistent
2023-01-06 11:18:14 -05:00
John Ericson
13c669105c
Slight cleanups
2022-04-19 22:25:21 +00:00
John Ericson
8abb627002
Merge branch 'path-info' into ca-drv-exotic
2022-04-19 22:02:33 +00:00
John Ericson
2c21cb6720
Fill in missing comparison operators for content addresses
2022-03-25 22:40:40 +00:00
John Ericson
d8d7f50f62
Merge remote-tracking branch 'obsidian/path-info' into ca-drv-exotic
2020-10-13 03:46:41 +00:00
John Ericson
39c11c5c01
Organize content-address.hh a bit better
2020-10-13 03:43:13 +00:00
John Ericson
a4e5de1b9d
Derivations can output "text-hashed" data
...
In particular, this means that derivations can output derivations. But
that ramification isn't (yet!) useful as we would want, since there is
no way to have a dependent derivation that is itself a dependent
derivation.
2020-10-13 02:15:48 +00:00
John Ericson
f8d562c0a7
Use PathReferences more widely
2020-10-07 15:00:10 +00:00
Robert Hensing
dfa547c6a8
Add ContentAddressMethod and parse/render it
2020-09-17 20:21:04 +02:00
Eelco Dolstra
5dff49f661
Factor out commonality between nix-prefetch-url and nix-store --add-fixed
2020-07-10 13:21:37 +02:00
John Ericson
2f0e395c99
Merge remote-tracking branch 'me/no-stringly-typed-derivation-output' into validPathInfo-ca-proper-datatype
2020-06-19 15:26:59 +00:00
Carlo Nucera
fd2eb41e64
Move file-hash to content-address
2020-06-02 15:44:58 -04:00