Extensibility of protocol for custom payloads across build/copy/apply sequence #29
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
arcana/arcana#29
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Custom activation relies essentially on build/copy/apply as a sequence.
Certain servers might have more than a toplevel to build and pass around, e.g. closure info or a new Nix binary.
Copy closure might need to copy that path additionally.
Apply might need to refer to it to call it.
How do we enable these operations?
I think we could extend the protocol by adding a
context/statefield (a bit like axum with theirStatething).However I see a potential drawback: if this solution is adopted, I fear that arcana will be to generic / customisable to be truly usable (i.e. if arcana is too generic, to support a new system type, we would have to create an arcana-like ~from scratch (except for the CLI)), but idk the actual impact would be.
Another potential solution would be to allow (by extending the protocol) building / copying multiple closures.
It should be possible by changing this field
string derivation = 2;and this field
string store_path = 2;from a string to an array of strings. (and maybe the same for apply_request)