| Age | Commit message (Collapse) | Author |
|
Closes #43.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids having progress indicators mess up logging.
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 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>
|
|
Useful for cure determinism validation of KindExec.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
IR includes the target architecture name.
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>
|
|
These are useful for troubleshooting. This change records them in a separate directory.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is significantly slower but enables much better error reporting.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Useful for verifying deterministic output without enabling network access.
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 significantly reduces maintenance burden.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly improves readability and maintainability.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is cleaner for extending the API.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables exporting container params for interactive troubleshooting within the cure container.
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, and widely used across the project.
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 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 avoids blocking while not in Cure method of the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables deduplication by value as implemented in execArtifact.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly simplifies error reporting for caller.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This eliminates duplicate identifier computations. The new implementation also significantly reduces allocations while computing identifier for a large dependency tree.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This does not have a reasonable way of inferring the underlying name. For zero value it falls back to base of executable pathname.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This change also updates the documentation of NewExec.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This result was mistakenly unused resulting in incorrect identifiers for artifacts with duplicate dependencies.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
An upcoming improvement in the container init makes the current host net check return the same result for both cases. This change
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This imposes a hard upper limit to concurrency during dependency satisfaction and moves all dependency-related code out of individual implementations of Artifact. This change also includes ctx and msg as part of Cache.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This removes all but the /work/ auto overlay behaviour and enables much greater flexibility. This also renames ExecContainerPath to ExecPath so it is easier to type.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This allows tar to take a single-file directory Artifact as input.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This directly submits the upperdir to cache. It is primarily used in bootstrapping where tools are limited and should not be used unless there is a very good reason to.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This sets up the last Artifact to target /tmp as a writable overlay mount backed by the host side temp directory. This is useful for an Artifact containing source code to be built for another Artifact for example.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This makes it possible to use an Artifact as root without arranging for directory creation in the Artifact ahead of time.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This validates hostNet state.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This optionally attaches an output checksum to an execArtifact and enables host networking for the resulting container.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This can be reused in other test cases.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This results in os.ErrInvalid instead of a panic, which hopefully improves user experience.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This runs a program in a container environment. Artifacts can be made available to the container, they are cured concurrently and mounted in order.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|