aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-09-21parseContentAddressMethodPrefix: use string_viewRobert Hensing
Co-authored-by: John Ericson <git@JohnEricson.me>
2020-09-21Move FramedSink next to FramedSourceRobert Hensing
2020-09-21wopAddToStore: Throw to clarify unused refsRobert Hensing
Co-authored-by: John Ericson <git@JohnEricson.me>
2020-09-21Refactor wopAddToStore to make wopAddTextToStore obsoleteRobert Hensing
2020-09-21Overhaul wopAddToStoreRobert Hensing
2020-09-17Move FramedSource and FramedSink, extract withFramedSinkRobert Hensing
2020-09-17Add ContentAddressMethod and parse/render itRobert Hensing
2020-09-17Add Source.drainInto(Sink)Robert Hensing
2020-09-17Remove redundant importRobert Hensing
2020-09-17TypoRobert Hensing
2020-09-17Merge pull request #3829 from obsidiansystems/remove-storetype-delegate-regStoreEelco Dolstra
Remove storetype delegate reg store -- contains #3736
2020-09-17Merge pull request #4027 from tweag/fix-gc-of-ca-derivationsEelco Dolstra
Fix garbage collection of CA derivations
2020-09-17Merge pull request #4025 from NixOS/remove-corepkgs-configEelco Dolstra
Remove corepkgs/config.nix
2020-09-17Fix garbage collection of CA derivationsregnat
Fix #4026
2020-09-17Remove corepkgs/config.nixEelco Dolstra
This isn't used anywhere except in the configure script of the Perl bindings. I've changed the latter to use the C++ API's Settings object at runtime.
2020-09-17Remove corepkgs/unpack-channel.nixEelco Dolstra
2020-09-17Remove corepkgs/derivation.nixEelco Dolstra
2020-09-16Merge remote-tracking branch 'upstream/master' into ↵John Ericson
remove-storetype-delegate-regStore
2020-09-16Merge branch 'document-store-options' of https://github.com/tweag/nixEelco Dolstra
2020-09-16Fix doc generationEelco Dolstra
2020-09-16jq -> nixEelco Dolstra
2020-09-16builtins.toFile: Fix indentationEelco Dolstra
2020-09-16Remove useless exception copyThéophane Hufschmitt
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2020-09-16Add a test for `nix describe-stores`regnat
Doesn't test much, but at least ensures that the command runs properly
2020-09-16Fix the s3 storeregnat
Add some necessary casts in the initialisation of the store's config
2020-09-16Don't include nlohmann/json.hpp in config.hhregnat
Instead make a separate header with the template implementation of `BaseSetting<T>::toJSONObj` that can be included where needed
2020-09-16Include the full nlohmann/json header in config.hhregnat
It is apparently required for using `toJSONObject()`, which we do inside the header file (because it's in a template). This was accidentally working when building Nix itself (presumably because `config.hh` was always included after `nlohman/json.hpp`) but caused a (pretty dirty) build failure in the perl bindings package.
2020-09-16Add `(StoreConfig*)` casts to work around a GCC bugregnat
Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 that was already there in the code but was accidentally removed in the last commits
2020-09-16fixup! Add a default value for the settingsregnat
2020-09-16Fix build issues with gccregnat
2020-09-16Add a markdown output to `nix describe-stores`regnat
2020-09-16Add a name to the storesregnat
So that it can be printed by `nix describe-stores`
2020-09-16Document the new store hierarchyregnat
2020-09-16Make uri schemes grammar more RFC-compliantregnat
Allow `-` and `.` in the RFC schemes as stated by [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.1). Practically, this is needed so that `ssh-ng` is a valid URI scheme
2020-09-16fixup! Make the store plugins more introspectableregnat
2020-09-16fixup! Correctly call all the parent contructors of the storesregnat
2020-09-16Properly filter the stores according to their declared uriSchemesregnat
When opening a store, only try the stores whose `uriSchemes()` include the current one
2020-09-16Correctly call all the parent contructors of the storesregnat
Using virtual inheritance means that only the default constructors of the parent classes will be called, which isn't what we want
2020-09-16fixup! Make the store plugins more introspectableregnat
2020-09-16Make `nix describe-stores` functionalregnat
Using the `*Config` class hierarchy
2020-09-16Separate store configs from the implemsregnat
Rework the `Store` hierarchy so that there's now one hierarchy for the store configs and one for the implementations (where each implementation extends the corresponding config). So a class hierarchy like ``` StoreConfig-------->Store | | v v SubStoreConfig----->SubStore | | v v SubSubStoreConfig-->SubSubStore ``` (with virtual inheritance to prevent DDD). The advantage of this architecture is that we can now introspect the configuration of a store without having to instantiate the store itself
2020-09-16fixup! Separate the instantiation and initialisation of the storesregnat
2020-09-16Add a default value for the settingsregnat
The default value is initialized when creating the setting and unchanged after that
2020-09-16Complete the `toJSON` instance for `Setting<T>`regnat
Don't let it just contain the value, but also the other fields of the setting (description, aliases, etc..)
2020-09-16Separate the instantiation and initialisation of the storesregnat
Add a new `init()` method to the `Store` class that is supposed to handle all the effectful initialisation needed to set-up the store. The constructor should remain side-effect free and just initialize the c++ data structure. The goal behind that is that we can create “dummy” instances of each store to query static properties about it (the parameters it accepts for example)
2020-09-16Fix the registration of storesregnat
2020-09-16Make the store plugins more introspectableregnat
Directly register the store classes rather than a function to build an instance of them. This gives the possibility to introspect static members of the class or choose different ways of instantiating them.
2020-09-16Merge branch 'single-ca-drv-build' of https://github.com/obsidiansystems/nixEelco Dolstra
2020-09-15Rename `Derivation::pathOpt` to `Derivation::path`John Ericson
We no longer need the `*Opt` to disambiguate.
2020-09-15Get rid of confusing `std::optional<bool>` for validityJohn Ericson