* Print all not-found packages
When trying to install several packages that are not found luet will now
print all packages that are not found, instead of only first one.
* changes to some failing tests
* 🐛 Bail out when no packages are found with default solvers
Checking packages is more tricky when a resolver is set. Resolvers
are capable of mutating the user request and remove part of the
constraints in order to resolve a specific solution.
This had the countereffect on a normal solver to not detect correctly
packages when missing from the wanted set and not proposed during
installation.
This should fix all the cases above taking into consideration of
resolvers and adding specific test-cases for it.
* ⚙️ Pin to tag for test image
This refactors DefaultPackage into types.Package and gets rid of the
interface. This is a preceeding for a follow up where accessors will be
removed from the code.
It also does several cleanup, so we get rid also of some unneeded
dependencies.
This commit is multi-fold as it also refactors internally context and logger
as interfaces so it is easier to plug luet as a library externally.
Introduces a garbage collector (related to #227) but doesn't handle yet
parallelism.
Closes#265
Enhance package upgrade ordering during swap taking into accounts of files
shipped by packages.
This change also introduce a new method for clients to get the
underlying cache data, thus consuming it in installer to fix progressbar display
Add api call which uses go-container registry to create OCI images from
standard tar archives.
Consume new API when generating final images instead of docker building them
and adapts/add tests as necessary.
This change now allows to carry over xattrs to final images.
Fixes#266
It is used to ensure integrity and that we do install one package at
once. This is to ensure that we extract correctly, and that we are not
too much I/O intensive depending on CPU
Fixes#259
The bug is caused by
4c725e56bf/progressbar_printer.go (L190)
which is not taking into account when barCurrentLength is <=0.
As a workaround display it only if the terminal width is big enough.
Now the context drives this kind of runtime state, so we keep everything
tight and we inject only that into the workers
This was specific to when s.Target differs from /. The helpers creating
the path were considering the full traversal, instead they should stop
at target.
E.g. our rootfs is in /foo/bar, and while we build the list of paths to
prune for /foo/bar/baz/bar, we should stop looking at /foo/bar.