Age | Commit message (Collapse) | Author |
|
Since logs from offloaded builds are collected in a temporary directory
on the remote server, it is rather difficult/error-prone to get to them,
because the path changes in each rebuild. Fetching logs from the server
into $LOGDEST makes it easier to investigate them and also brings the
behavior of offload-build closer to archbuild.
Log files are always downloaded, even for failed builds.
Component: offload-build
Signed-off-by: Jakub Klinkovský <lahwaacz@archlinux.org>
Co-authored-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Use a central location in common.sh to define the default rsync options.
Switch to use batched uploads by targeting a partial directory which is
not taken into account by db update. Instead, once all packages that
belong to a split package group are uploaded into the .partial
directory, all artifacts are moved in one batch into the staging
directory of the repo server. This reduced the window of opportunity for
a partial release significantly to a tiny window.
Component: pkgctl release
|
|
Introduce a new version subcommand `setup` which does a best effort to
generate the most minimal required .nvchecker.toml file for specific
sources.
It supports a wide range of common sources like:
- Git, GitHub, GitLab, Hackage, NPM, PyPI, RubyGems, CPAN, crates.io
The creation logic is based on matching a domain for a source which is
something predictable and then simply passes an array of the url parts
for every source creator to extract the useful bits out of the url
array.
Component: pkgctl version setup
Co-authored-by: Levente Polyak <anthraxx@archlinux.org>
Signed-off-by: Jelle van der Waa <jelle@archlinux.org>
|
|
This avoids some corner cases that some applications behave ill when
TERM is completely unset. Instead, ensure we set TERM to dumb as a
fallback, which should serve better than not having any term defined.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
The latest release of devtools has included some pretty printing
capabilities and fancy terminal stuff with the spinner and so on.
It seems like the existing safeguards to disable this for incapable
terminals were not enough though, therefore we saw two types of errors:
- offload-build:
```
==> Building in chroot for [extra] (x86_64)...
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
tput: unknown terminal "unknown"
```
- repro builders:
```
==> Successfully switched <package> to version <version>
tput: No value for $TERM and no -T specified
ERROR: Failed checkout <package>
```
The recently included fail option made this error populate to the
command level and therefore increased its impact from a not so nice
logging message to a more severe problem which made the command abort.
We fix this by checking if tput is supported or else use the raw escape
sequences instead of tput commands.
Fixes: fedfc80 ("feat(term): add terminal utils to handle a dynamic spinner")
Fixes: 66e83c9 ("feat(version): pretty print and group together version check results")
Fixes: d0dc0e1 ("feat(search): add optional plain output formatting")
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
The spinner uses a status file that can be used to dynamically update
the message. The spinner itself buffers the output in a frame buffer
variable before flushing a frame in one go.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Collect all check results in arrays and pretty print the results after
grouping them together based on out-of-date, up-to-date and failures.
Print a summary that shows a brief statistic about the results when
processing multiple check items.
Component: pkgctl version check
Component: pkgctl version upgrade
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Add an aur command to interact with the Arch User Repository including
the drop-from-repo subommand which allows to drop packages from the
official repository to the Arch User Repository in one go.
Related to #143
Component: pkgctl aur drop-from-repo
Co-authored-by: Levente Polyak <anthraxx@archlinux.org>
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
This allows to run the search command without bats, which is not used in
the default pretty output format.
Component: pkgctl search
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Previously if we opened a lock on an existing file with useful content
we overwrote it with an empty file. This is obviously not desired, hence
open the file handle in append mode preserving its content.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
BREAKING CHANGE: Increments the repo spec version which requires to
reconfigure all existing packaging repo clones.
Fixes #129
Component: pkgctl repo configure
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
There is a single endpoint now to list all pkgbases and their current
maintainers. Use this endpoint for speeding up the clone of all packages
of a maintainer by only issuing a single API call.
Component: pkgctl repo clone
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Run up to N jobs in parallel. By default the number of jobs is equal to the
number of available processing units. For sequential processing this option
needs to be passed with 1.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
We only need to specifically use ssh:// protocol prefix if we want to
specify a special port. As we moved to support pulling directly over
port 22 from out GitLab instance we can change the url scheme to the
simple variant.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
There is no reason anymore to use m4 since we got rid of the includes by
using library files. Let's replace the last usage of m4 and completely
red rid of it.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
We need to use API calls as we can't create repositories in protected
namespaces by simply pushing a none existing repository. For privacy
reasons this is limited to private personal repositories in GitLab.
|
|
This will greatly help us to structure the functionality and commands in
a more sane way. We will distribute the sources as actual libraries and
reuse code with imports instead of processing everything with m4 and
duplicating a lot of code.
|