Age | Commit message (Collapse) | Author |
|
Co-authored-by: Christian Heusel <christian@heusel.eu>
|
|
This introduces the `pkgctl repo clean` command which removes every
untracked files from local package repositories (via `git clean`).
The usage is as simple as `pkgctl repo clean [OPTION] [PATH]` (where
"[PATH]" can be equal to a wildcard "*").
Component: pkgctl repo clean
|
|
Sometimes it isn't obvious which set of packages are removed from a
split package when the pkgbase matches also a subset of a pkgbase. This
can happen for example with bootstrapping packages, when the intention
is to just remove a partial part of the bootstrap pkgbase.
To make the intention more explicit, list all to be removed packages and
await for confirmation.
Component: pkgctl db remove
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
By default passing a pkgbase removes all split packages, debug packages
as well as entries from the state repo for all existing architectures.
When using the `--partial` option it may most likely lead to undesired
effects by leaving debug packages behind as well as dangling entries in
the state repository. However, for specific use cases its required to
get rid of old split package parts.
Fixes #218
Component: pkgctl db remove
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
This allows us to have more control over the output and status logs.
Using this method we are able to avoid cluttering the version upgrade
subcommand while downloading sources for updating the checksums.
Having this internally will also allow us in the future to have smart
checksums updating by only trying to change the checksums of sources
that have actually changed, for example when adjusting a patch file we
should avoid trying to overwrite the archive checksums unintentionally.
Component: pkgctl version upgrade
|
|
This commit aims to make 'pkgctl version upgrade' also update checksums
in addition of bumping the pkgver and reseting the pkgrel.
Component: pkgctl version upgrade
|
|
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>
|
|
Asciidoc is the old reference implementation in Python, which has some
shortcoming. Specifically we are hitting cut off page names for long
subcommands. Fix this by switching to a more modern implementation named
asciidoctor.
During the migration, get rid of the explicit asciidoc.conf file that
was required to define a linkman macro, which is now supported out of
the box.
Fixes #170
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Previously the behavior was inconsistent and not fully fulfilling its
purpose of only using --repo once when initially pushing a new and
unknown package to the official repositories.
Consolidate the behavior by only allowing to use --repo during the
initial packaging and disallow any subsequent usage. The expected user
experience is to subsequently use --testing or --staging to influence
the auto-detection of the build target. This avoids any kind of human
error which leads to releasing core packages to extra-testing by
accident.
Furthermore, allow the build subcommand to automatically fallback to
extra as the default stable repository target which greatly improves the
usability for AUR or local override builds.
Fixes #193
Fixes #191
Component: pkgctl build
Component: pkgctl release
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
This change introduces the new --install-to-host flag to pkgctl build,
which can be used with one of the modes 'all' or 'auto'. Depending on
the mode either all or just already installed packages are installed to
the host system.
BREAKING CHANGE: the --install flag is renamed to --install-to-chroot
to avoid confusion with the newly introduced flag.
Component: pkgctl build
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Enhanced and overhauled the documentation for the 'version' subcommand.
The improvements include comprehensive details on the subcommand's
behavior, usage, and a variety of scenarios it handles.
Added a central section within the pkgctl-version manpage that documents
the nvchecker configuration and rules.
Component: pkgctl version
Singled-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
It can be handy to have an exit code that allows better status
indication or chaining.
On exit, return one of the following codes:
- 0: Normal exit condition, all checked versions are up-to-date
- 1: Unknown cause of failure
- 2: Normal exit condition, but there are out-of-date versions
- 3: Failed to run some version checks
Component: pkgctl version check
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Sometimes it can be desired to get a results for each entry even if the
current version is up-to-date. Add a --verbose option to print this
optional detail.
Component: pkgctl version check
Component: pkgctl version upgrade
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
This adds support for global keyfile from the user config home
XDG_CONFIG_HOME which allows to set tokens for GitHub and GitLab for
certain nvchecker configuration.
When ~/.config/nvchecker/keyfile.toml exists, it will automatically be
appended as keyfile of the local .nvchecker.toml file.
Component: pkgctl version check
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
This subcommand applies the detected upstream version upgrades to a
PKGBUILD.
Component: pkgctl version upgrade
Co-authored-by: Levente Polyak <anthraxx@archlinux.org>
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
The version subcommand handles pkgver related commands, the first
subcommand being `check`. Check runs nvchecker if a `.nvchecker.toml`
file exists and compares the current pkgver with the latest release.
Introduces nvchecker as optional dependency which has to be installed in
order to use this particular subcommand.
BREAKING CHANGE: formerly pkgctl version would output the version of the
pkgctl tool, now it is used as a version related subcommand.
Fixes #140
Component: pkgctl version
Component: pkgctl version check
Co-authored-by: Christian Heusel <christian@heusel.eu>
|
|
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>
|
|
Search for an expression across the GitLab packaging group. To use a
filter, include it in your query. You may use wildcards (*) to use glob
matching. Available filters for the blobs scope: path, extension.
Every usage of the search command must be authenticated. Consult the
'pkgctl auth' command to authenticate with GitLab or view the
authentication status.
This command uses bats for pretty printing the results including line
numbers and syntax highlighting.
Component: pkgctl search
Co-authored-by: Christian Heusel <christian@heusel.eu>
Co-authored-by: Levente Polyak <anthraxx@archlinux.org>
|
|
The philosophy of our CLI is to provide options that better match human
expectations in an intuitive way rather than mimic wording of previous
tools with abbreviation.
Component: pkgctl build
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>
|
|
In certain situations, users may encounter limitations when unable to
utilize xdg-open (e.g., when connected to an Arch machine via SSH).
Consequently, this commit introduces the option to simply print the
repository link to copy or click on it.
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Add -n to allow running makepkg with --nocheck. This is useful to reduce
the time required to reproduce a package, as they should not depend on
running the check function for being reproducible.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Implement the -x option for makechrootpkg which allows to get an
interactive shell in the chroot after building the package. Useful to
ease the debugging of a package build.
Depending on the argument, the interactive shell is either always
spawned or only when an error occurred during build.
This option is also forwarded from `pkgctl build` via the `--inspect`
flag.
Component: pkgctl build
Component: makechrootpkg
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Turns out the manpages of pkgctl db update and pkgctl db move were just switched without having the page title adjusted.
Fixing the initial error therefore turned out to create the same problem for the manpage of pkgctl db update, which this commit re-fixes.
Fixes: 5e3ab4b321072b576ba0e5d8722c39f7a7768911 ("chore(docs): correct the manpage for pkgctl db move")
Fixes: f834fc4700053cb9a83956c98835b0a158cc054c ("db: command for Pacman database modification like update, move etc")
Fixes #195
Component: pkgctl db update
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
So far the manpage for pkgctl db move seemed to be a copy of the pkgctl db update manpage
which caused an error upon install as the move page was not created.
Instead compiling this manpage overwrote the one for pkgctl db update
which this commit fixes.
Fixes: f834fc4700053cb9a83956c98835b0a158cc054c ("db: command for Pacman database modification like update, move etc")
Fixes #195
Component: pkgctl db move
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
This is useful so people who update patches etc. can update their checksums on building.
The functionality itself was already implemented for --pkgver, but was not available separately.
Fixes #168
Component: pkgctl build
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
it seems like the mistake was copied to a few locations, this commit
fixes it.
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
This is a rather quick and simple implementation to override the current
logic and force clone with HTTPS. Allowing to explicitly clone over HTTPS
is currently required to unblock reproducible builds where no ssh keys
and GitLab user accounts are set up as of now. Hence this quick solution
comes into play to mitigate the regression on reproducible builds
builders.
Revisit the overall auto detection and protocol logic approach for a
later release related to some ideas floating around in pending
merge-requests.
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>
|
|
Allow overriding the worker slot with a dedicated option. Furthermore
detect if the current tty is no pts and fall back to choosing a random
worker slot between 1 and number of available processing units.
Fixes #137
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
|
|
Add an option to call the switch command after clone. Switch to a
specified version. The working tree and the index are updated to match
the version.
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
It leads to weird expectations when using --db-update or --message
without --release. Make the behavior more user friendly, by aborting the
operation and explaining that release options only work in conjunction
with the release option.
Fixes #131
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
Signed-off-by: Christian Heusel <christian@heusel.eu>
Co-Authored-By: Levente Polyak <anthraxx@archlinux.org>
|
|
Related to https://gitlab.archlinux.org/archlinux/devtools/-/issues/125
Closes #125
Signed-off-by: Christian Heusel <christian@heusel.eu>
Co-Authored-By: Levente Polyak <anthraxx@archlinux.org>
|
|
Output a warning when this option is used to remind packagers to rebuild
the packages with checks once the bootstrap cycle has been completed.
|
|
This would allow to supply the gitlab tokens via the env var
DEVTOOLS_GITLAB_TOKEN and therefore allow users to choose whatever
program they want to fill this env var.
Closes #113
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
The list of all maintainers that have worked so far on devtools is
exceeding a sane amount making each manpage convulsed. The authors can
be pulled from GitLab directly without occupying lots of space on every
manpage. We would like to express gratitude to all our maintainers.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
The remote protocol is automatically determined from the author email
address by choosing SSH for all official packager identities and
read-only HTTPS otherwise.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
|
|
We have used the datadir like a kitchen sink, lets clean up a bit by
having a better and well structured layout. Put makepkg and pacman
configs in separate directories: makepkg.conf.d and pacman.conf.d.
|
|
This is a smart and more convenient invocation of the classical
commitpkg and archrelease with auto-discovery for target repositories
and a shorthand option to directly call db-update.
|
|
|
|
|
|
This helps to have a convenient way to manage and test our personal
GitLab tokens. Those are used for certain API calls like creating new
repositories.
prefill the access token web view as per
https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#prefill-personal-access-token-name-and-scopes
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
This is the first step of a simple and highly structured unified
interface to devtools commands in a single wrapper.
The split is based on groups like `repo`, `build` and `diff`
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
We unified the source repositories to a single location. Having to cross
repo move them between physical locations is not required anymore.
|
|
Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
|