summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2021-08-18Introduce proxy object for limiting filesystem access with semaphoreparallel-repository-loadingMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-08-17Revert "Limit opened files by limiting recursion"Matthias Beyer
This reverts commit 9a3a579c09c532220a986abf5880d9b2d6f445ef.
2021-08-17Limit opened files by limiting recursionMatthias Beyer
This patch limits the recursion to only parallelize recursion by factor 5 for now. This seems to work with an ulimit of 1000 files for a repository with ~1800 pkg.toml files in ~3500 directories. Unfortunately, this does not _really_ speed up things (20 sec vs 16 sec, not really scientifically measured). So this is not a nice solution and we really should re-think our loading mechanics. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net> Tested-by: Matthias Beyer <matthias.beyer@atos.net>
2021-08-17Make Repository-loading stop sync over 1000 open files with a semaphoreMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-08-17Make repository loading asyncMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-08-13Enable "fs" target for tokio-streamMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-08-13Make Repository::load() interface asyncMatthias Beyer
Not the enterior of the function, yet. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-08-12Fix: Do not use wildcard expression in dependenciesMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-08-12Fix: Pass Some(_) progressbar in testsMatthias Beyer
Fixes: f20bf09292739e1bdbba9c1f8235a35f7d2d7712 ("Make progress bar for loading DAG optional") Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-08-12Fix clippy: Replace map-collect-to-result with try_for_each()Matthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-08-12Fix clippy: Use unused valueMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-08-12Fix clippy: Remove unnecessary return keywordMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-08-12Fix Allow enum variant names with equal prefix hereMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-08-12Fix clippy: Remove needless borrowsMatthias Beyer
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2021-07-27Merge branch 'download-redirect-follow'Matthias Beyer
2021-07-27Merge branch 'parallelize-package-print-preparation'Matthias Beyer
2021-07-27Merge branch 'optional-dag-loading-progress'Matthias Beyer
2021-07-27Merge branch 'endpoint-images'Matthias Beyer
2021-07-27Merge branch 'package-print-format'Matthias Beyer
2021-07-27Merge branch 'connecting-spinner'Matthias Beyer
2021-07-27Merge branch 'fix-dont-reuse-with-new-dependency-bug'Matthias Beyer
2021-07-27Merge branch 'update-dependencies'Matthias Beyer
2021-07-27Clearify progress-bar error messageMatthias Beyer
If there are no "other tasks", an error couldn't have happened on another task. Thus, adapt the error message properly. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-07-21env_logger: 0.8 -> 0.9Matthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-07-21Pin transitive dependency "zeroize"Matthias Beyer
dialoguer depends on zeroize, which broke their public interface in 1.4.0 by updating the minimum required rust version to 1.51.0. Because we have 1.50.0, this does not work anymore. Because dialoguer depends on zeroize "1.1.1", we can pin zeroize to 1.3 in our dependencies, to force the build to not use the 1.4.* release (or newer) of zeroize. This is of course not a long-term solution. The proper fix is to update our MSRV, but I do not want to do that right before our 0.2.0 release. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-07-21Add builder options in error messageMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-07-21Refactor: Move helper fn to in outermost scopeMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-07-21Fix: Remove indention from after_help() textMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-07-21Sort importsMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-07-01Fix: Follow HTTP redirectsMatthias Beyer
This patch fixes the reqwest GET call by building a Client and a Request object configured to follow HTTP redirects (10 by now, maybe this will later need to be configurable). Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-07-01Refactor: Move helper fn to in outermost scopeMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-30Fix: Propagate information whether an Artifact was built or reusedMatthias Beyer
This patch fixes a bug where butido did not rebuild a package if one of its dependencies was rebuild. Of course, if in a dependency chain with libA -> libB, if libB gets rebuild, we need to rebuild libA as well. For this, a new (Wrapper-)type `ProducedArtifact` was added (private to the orchestrator module) that holds that information. This information is only necessary between the individual build workers. If we know from all dependencies that the artifacts were reused, we can check for a similar job in the database and reuse artifacts from that job as well. If one dependency was built, we need to rebuild the current package as well. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-30Remove unused codeMatthias Beyer
This piece of code actually did nothing except trace!()-printing. Thus, remove it. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-24Add spinner for establishing database connectionMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-24Fix package print format defaultMatthias Beyer
Maybe this is necessary because of the handlebars update, I am not entirely sure (because it is actually a not-so-much-used feature). This patch styles the default format string for the output to be more visually pleasing. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net> Tested-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-23Add implementation of "endpoint images" subcommandMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-23Add CLI spec for "endpoint images" subcommandMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-23Add Endpoint::images() to get information about the images on an endpointMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-18Remove progressbar for tree-of subcommandMatthias Beyer
Remove the progress bar here because it does not bring any real value and rather clutters the output and thus makes it harder to read. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net> Tested-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-18Make progress bar for loading DAG optionalMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Add more trace outputMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Add error explanation trace outputMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Add some result inspect() calls for printing trace informationMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Fix: Sort importsMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Fix: trace output variable interpolationMatthias Beyer
The PATCH_DIR_PATH was interpolated as first argument, which was wrong. Also, it is contained in the `destinations`, so it is not required anyways. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Make sure error is printed outside of progress barsMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Remove print_packages() functionMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Move what-depends implementation to new package print interfaceMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net> Tested-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Move dependencies-of implementation to new package print interfaceMatthias Beyer
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net> Tested-by: Matthias Beyer <matthias.beyer@atos.net>
2021-06-16Iterator adaptor for package printing mechanicMatthias Beyer
This implements a new interface for printing packages from an iterator. It can be used to implement parallel print-preparation. The new interface is used in the command implementation of the "find-pkg" subcommand. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net> Tested-by: Matthias Beyer <matthias.beyer@atos.net>