Bump an AUR package to a new version with automatic checksum updates and git push to AUR.
Target version: $ARGUMENTS
Workflow
Determine the new version:
- If version argument provided, use it
- Otherwise, automatically detect latest version from package source
- Confirm auto-detected version with user before proceeding
Update PKGBUILD:
- Set
pkgverto new version (without 'v' prefix) - Run
updpkgsumsto regenerate checksums
- Set
Update metadata:
makepkg --printsrcinfo > .SRCINFOCommit and push:
git add . git commit -m "chore: bump to <version>" git push
Version Detection by Source Type
NPM Packages
npm view <package-name> version
For scoped packages:
npm view @scope/package version
GitHub Releases (for -bin packages)
curl -s "https://api.github.com/repos/user/repo/releases/latest" | \
grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/'
Go Modules
curl -s "https://proxy.golang.org/module/@v/list" | tail -1
Crates.io (Rust)
curl -s "https://crates.io/api/v1/crates/<crate-name>" | jq -r '.crate.newest_version'
PyPI (Python)
curl -s "https://pypi.org/pypi/<package-name>/json" | jq -r '.info.version'
Git Repositories (-git packages)
For -git packages, the version is dynamically generated by pkgver() function. No manual bumping needed - rebuild the package to get the latest commit.
Parsing PKGBUILD for Source Type
To determine how to detect version, read the PKGBUILD and check:
- NPM: Source contains
registry.npmjs.org - GitHub Releases: Source contains
github.comand-binin pkgname - Go: Source contains proxy.golang.org or go.mod present
- Crates.io: Source contains
crates.io - PyPI: Source contains
pypi.orgorfiles.pythonhosted.org - Git (-git): pkgname ends with
-git
Version Format
Always use version number without the 'v' prefix:
- ✅
48.2.7 - ❌
v48.2.7
If upstream uses 'v' prefix in tags, strip it when setting pkgver.
Useful Commands
| Command | Purpose |
|---|---|
updpkgsums |
Update sha256sums from source files |
makepkg --printsrcinfo > .SRCINFO |
Regenerate .SRCINFO metadata |
namcap PKGBUILD |
Verify PKGBUILD after changes |
Error Handling
- Version not found: Inform user and ask for manual version input
- Checksum update fails: Verify source URL is correct and accessible
- Git push fails: Check AUR SSH credentials and remote configuration