| Age | Commit message (Collapse) | Author |
|
Closes #43.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
There is generally no use case where any setup is required before init, and requiring the explicit function call is error-prone and unnecessary. It also causes trouble with packages using a similar trick. This change moves argv0 check early and makes it an import side effect. The stub will be removed in v0.5.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids repeating errors belonging to multiple instances of the same artifact in different locations in memory.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The DCE is a slow and overcomplicated solution to a simple problem. This change replaces the DCE by resolving errors in-flight.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables a FileArtifact implementation to specify whether its resulting file should be executable. This change also implements shebang and ELF magic checks in the file artifact.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables changing the behaviour of an artifact implementation without changing its IR structure. Unfortunately this changes the IR header structure resulting in many rebuilds.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This makes the interface stable.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Useful for cure determinism validation of KindExec.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This saves time and is often more practical even for package maintainers.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Inputs is more correct than dependencies in the current terminology.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is always required by the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is primarily useful for implementing a mirror service. This change also works around the zero-dependency FloodArtifact edge case.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids running into nasty surprises opening a cache that suffered unclean shutdown due to power loss. All other parts of the cache are not prone to inconsistent state.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The tarArtifact predates FileArtifact pipelining. This migrates decompression and buffering into a standalone artifact implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These names are more consistent with other helper names, so rename them while the API is still internal.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Scrubbing for status predates substitutes. This change fixes scrub handling of substitute status entries.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This destroys cache entries not referred to by user-specified artifacts and optionally their inputs.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This relies on the testtool having ident as relevant input to assert successful substitution.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
While it is still impossible to reliably determine the expected contents of these status files, this checks their nature for expected substitution behaviour.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This would otherwise only be available in verbose output, interleaved with everything else.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These are useful for troubleshooting. This change records them in a separate directory.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These are not created when taking the fast path, but should be inherited from the alternative.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This eliminates edge cases where target artifacts do not compare equal.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This eliminates noise at lower depths.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is significantly slower but enables much better error reporting.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This error has never had decent performance, now is a good time to improve that.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This change introduces a new fast path for FloodArtifact. It is taken when a curing artifact has identical-by-content controlled relevant inputs and are otherwise identical to an already-cured artifact.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This transparently supports curing foreign exec artifacts.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This needs to dereference the identifier symlink.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly improves readability and maintainability.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This makes custom artifacts much less error-prone to use.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids disabling the artifact when using the individual cancel method. Unfortunately this makes the method blocking.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This cancels all current pending cures without closing the cache.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables a specific artifact to be targeted for cancellation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is cleaner than checking cpu count during cure, it is impossible to avoid impurity in both situations but this is configurable.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is not possible to use directly, so remove it from the public API.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables transparently degradable tests to be forced on in environments known to support them.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This does not test package container, so should transparently cope with Landlock LSM being unavailable.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is quite error-prone and causes cache inconsistency similar to the store inconsistency seen on nix when a similar condition happens. Keep this behind a flag in case it is ever beneficial.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is cleaner for extending the API.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This package solves a very specific stubbing use case, in a less than elegant manner.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This package is not container-specific.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This package is not container specific, and widely used across the project.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is currently only used by execArtifact. A later patch will add additional logging facilities.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This should hopefully provide good separation between the artifact curing backend implementation and the (still work in progress) language. Making the IR parseable also guarantees uniqueness of the representation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This was taking way too long for early failures.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This also rearranges the ident ir to be more predictable, and avoids an obvious and somewhat easy to get into inconsistent state.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This alleviates scheduler overhead when curing many artifacts.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This uses the new measured reader provided by Cache. This should make httpArtifact zero-copy.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This will be fully implemented in httpArtifact in a future commit.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|