summaryrefslogtreecommitdiff
path: root/contrib
AgeCommit message (Collapse)Author
2024-03-23feat(version): add command to automatically detect and setup nvcheckerJelle van der Waa
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>
2024-02-29fix(completion): allow multi opts more than once in zshLevente Polyak
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-02-08feat(build): consolidate repo flags in build and release subcommandLevente Polyak
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>
2024-02-06feat(build): allow to test-install the built packagesChristian Heusel
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>
2024-01-22doc(version): extensively revamp documentation for version subcommandsLevente Polyak
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>
2024-01-22feat(version): add verbose option to display up-to-date versionsLevente Polyak
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>
2024-01-21feat(upgrade): introduce the version upgrade subcommandChristian Heusel
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>
2024-01-10feat(version): introduce version check subcommandJelle van der Waa
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>
2024-01-09feat(aur): add subcommand to drop a package from the repos to the AURChristian Heusel
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>
2024-01-07fix(completion): support subcommands that have multiple dashesLevente Polyak
Dashes are not supported in function names and underscores were not automatically translated. Replace all dashes of the current completion token, if it is an arg which allows subcommands to use underscores instead of dashes to declare their completion handlers. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-07feat(search): add optional plain output formattingLevente Polyak
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>
2024-01-07feat(search): add subcommand to search across the packaging groupJelle van der Waa
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>
2024-01-05chore(build): use more intuitive update-checksums option for humansLevente Polyak
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>
2023-11-26feat(web): implement option to print the URL instead of opening itChristian Heusel
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>
2023-11-26feat(makerepropkg): Add option to skip running check for speedupkpcyrd
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>
2023-11-26feat(makechrootpkg): add option to interactively inspect the chrootLevente Polyak
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>
2023-11-20feat(build): add --updpkgsums optionChristian Heusel
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>
2023-10-02chore: refactor variable names in valid-{tags,repos}.shChristian Heusel
Even though the variables in these files are globablly used they have a weirdly local sounding name. This commit fixes this by refactoring all usages throughout our codebase. Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-07-06chore: fix spelling mistake packge -> packageChristian Heusel
it seems like the mistake was copied to a few locations, this commit fixes it. Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-05-24feature(clone): add protocol option to force cloning over HTTPSLevente Polyak
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>
2023-05-20feature(parallel): run up to N jobs in parallel for repo clone/configureLevente Polyak
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>
2023-05-20pkgctl build: support worker slots for none tty buildsLevente Polyak
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>
2023-05-20pkgctl repo clone: add option to switch working treeChristian Heusel
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>
2023-05-20pkgctl repo: introduce the switch subcommandChristian Heusel
Signed-off-by: Christian Heusel <christian@heusel.eu> Co-Authored-By: Levente Polyak <anthraxx@archlinux.org>
2023-05-20completion: implemented structured declarative bash completionsLevente Polyak
This will make it tremendously easier to add arguments, subcommands and special positional option handling. Instead of the need to code the nested structure via bash and switch cases, we can simply declare functions and arrays with the matching names according to the subcommands or argument labels. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20pkgctl: introduce the version subcommandChristian Heusel
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>
2023-05-20completion: zsh: allow args even when the command has subcommandsLevente Polyak
This allows to show arguments on root level of commands that themselves have subcommands available. Complete those when any - is used in the completion word.
2023-05-20build: support nocheck for initial bootstrap buildsLevente Polyak
Output a warning when this option is used to remind packagers to rebuild the packages with checks once the bootstrap cycle has been completed.
2023-05-20rebuildpkgs: drop legacy script, will be replaced with a smarter UXLevente Polyak
Instead of trying to port this ancient script, which doesn't even seem to work with community, let's instead remove it. We will be adding a replacement script in pkgctl soon with a smarter and more convenient UX.
2023-05-20repo-configure: automatically determine protocol from packager identityLevente Polyak
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>
2023-05-20build: command to build packages inside a clean chrootLevente Polyak
2023-05-19release: command to commit, tag and upload build artifactsLevente Polyak
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.
2023-05-19db: command for Pacman database modification like update, move etcLevente Polyak
2023-05-19repo: added command to create a new packaging repositoryLevente Polyak
2023-05-19auth: implemented module to authenticate against our GitLabLevente Polyak
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>
2023-05-19src: modularize repo layout into a libraryLevente Polyak
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.
2023-05-19pkgctl: add a unified command-line frontend for devtoolsLevente Polyak
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>
2023-05-19pkgrepo: add subcommand to open the packaging repository's websiteLevente Polyak
This can be quite handy if a packager quickly wants to check the GitLab page for merge requests or but reports. Quickly calling a cli command inside the current packaging clone or with the pkgname provided will open the remote location inside the browser. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19pkgrepo: add option to clone all existing packagesLevente Polyak
This can be very handy for cache warming on the repo server or to perform mass operations on all PKGBUILDs. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19pkgrepo: rename archco as a general purpose tool for packaging reposLevente Polyak
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19archco: add option to clone all packages of a maintainerLevente Polyak
Query Archweb to retrieve a list of all packages of a maintainer by their pkgbase. AFterwards loop through all packages and clone them. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19archco: implement clone and configure subcommandsLevente Polyak
Manages Git packaging repositories and helps with their configuration according to distro specs. Git author information and the used signing key is set up from makepkg.conf read from any valid location like /etc or XDG_CONFIG_HOME. The configure command can be used to synchronize the distro specs and makepkg.conf settings for previously cloned repositories. The unprivileged option can be used for cloning packaging repositories without SSH access using read-only HTTPS. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-03-19crossrepomove: drop support as this is not needed anymoreLevente Polyak
We unified the source repositories to a single location. Having to cross repo move them between physical locations is not required anymore.
2022-08-31diffpkg: prefer to search inside the pool dir if availableLevente Polyak
On certain packaging machines where the pacman cache gets updated very infrequently, the behavior of diffpkg may not function correctly as old packages were to be downloaded as diff target. In such cases we look for a pool directory first and search via a glob for an available pool package sorted by version. The pool search glob has three glob segments each disallowing the dash delimiter to split across pkgrel, pkgver and arch. This will return the correct package from the pool without considering overly eager wildcards that potentially match different pkgnames. The default pool search directory is /srv/ftp/pool
2022-08-31diffpkg: allow to set column width for side-by-side viewLevente Polyak
The magic values `columns` and `auto` allow to set specific aspects, with 'auto' as the default value: - auto: Set width to the maximum line length of all input files - columns: Set width to the shell defined $COLUMNS env var Furthermore any number can be passed to set a static width.
2022-08-23diffpkg: add colored output option with default of autoLevente Polyak
2022-08-23diffpkg: allow to choose between unified context and two columnsLevente Polyak
2022-06-22cleanup: move PKGBUILD.proto to contrib folderLevente Polyak
2022-06-22make: split out completion scripts from root worktreeLevente Polyak