- Sep 17, 2020
-
-
Eelco Dolstra authored
Remove corepkgs/config.nix
-
Eelco Dolstra authored
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.
-
Eelco Dolstra authored
-
Eelco Dolstra authored
-
- Sep 16, 2020
-
-
Eelco Dolstra authored
-
Eelco Dolstra authored
-
Eelco Dolstra authored
-
Théophane Hufschmitt authored
Co-authored-by:
Eelco Dolstra <edolstra@gmail.com>
-
regnat authored
Doesn't test much, but at least ensures that the command runs properly
-
regnat authored
Add some necessary casts in the initialisation of the store's config
-
regnat authored
Instead make a separate header with the template implementation of `BaseSetting<T>::toJSONObj` that can be included where needed
-
regnat authored
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.
-
regnat authored
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
-
regnat authored
-
regnat authored
-
regnat authored
-
regnat authored
So that it can be printed by `nix describe-stores`
-
regnat authored
-
regnat authored
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
-
regnat authored
-
regnat authored
-
regnat authored
When opening a store, only try the stores whose `uriSchemes()` include the current one
-
regnat authored
Using virtual inheritance means that only the default constructors of the parent classes will be called, which isn't what we want
-
regnat authored
-
regnat authored
Using the `*Config` class hierarchy
-
regnat authored
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
-
regnat authored
-
regnat authored
The default value is initialized when creating the setting and unchanged after that
-
regnat authored
Don't let it just contain the value, but also the other fields of the setting (description, aliases, etc..)
-
regnat authored
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)
-
regnat authored
-
regnat authored
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.
- Sep 15, 2020
-
-
John Ericson authored
We no longer need the `*Opt` to disambiguate.
-
John Ericson authored
-
John Ericson authored
Otherwise, we will associate fixed-output derivations with outputs that they did indeed produce, but which had the wrong hash. That's no good.
-
John Ericson authored
-
Eelco Dolstra authored
-
Eelco Dolstra authored
gracefully handle old daemon versions
-