Ettore Di Giacinto
b1316b50b4
Add excludes tests
2020-11-08 16:02:11 +01:00
Ettore Di Giacinto
d92ee9e1d9
Add preliminar support for excludes
2020-11-08 15:35:24 +01:00
Ettore Di Giacinto
6a1b64acea
Order files before uninstall
...
Fixes #149
2020-11-08 12:36:41 +01:00
Ettore Di Giacinto
459eb01a59
Don't write err to stdout if not present
2020-11-08 10:02:00 +01:00
Daniele Rondina
e70cdbaaf7
Respect rootfs on repositories urls
2020-11-08 00:00:15 +01:00
Daniele Rondina
513f441bb3
Add option config_from_host
2020-11-07 18:56:25 +01:00
Daniele Rondina
ebe7466fdc
Respect rootfs path for load config
2020-11-07 18:28:23 +01:00
Ettore Di Giacinto
46ed6423ad
Merge pull request #147 from mudler/fix-protect-uninstall
...
Fix protect uninstall
2020-11-07 12:28:24 +01:00
Daniele Rondina
d5df40512b
installer: Improve message for protected files
2020-11-07 12:27:18 +01:00
Daniele Rondina
d219a2e0fb
Run travis task with/without buildkit
2020-11-07 11:41:44 +01:00
Daniele Rondina
4048138dcb
Add test suite for ConfigProtect
2020-11-07 11:39:31 +01:00
Daniele Rondina
e5f44eee09
ConfigProtect: support annotation without initial /
2020-11-07 11:39:13 +01:00
Daniele Rondina
6819a28f07
Add support to DOCKER_BUILDKIT on test
2020-11-07 11:37:58 +01:00
Daniele Rondina
24eb6eaef5
Fix test with docker buildkit
2020-11-07 11:37:58 +01:00
Daniele Rondina
c72565e019
Integrate tests for config protects with uninstall
2020-11-06 23:30:37 +01:00
Daniele Rondina
68bc8d4d27
ConfigProtect: Permit to obtain the list of files without initial /
2020-11-06 23:29:08 +01:00
Daniele Rondina
b24d335538
GetProtectFiles() is used also for tree tarball without specs
2020-11-06 23:00:37 +01:00
Ettore Di Giacinto
99bf9e291d
Use LStat and attempt removing before bailing out on first failure
2020-11-06 21:34:56 +01:00
Daniele Rondina
51417ecb5d
pkg/compiler/artifact.go: permit to support config protect with only annotation
2020-11-06 20:23:46 +01:00
Daniele Rondina
130eb8de1a
Integrate config protection on uninstall too
2020-11-06 20:14:25 +01:00
Ettore Di Giacinto
5b5735266a
Calculate provides for parallel solver too
2020-11-05 21:00:24 +01:00
Ettore Di Giacinto
984366d3a5
Consider provides during upgrades
2020-11-05 20:52:02 +01:00
Ettore Di Giacinto
25f69d4f1c
Bump topsort
2020-11-03 17:20:52 +01:00
Ettore Di Giacinto
102a788c91
Revert "Revert "Stabilize ordering graph""
...
This reverts commit 2b23016a51
.
2020-11-02 15:43:35 +01:00
Ettore Di Giacinto
2b23016a51
Revert "Stabilize ordering graph"
...
This reverts commit 940f553e1c
.
2020-11-02 15:43:15 +01:00
Ettore Di Giacinto
940f553e1c
Stabilize ordering graph
...
In this way when we order, we always return the same solution order in
case there are weak deps.
The following is optional - it doesn't change the "correctness" of the
solver results: We add an extra edge between deps that
share common dependendencies. This makes the link more stronger and
balances the graph so it doesn't show different results for the same query, as they
could be shuffled as don't have a direct connection.
2020-11-02 14:30:41 +01:00
Ettore Di Giacinto
c3ef549673
Warn user only when required when uninstalling directories
2020-10-31 11:56:03 +01:00
Ettore Di Giacinto
0e764e525e
Filter packages to install instead of looping solver result
2020-10-31 01:25:18 +01:00
Ettore Di Giacinto
f401e2b37f
Add install benchmark test for solver
2020-10-30 22:20:08 +01:00
Ettore Di Giacinto
91dfb8ce3a
Enhance CLI output
2020-10-30 19:15:04 +01:00
Ettore Di Giacinto
f6a4b634c1
Don't always walk all World() packages
...
With this change the solver during install now considers only the part
of the tree which is required to calculate the solution, it doesn't
consider anymore World() as the search space.
The search space now is narrowed down to the packages that related to
the one which we are considering.
In this subset of changes we are also optimizing the Parallel solver
avoiding an useless loop.
This change boost overall performance on large datasets which don't
necessarly have relations touching the whole tree.
2020-10-30 19:12:12 +01:00
Ettore Di Giacinto
39bc74fc73
Add boltDB test and fixup range over interface cast
2020-10-29 16:32:13 +01:00
Ettore Di Giacinto
99c59643a1
Add benchmarks tests
2020-10-29 16:32:13 +01:00
Ettore Di Giacinto
ffea4d8cf9
Fix priority constraint formula
...
The parallel solver made the issue more visible, the constraints needed
to be less relaxed and needed to be exclusive so our candidate is looked
up at it first
2020-10-29 16:32:13 +01:00
Ettore Di Giacinto
e459ddf470
Optimize BoltDB World() call
2020-10-29 16:32:13 +01:00
Ettore Di Giacinto
eb2c240e84
Adapt installer tests
2020-10-29 16:32:13 +01:00
Ettore Di Giacinto
95e640c9d0
Make solver type switchable
2020-10-29 16:32:13 +01:00
Ettore Di Giacinto
9f1a182eee
Add tests and various fixes to parallel implementation
2020-10-29 16:32:13 +01:00
Ettore Di Giacinto
9a7d92b02e
Make the parallel solver completely parallel in building formulas from dataset
2020-10-29 16:32:13 +01:00
Ettore Di Giacinto
c5ed36b2bd
Sketch concourrent solver when building formulas
2020-10-29 16:32:13 +01:00
Daniele Rondina
6806103b3e
installer: Start spinner of upgrade calculation
2020-10-25 14:01:45 +01:00
Ettore Di Giacinto
0aa0411c6e
Bump copy dep and handle shallow symlinks
2020-10-19 17:58:43 +02:00
Daniele Rondina
c0cc9ec703
convert: Now use slot for category name
2020-10-18 19:58:15 +02:00
Daniele Rondina
07dff7f197
installer: log packages ignored on create-repo
2020-10-12 08:42:19 +02:00
Daniele Rondina
d67cf2fa33
Revert "Do image export only if we have to generate the package"
...
This reverts commit 0857e53b03
.
2020-10-07 10:14:06 +02:00
Ettore Di Giacinto
0857e53b03
Do image export only if we have to generate the package
2020-10-06 19:01:25 +02:00
Ettore Di Giacinto
1c1bdca343
Add only-target-package option to luet build
2020-10-06 17:57:57 +02:00
Ettore Di Giacinto
74246780d4
Support templated packages
2020-10-04 19:33:15 +02:00
Daniele Rondina
097ea37c97
compiler/artefact: remove debug println
2020-10-02 22:37:38 +02:00
Daniele Rondina
c64660b8d1
Permit to ignore config protect rules
...
* Added command line option --skip-config-protect
* Added config option config_protect_skip
2020-10-02 22:25:21 +02:00
Daniele Rondina
c8c53644f3
Avoid segfault if tree path doesn't exist
2020-09-17 08:05:05 +02:00
Daniele Rondina
045d25bb28
pkg/package: Add method SetVersion to DefaultPackage
2020-08-30 08:53:37 +02:00
Daniele Rondina
93187182e5
pkg/compiler: Fix typo on error message
2020-08-19 19:24:46 +02:00
Ettore Di Giacinto
a076613f66
Fixup import path
2020-08-07 19:30:08 +02:00
Ettore Di Giacinto
95b125cb91
Pull images before executing diff tests
2020-08-06 18:03:00 +02:00
Ettore Di Giacinto
66513955c7
Compute image diffs internally
...
Is it more faster in this way as we already have all the needed folders
to the comparison extracted. In this way we don't repeat I/O operation
twice by calling container-diff.
Do not depend on container-diff anymore
2020-08-05 19:09:45 +02:00
Ettore Di Giacinto
e30bb056d5
Drop IsFlagged from tests
2020-08-02 12:22:43 +02:00
Ettore Di Giacinto
052a551c0c
Add "hidden" field to packages
...
Also drop residual of IsSet which isn't actually used
Related to #26
2020-08-02 11:31:23 +02:00
Ettore Di Giacinto
07a1058ac1
Add cli option to skip packages if only metadata is present (without checking the image)
2020-07-17 22:42:03 +02:00
Ettore Di Giacinto
5dcf77c987
Add package buildtimestamp and luet upgrade --sync
...
Annotate the package build time when compiling, and use that from the
client to force upgrade of packages that changed the artifact, but
didn't changed any version.
The client can trigger this behavior with `luet upgrade --sync`
2020-07-12 15:29:38 +02:00
Daniele Rondina
364b5648b4
repository loader now support .yaml extension
2020-07-04 20:07:32 +02:00
Daniele Rondina
e2260b6956
Add --no-spinner option
2020-06-27 16:45:49 +02:00
Ettore Di Giacinto
16e9d7b20c
Use packageImage as builder image fingerprint
...
This allows to have an unique identifier for the builder image id against
different depgraphs combinations. The package fingerprint is not enough,
as an atom could have a difference deptree depending on the requires
constraints.
TODO: Don't use the full image name, but only the hash as a salt
(currently the salt contains ALSO a reference of the image-repository,
as such it doesn't allow to port a tree in a different docker registry)
2020-06-23 18:59:18 +02:00
Ettore Di Giacinto
7b51e83902
Merge pull request #119 from mudler/config-protect
...
Integrate feature config-protect like Gentoo/Funtoo do
2020-06-07 11:33:55 +02:00
Daniele Rondina
3a365c709b
Integrate config-protect from package spec
2020-06-06 13:12:54 +02:00
Daniele Rondina
0917c2703e
helpers/archive: Refactor and add support for config protect when sameOwner is false
2020-06-06 12:34:44 +02:00
Ettore Di Giacinto
264e1e9652
Print inspect output as string
2020-06-06 11:32:47 +02:00
Daniele Rondina
c87db16d31
tarModifierWrapperFunc: Now use strings.HasPrefix for match path
2020-06-06 10:38:11 +02:00
Daniele Rondina
837eeb04ec
config/config_protect: Fix load of configuration files
2020-06-06 10:35:38 +02:00
Ettore Di Giacinto
90a25406a0
Add --full option to build
...
Don't compile dependencies when computing all the compilation specs from
a tree if are among the target deps
Fixes #41
2020-06-06 08:58:18 +02:00
Daniele Rondina
d946e39a15
pkg/helpers/archive_test: Fix test
2020-06-05 23:53:33 +02:00
Daniele Rondina
415b1dab9a
Add test of modifier
2020-06-05 23:12:35 +02:00
Daniele Rondina
16f717f04b
tarModifierWrapperFunc: Fix config protect filename
2020-06-05 23:12:19 +02:00
Ettore Di Giacinto
9e0e1199df
Check if image exists before skipping compilation
2020-06-03 21:00:30 +02:00
Daniele Rondina
8f0c528c08
Create helpers.UntarProtect for handle protected files
...
Currently, it's used the archive.ReplaceFileTarWrapper
that requite a []byte of the files replaced. This is not
a good idea if files are big and instead could be better
in the near future reimplement ReplaceFileTarWrapper with
a callback that return io.Reader instead of []byte.
If a protected file is already present on target rootfs
it is created a file with the same prefix used in Gentoo:
._cfgXXXX_<filename>
2020-06-02 11:08:37 +02:00
Daniele Rondina
a2231749ab
Begin implementation for catch config protect files
2020-06-02 09:04:40 +02:00
Ettore Di Giacinto
990a5405cf
Merge pull request #116 from mudler/review-config-path
...
Review configuration file parsing logic
2020-05-31 11:05:55 +02:00
Daniele Rondina
1d8a6174bb
Drop duplicate code for general.same_owner
2020-05-30 16:51:10 +02:00
Daniele Rondina
9e7c7e69f8
Review configuration file parsing logic
...
Luet support now these priorities on read configuration file:
- command line option (if available)
- $PWD/.luet.yaml
- $HOME/.luet.yaml
- /etc/luet/luet.yaml
2020-05-30 16:46:29 +02:00
Ettore Di Giacinto
cc21e6fa5e
Respect user-defined repository naming
2020-05-24 12:16:02 +02:00
geaaru
8c4f5b2911
Merge pull request #113 from mudler/annotations
...
Add Annotations to package spec
2020-05-23 10:52:32 +02:00
Daniele Rondina
44d68a9583
Add annotations option to package spec
2020-05-23 09:27:38 +02:00
Daniele Rondina
dba6c361c2
Move helpers/cli to cmd/helpers
2020-05-23 08:51:33 +02:00
Ettore Di Giacinto
4197d7af61
Add upgrade by using only the SAT core
...
- Adds upgrade --universe and upgrade --universe --clean. It will
attempt to bring the system as much close as the content available in
the repositories. It differs from a standard upgrade which checks
directly that what is pulled in doesn't conflict with the system. In
this new way, we just query the SAT solver to decide that on our
behalf.
- Add uninstall --full-clean. It uses only the SAT solver to uninstall
the package and it will drop as many packages as required (including
revdeps of packages too.
2020-05-22 21:20:58 +02:00
Ettore Di Giacinto
bfde9afc7f
Add Nodeps and Full options to upgrade
2020-05-22 21:20:57 +02:00
Ettore Di Giacinto
3237423dde
Enhance upgrade output
2020-05-22 21:20:57 +02:00
Ettore Di Giacinto
ab179db96a
Don't drop packages that would be re-installed during upgrade
...
Check for packages that are marked for deletion. If the ones that are
marked for install are depending on it, don't remove them at all
2020-05-22 21:20:52 +02:00
geaaru
916b2a8927
Merge pull request #112 from mudler/package-sanitized
...
Package sanitized
2020-05-20 11:42:47 +02:00
Daniele Rondina
a16bdddeb2
Add spectooling test suite
2020-05-20 10:26:30 +02:00
Daniele Rondina
e38a4b3d9b
Use DefaultPackageSanitized struct for write specs
2020-05-20 09:59:48 +02:00
Ettore Di Giacinto
9971fe9f45
Unique hashes for packages without deps
2020-05-18 19:57:01 +02:00
Daniele Rondina
11759f98e0
package/NewPackage: init Labels on AddLabel
2020-05-18 19:51:47 +02:00
Daniele Rondina
cb2ac15de8
package: Fix typo on labels key
2020-05-17 19:17:14 +02:00
Ettore Di Giacinto
51711dafba
Add package_dir to pack a spec dir as the main artifact
2020-05-16 21:34:27 +02:00
Ettore Di Giacinto
2803430515
Add solver test scenario
2020-05-16 11:11:17 +02:00
Daniele Rondina
a7d1381cb5
cmd/create-repo: Add support for multiple trees
2020-05-10 20:18:10 +02:00
Daniele Rondina
13df161fc6
logging: permit to disable color and emoji
...
Now it's possible disable color and emoji on standard
output with:
$> luet <cmd> --color=false --emoji=false
Hereinafter, the list of changes:
* Added logging option logging.color (default true)
* Added logging option logging.enable_emoji (default true)
* Added persistent flag --color
* Added persistent flag --emoji
2020-05-09 10:08:21 +02:00
Daniele Rondina
fe5ab9246f
Added option for enable log to file.
...
Now it's possible logging to file is handled by the enable_logfile
option and by the path.
From cli is now possible:
* enable log to file with the option --enable-logfile
* modify the logfile path with the option --logfile/-l <path>
2020-05-09 10:05:34 +02:00
Ettore Di Giacinto
20cb96e0cc
Simplify ordering check
...
we don't need a map[string]map[string]interface{}, as we don't need to
keep the data around
2020-05-04 17:34:29 +02:00
Daniele Rondina
b68634b58a
solver: skip same packages in the order and avoid loop
2020-05-04 12:21:49 +02:00
Ettore Di Giacinto
46014fb9c1
Enhance install output
2020-05-03 13:22:06 +02:00
Ettore Di Giacinto
ada9d886fa
Enhance uninstall output
2020-05-03 13:22:00 +02:00
Ettore Di Giacinto
a1d8ef1422
Allow to partially uninstall a package graph, make uninstall --full optional
2020-05-03 13:04:34 +02:00
Ettore Di Giacinto
7b6e4a2176
Add to the Solver the capability to check conflicts with revdeps
2020-05-03 10:34:18 +02:00
Ettore Di Giacinto
3befbfa915
Optimize uninstall computation
2020-05-02 15:43:57 +02:00
Ettore Di Giacinto
d4c25d74f5
Remove focus from test
2020-05-02 13:27:15 +02:00
Ettore Di Giacinto
2ed9781c88
Don't try to match against repo already installed packages
2020-05-02 13:24:46 +02:00
Ettore Di Giacinto
9d6d6bc0c8
Add more upgrade and reclaim tests scenarios
2020-05-02 12:18:19 +02:00
Ettore Di Giacinto
f8b2837741
Enhance reclaim output
2020-05-02 12:17:54 +02:00
geaaru
878e6d7b9c
Merge pull request #103 from mudler/tmpdir-cleanup
...
Tmpdir cleanup
2020-05-02 09:20:01 +02:00
Daniele Rondina
a89c0af2f8
config/config_test: Fix typo
2020-05-01 15:34:17 +02:00
Daniele Rondina
1f99fde1c5
Add config test suite
2020-05-01 15:26:53 +02:00
Ettore Di Giacinto
4b63c9eaf9
Add test to be sure we don't index packages not in the tree
2020-05-01 11:48:05 +02:00
Ettore Di Giacinto
286d0fba2c
Fix typo
2020-05-01 11:07:14 +02:00
Ettore Di Giacinto
624518bf77
Don't add package to the repository which aren't referenced by the tree
2020-05-01 10:52:40 +02:00
Daniele Rondina
51a4037b1b
config: Initialize luet tmp basedir if doesn't exist
2020-05-01 08:18:18 +02:00
Ettore Di Giacinto
9cb290b484
Improve database errors
2020-04-30 20:44:34 +02:00
Daniele Rondina
11944873ea
Integrate tmpdir_base params and tmpdirs cleanup
2020-04-30 20:29:28 +02:00
Ettore Di Giacinto
322ac99f17
Annotate package runtime definition when reclaiming
...
This was an issue as we were copying the buildspec instead
2020-04-30 18:56:50 +02:00
Ettore Di Giacinto
6acc5fc97e
Make BuildFormula support dependency cycles
2020-04-30 18:56:35 +02:00
Ettore Di Giacinto
6a4557a3b3
Make RequireContains support dependency cycles
2020-04-30 18:56:06 +02:00
Ettore Di Giacinto
a457c53824
Fixups to ExpandedRevdeps
2020-04-24 00:15:18 +02:00
Ettore Di Giacinto
8305d01e76
Walk requires in ExpandedRevdeps
...
In this way we annotate the visited and we avoid cycles that can be
generated by revdeps
2020-04-23 23:44:42 +02:00
Ettore Di Giacinto
9321a310a5
Support mount with target folder in box exec
...
Also mount bind before pivotroot, this fixes bind mounting in general
2020-04-21 17:30:27 +02:00
Ettore Di Giacinto
4cee27da7f
Fixup box CLI params and consume new box options
2020-04-20 23:03:03 +02:00
Ettore Di Giacinto
98876c8f20
Add support for env and hostmounts in box
2020-04-20 23:01:49 +02:00
Ettore Di Giacinto
4c2d38be59
Add package ExpandedRevdeps
2020-04-19 11:55:13 +02:00
Ettore Di Giacinto
8e91c255a3
Make FindPackageMatch match packages HumanReadableString
2020-04-19 10:47:55 +02:00
Ettore Di Giacinto
ac871cb0a3
Add --output option to search
...
In such way it can be parsed by scripts more easily.
It also disable the spinner based on loglevel
Fixes #92
2020-04-18 23:22:00 +02:00
Ettore Di Giacinto
4d466d0330
Sync the repository data with user configured data
...
Fixup a regression, in this way we respect the user configuration in
regards to a repository to be consumed (priority and repository type)
regardless of the one advertized remotely.
Also add informative message about prio and type.
2020-04-18 17:33:46 +02:00
Ettore Di Giacinto
84407e5ae7
Add SetPriority to repository
2020-04-18 17:33:34 +02:00
Ettore Di Giacinto
64bac0823c
Consume our moby fork
...
It handles #91
2020-04-18 11:41:34 +02:00
Ettore Di Giacinto
ee0fe1a86a
Allow to finalizer to specify entrypoint command
...
In this way, finalizer in strict environment can override the default
shell used to run commands.
The shell keyword is a list, as it needs to contain the full command +
args.
2020-04-14 17:46:39 +02:00
Ettore Di Giacinto
538ba8f5df
Add luet reclaim
...
Reclaim allows to migrate between different system layouts. This
is a experimental feature (yet) and might be revisited in the future.
This change:
- Adds Reclaim(system) to Installer
- Adds unit tests
Relates to #86
2020-04-13 19:32:51 +02:00
Ettore Di Giacinto
eb56956c65
Add Touch file helper
2020-04-13 19:32:50 +02:00
Ettore Di Giacinto
4e2d42e397
Drop downloadOnly bool from installer.Install
2020-04-13 19:32:50 +02:00
Ettore Di Giacinto
528f481a7b
Annotate package files in metadata
...
Fixes #87
2020-04-13 10:52:41 +02:00
Ettore Di Giacinto
f987ee9fa0
Handle errors from os/user
...
We use it to generate defaults, if error is found, we imply preserve
permissions
2020-04-11 20:05:56 +02:00
Daniele Rondina
69a82a1ca5
simpledocker: Use debug option for print container-diff results
2020-04-10 09:32:12 +02:00
Daniele Rondina
02c33896d5
simpledocker: Move warning before return
2020-04-10 09:31:08 +02:00
Daniele Rondina
c2e9176ab2
solver.Order now return error
2020-04-09 17:07:57 +02:00
Ettore Di Giacinto
0d2668e452
Print warning if container-diffs return errors to stderr
2020-04-08 18:31:40 +02:00
Ettore Di Giacinto
77ba4193aa
Add ValidateSelector to versioner interface and consume it
...
We can refactor furthermore by dropping the package methods, as now we
can consume a versioner in all places that requires it
2020-04-05 15:52:16 +02:00
Ettore Di Giacinto
5a5e7f1dfa
Move version logic inside versioner
...
WIP, it needs yet to be under the interface implementation
2020-04-05 11:16:14 +02:00
Ettore Di Giacinto
cf8091a7fd
Re-enable debian versioning test, add more cases
2020-04-04 16:49:41 +02:00
Ettore Di Giacinto
3caaa01eb8
Add semver detection to versioner
...
In this way we compare only all version that are compliant to semver,
otherwise we fallback to debian sorting.
2020-04-04 16:48:48 +02:00
Ettore Di Giacinto
4eae0a851c
Add versioner unit tests
2020-04-04 16:33:08 +02:00
Ettore Di Giacinto
626419f955
Fix original version mapping in versioner
2020-04-04 16:23:43 +02:00
Ettore Di Giacinto
84625be9ac
Adapt package.Best to take a Versioner interface
2020-04-04 15:33:14 +02:00
Ettore Di Giacinto
04f9a88a5f
Add versioner interface to wrap versioning operations
...
This allows to scope responsabilities and enables switching to different
ordering algorithms
2020-04-04 15:29:20 +02:00
Ettore Di Giacinto
9d58b0a0cc
Adapt tests to refactor
2020-04-04 14:41:58 +02:00
Ettore Di Giacinto
5e31d940f0
Introduce Packages for []Package
2020-04-04 14:29:08 +02:00
Daniele Rondina
129ca8da55
Add version sanitized to Best()
2020-04-03 18:32:26 +02:00
Daniele Rondina
ee66839bd3
pkg/package/version: Better search for last +
2020-03-29 09:10:52 +02:00
Ettore Di Giacinto
a0113dcd13
Drop verbose output
2020-03-28 17:05:23 +01:00
Ettore Di Giacinto
49d7b4e2bf
Add box structure to handle containerized executions
2020-03-28 16:58:46 +01:00
Ettore Di Giacinto
f15ed3fda1
Move finalizer in its own struct
...
Also distinguish when we run in a root target dir ("/") or when we want
to run the commands in a separate folder
2020-03-28 16:57:40 +01:00
Ettore Di Giacinto
2ad16fa875
Add ListDir helper
2020-03-28 16:55:16 +01:00
Ettore Di Giacinto
416be23a46
Don't always remove unpacked repository content
2020-03-28 12:07:40 +01:00
Daniele Rondina
50091b2a4b
pkg/installer: Add test for uncompress tree and minor cleanup
2020-03-25 00:19:52 +01:00
Ettore Di Giacinto
117554792d
Don't attempt to upgrade packages already in system
2020-03-24 20:30:59 +01:00
Daniele Rondina
454e9d934e
Use filename instead of name on repo specs
2020-03-24 19:40:11 +01:00
Ettore Di Giacinto
af7f1de9f1
Split download and installer worker
...
Also, drop downloadOnly from install
2020-03-24 18:19:09 +01:00
Daniele Rondina
a0f9222068
Add check of repository metafile archive in tests
2020-03-24 14:01:22 +01:00
Daniele Rondina
520768d0ca
pkg/installer: Align tests with new default
2020-03-24 12:52:45 +01:00
Daniele Rondina
4f002ab40f
pkg/installer/repository: The check for repo_files is not needed for parsing normal repo
2020-03-24 12:52:24 +01:00
Daniele Rondina
60635a03eb
Fix propagation of repo file name and add test for meta compressed
2020-03-24 00:31:41 +01:00
Daniele Rondina
202ed2651a
💥 Refactor and split repository.yaml file
2020-03-24 00:05:16 +01:00
Daniele Rondina
6bd8fe6789
Add omitempty to DefaultPackage fields
2020-03-22 22:23:11 +01:00
Daniele Rondina
40830ecf42
installer/repository.go: Use switch with search options
2020-03-22 10:46:51 +01:00
Daniele Rondina
c7652c8a70
Added labels
to package definition
...
* cmd/search: Add support for search of the packages
with a specific label.
* review Search method of Repositories for permit
different search modes.
* labels are k/v attributes and could be matched
through label key (with HasLabel method) or through
regex that use "$key" + "=" + "$value"
2020-03-21 19:24:27 +01:00
Ettore Di Giacinto
fab2d21ac1
Drop unused function
2020-03-19 22:39:22 +01:00
Ettore Di Giacinto
487239334f
Treat base case with same algorithm of dependencies
2020-03-19 22:37:39 +01:00
Ettore Di Giacinto
69477a0c36
Make uniform build of seeds and packages
2020-03-19 22:34:26 +01:00
Ettore Di Giacinto
67362a3bc1
Drop unused condition
2020-03-19 22:29:34 +01:00
Ettore Di Giacinto
302d18e749
Tag the target image with the computed hash
2020-03-19 22:28:33 +01:00
Daniele Rondina
0249c0fa4a
version: Add temporary workaround for handle build string with _
2020-03-16 22:18:48 +01:00
Daniele Rondina
fc40c770ab
Add 'tree bump' command
2020-03-16 22:18:48 +01:00
Ettore Di Giacinto
4357ee45e9
Drop unused functions in package
2020-03-16 18:08:46 +01:00
Ettore Di Giacinto
6f138811dd
Make recipes idempotent, allowing to load multiple trees
2020-03-15 13:31:12 +01:00
Daniele Rondina
bc5c0fa0cf
cmd/tree/pkglist: Cleanup code
2020-03-14 11:14:14 +01:00
Ettore Di Giacinto
dc64dbff75
Don't try to solve finalizers with --nodeps
2020-03-13 19:32:00 +01:00
Daniele Rondina
93f8f0dd0f
solver: Add category to tests
2020-03-12 00:26:53 +01:00
Daniele Rondina
f4a5a97cff
tree/compiler_recipe: Return right error message
2020-03-08 16:28:12 +01:00
Daniele Rondina
8c972403a3
tree/compiler_recipe: Handle invalid tree path
...
If instead of abs path is used bash annotation
now return an error related to wrong directory
supply.
2020-03-08 15:47:40 +01:00
Daniele Rondina
17238d187a
Change 'Skip dir' message to debug
2020-03-08 00:07:20 +01:00
Ettore Di Giacinto
765261f233
Add Swap() to Installer. Refactor code in Upgrade() to consume it
2020-02-27 23:48:14 +01:00
Ettore Di Giacinto
6c7e24fadf
Sync repositories once (and at beginning) during upgrade
2020-02-27 23:25:29 +01:00
Ettore Di Giacinto
de23e0d5b1
Download dependencies before installing
...
This enables smoother upgrades, and uses cache to pre-download
packages before uninstall/install
Allows also from cli to download deps only
2020-02-27 23:15:31 +01:00
Ettore Di Giacinto
8572aa5222
Preserve cache data from deletion during uninstall
2020-02-27 23:14:36 +01:00
Ettore Di Giacinto
5bcc8d112a
Enforce solver constraints
...
- Don't sign installed packages during finalizer execution
- Enforce solver constraints: build ALO and AMO rules taking into account
that the current package might not be selected at all.
- Force uninstalls on upgrade
- Enable option to tell uninstall to ignore conflict with the analized system state,
as we don't want any conflict with the installed to raise during the upgrade.
In this way we both force uninstalls and we avoid to check with conflicts
against the current system state which is pending to deletion.
This is due to the fact that now the solver enforces the constraints
and explictly denies two packages of the same version installed.
- Adapt test as now we generate more constraints, which makes the solver more
noisy on the package that are explictly selected or not
2020-02-27 18:38:31 +01:00
Ettore Di Giacinto
a0618107a8
Adapt tests
2020-02-26 23:56:21 +01:00
Ettore Di Giacinto
25f2abf103
Do conflict with same package versions while building formula
2020-02-26 23:01:08 +01:00
Ettore Di Giacinto
e3ebfd6bfe
Respect ImageRepository with build --nodeps
2020-02-26 19:00:22 +01:00
Ettore Di Giacinto
07610bc216
Add build option to remove backend artifacts
...
Add keep-exported-images to build to instruct to remove backend artifacts (docker images)
2020-02-21 22:33:18 +01:00
Daniele Rondina
a04dadf100
Add support for parsing version with build
2020-02-21 21:56:32 +01:00
Daniele Rondina
def04724d4
Add support for build identifier on version
2020-02-20 17:46:47 +01:00
Ettore Di Giacinto
38296bc5d7
Add test for HashFingerprint()
2020-02-19 18:33:14 +01:00
Ettore Di Giacinto
7e16e0cdb6
Add HashFingerprint() to Package and consume it while generating image names
...
In this way we don't depend on the package fingerpint characters while generating images, allowing
to support completely semver (e.g. + character is not allowed in docker images tag).
This change is not backward compatible with images currently already built and will invalidate the cache
2020-02-19 18:28:29 +01:00
Ettore Di Giacinto
647ea35983
Add a way to extend the CLI with external binaries
...
This lets luet to be extended like git does (just by having luet-subcommand binaries under $PATH)
following the UNIX filosophy. It has the downside that we silence the errors from cobra and we handle
them by ourselves.
Also the Exec syscall is not portable, and it should have implementation for each platform (hence why in helpers)
2020-02-18 23:08:14 +01:00