summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-05-28chore(release): version v1.0.2v1.0.2Levente Polyak
2023-05-28chore(release): adjust Makefile for new release schemaLevente Polyak
Ask for the next release version and automatically create a signed tag. Furthermore add a simple release target to call glab for uploading the required artifacts.
2023-05-27chore(build): improve error wording if no package repo could be detectedAntonio Rojas
Not being in any official repo does not necessarily mean this is a new package. One could simply be building an AUR or custom local package. Make the message less confusing in such case.
2023-05-27chore(doc): remove duplicate subcommand from example help textDaniel M. Capella
2023-05-27fix(commitpkg): only force existing files to be under version controlLevente Polyak
Before porting commitpkg to Git, the code has checked the SVN status for none commited files. During the port this has changed by straight checking for any passed files if they were under version control or not. In general the whole logic is very brittle as variables are searched by regex and directly passed to eval while ignoring any function scoping. This leads to missing files when they reference the $pkgname inside a package function but also provide wrong ones when eval simply returns the first $pkgname while ignoring and function scopes. In the future this should completely be replaces by .SRCINFO processing. Fixes #145 Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-26fix(archroot): preserve original args for check_root before discardingToolybird
arch-nspawn, mkarchroot, makerepropkg all call "shift" after getopts processing. Save the original args and pass on to check_root to prevent options being discarded. Fixes 41d4624879d01b1269d6af9c1440592a15ad7784 Fixes #149 Signed-off-by: Toolybird <toolybird@tuta.io> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-24chore(release): version v1.0.1v1.0.1Levente Polyak
2023-05-24fix(completion): incorporate repo layout into offload-build completionChih-Hsuan Yen
Use new repo names for build targets. This follows /usr/bin/*-build links other than x86_64_v3 ones.
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-23feature(commitpkg): auto generate .SRCINFO if presentMorten Linderud
This currently makes .SRCINFO files opt-in and helps to keep the file up to date if already present. Signed-off-by: Morten Linderud <foxboron@archlinux.org>
2023-05-23fix(diffpkg): Fix scoping of DIFFOPTIONS when comparing split pkgsJan Alexander Steffens (heftig)
`diff_pkgs` needs to use a local variable for its options, otherwise they will accumulate for each package diffed. Whem comparing split packages this lead to earlier mutated DIFFOPTIONS containing too many labels which resulted in a failure.
2023-05-23fix(commitpkg): reliably check tree status regardless of configurationJan Alexander Steffens (heftig)
Check git status --porcelain, not --short. `--short` is influenced by user configuration like `status.branch` making it non-empty even on a clean tree. Use `--porcelain` to avoid this.
2023-05-21Version 1.0.01.0.0Levente Polyak
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-20chore(archroot): force build chroot recreation to adapt new configsLevente Polyak
Bumping the chroot version will result in the chroots checking against the local version and force recreation in case they do not match. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20chore(git): use default ssh port 22 url schemeLevente Polyak
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>
2023-05-20fix(archroot): pass along the real command and argv by the caller1.0.0rc1Levente Polyak
Before modularizing the repo layout, we used m4_include to assemble together sources into a single file. Now, we properly use a library layout without assembling multiple files, which means we cannot anymore rely on BASH_SOURCE inside the library file. Hence, pass along the actual command and argv from the check_root caller. Fixes: src: modularize repo layout into a library Signed-off-by: Morten Linderud <foxboron@archlinux.org> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20config: update pacman configs for new repository layoutFelix Yan
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-20doc: Fixup formatting issues in asciidoc man pagesCaleb Maclennan
2023-05-20archrelease: fix mangled release package status outputAlexander Epaneshnikov
Git push will print its status, hence switch from a busy line indicator to a single line message and allow Git to print its status accordingly. Otherwise we get: ==> Releasing package...Enumerating objects: 6, done.
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-20build: allow release options only in combination with --releaseChristian Heusel
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>
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-20config: fixup file permissions to be more strictLevente Polyak
Normally the default in Arch is that all home directories are private. However, this may have been changed locally. To make sure we never expose secrets, lets use a umask of 0077 when writing the config. Additionally add some temporary fixup code to migrate the file and directory permissions of already existing paths. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
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-20doc: add dependency declaration to the README.mdLevente Polyak
This will help to make sure dependencies are explicitly stated and reflected in the PKGBUILD.
2023-05-20config: allow suppying the gitlab token via env varChristian Heusel
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>
2023-05-20edit: improve editor presence checkingCampbell Jones
Adds a check for the configured Git editor (git config core.editor) in both commitpkg and build.sh. Additionally, instead of blindly executing vi when all other options are exhausted, remove it instead as it is a none standard installed editor anyway. Closes #106 Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
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-20doc: update manpage footer for GitLab and remove static list of maintainersLevente Polyak
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>
2023-05-20gitlab: add project path function to map special charsLevente Polyak
Automatic path conversion is limited to GitLab API v4 and will be removed in the future. It's expected that the caller does the path conversion on caller side and only passes a valid path to the API within its limitations. Hence convert project names to valid paths: 1. replace single '+' between word boundaries with '-' 2. replace any other '+' with literal 'plus' 3. replace any special chars other than '_', '-' and '.' with '-' 4. replace consecutive '_-' chars with a single '-' 5. replace 'tree' with 'unix-tree' due to GitLab reserved keyword Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
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-20commitpkg: error out if the repo is not configured to latest specsLevente Polyak
This ensures the repository we try to commit and release from uses the latest distro specs for its local git config. The check errors out early before touching anything and prints a recommendation how to update the repo. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20commitpkg: print deprecation warning when executed directlyLevente Polyak
2023-05-20archrelease: print deprecation warning when executed directlyLevente Polyak
2023-05-20test: added pkgctl devel wrapper for convenient development testingLevente Polyak
For local development testing, there is a convenience wrapper for `pkgctl` that will automatically build the project using make and proxy all calls to the local build directory. Either `./test/bin/pkgctl` can be run directly or the `test/bin` directory can be added to the PATH. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20archrelease: add checks for valid remote and up-to-date branch refLevente Polyak
It's safest to probe for the validity of the remote origin and abort early otherwise. This also allows to print some hints how to create or configure new repositories at appropriate times. Additionally fetch remote changes and check the local branch contains the remote branch ref, otherwise abort and print a hint how to pull and update the branch. This should add all check needed for the average failure case that may lead to a weird state or creation of a local tag that may not be pushable. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20build: replace m4 defines with sed scripts during buildLevente Polyak
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>
2023-05-20conf: move makepkg and pacman config into separate conf.d dirsLevente Polyak
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.
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-19git: convert repos and tags config to new repo layoutLevente Polyak
2023-05-19db: command for Pacman database modification like update, move etcLevente Polyak
2023-05-19commitpkg: add exported pgp keys with gitLevente 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>