docs: refresh command list, workflow example, roadmap and install

The command block is now the actual pkh --help output (new, lint and
prune were missing). The example workflow used pkh commit, a
subcommand that does not exist; commits go through git until
chlog/pkh commit land. The roadmap now reflects what is implemented
(pull -v, deb --mode local, lint, prune, new) and an installation
section documents the source build and its system dependencies.
This commit is contained in:
2026-09-21 01:36:39 +02:00
parent fa121f08ec
commit 4edf331444
+35 -7
View File
@@ -2,6 +2,22 @@
`pkh` is a packaging helper for Debian/Ubuntu packages. `pkh` is a packaging helper for Debian/Ubuntu packages.
## Installation
No distribution channel is published yet; build from source:
```
sudo apt install pkg-config libssl-dev libgpg-error-dev libgpgme-dev
git clone https://git.vhaudiquet.fr/vhaudiquet/pkh.git
cd pkh
cargo install --path .
```
At runtime pkh shells out to the Debian packaging toolchain (git,
dpkg-dev, quilt, mmdebstrap, lintian, pristine-tar, ...): install the
ones your workflows use, or build the classic snap from
`snap/snapcraft.yaml` (`snapcraft pack`), which carries them.
## Usage and features ## Usage and features
### Basic concepts ### Basic concepts
@@ -25,12 +41,19 @@ Options:
Commands and workflows include: Commands and workflows include:
``` ```
Commands: Commands:
new Scaffold a new Debian source package (buildable right away)
pull Pull a source package from the archive or git pull Pull a source package from the archive or git
chlog Auto-generate changelog entry, editing it, committing it afterwards chlog Auto-generate changelog entry, editing it, committing it afterwards
build Build the source package (into a .dsc) build Build the source package (into a .dsc)
deb Build the source package into binary package (.deb)
put Upload the built source package to a PPA put Upload the built source package to a PPA
deb Build the source package into binary package (.deb)
lint Lint the package (lintian wrapper + pkh-native checks)
prune Prune residual pkh build artifacts and caches
help Print this message or the help of the given subcommand(s) help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
``` ```
### Examples ### Examples
@@ -66,14 +89,15 @@ That is a lot of different tools and operations. With pkh, the same workflow:
pkh pull hello # needs -d ubuntu if you are not running Ubuntu pkh pull hello # needs -d ubuntu if you are not running Ubuntu
# Apply the patch to the package # Apply the patch to the package
... ...
pkh commit -m "Applied patch xxx" git add debian/patches/xxx.patch
git commit -m "Applied patch xxx"
pkh chlog pkh chlog
# Test that the package builds # Test that the package builds
pkh build pkh build
pkh deb pkh deb
# Upload the package to a ppa # Upload the package to a ppa
pkh put --ppa user/hello_xxx pkh put --ppa user/hello_xxx
# Push previously commited changes # Push the commits to your fork
git push xxx user-fork git push xxx user-fork
``` ```
@@ -85,20 +109,22 @@ Missing features:
- [x] Obtain package sources from git - [x] Obtain package sources from git
- [x] Obtain package sources from the archive (fallback) - [x] Obtain package sources from the archive (fallback)
- [x] Obtain package source from PPA (--ppa) - [x] Obtain package source from PPA (--ppa)
- [ ] Obtain a specific version of the package - [x] Obtain a specific version of the package
- [x] Fetch the correct git branch for series on Ubuntu - [x] Fetch the correct git branch for series on Ubuntu
- [ ] Try to fetch the correct git branch for series on Debian, or fallback to the archive - [ ] Try to fetch the correct git branch for series on Debian, or fallback to the archive
- [ ] `pkh chlog` - [ ] `pkh chlog`
- [x] Auto-generate changelog entry - [x] Auto-generate changelog entry
- [x] Extra flags: backport, non-maintainer upload, no change rebuild, ... - [x] Extra flags: backport, non-maintainer upload, no change rebuild, ...
- [ ] Commit changelog entry - [ ] Commit changelog entry
- [x] `pkh new`
- [x] Scaffold a new Debian source package (interactive, multiple languages)
- [ ] `pkh build` - [ ] `pkh build`
- [x] Build the source package - [x] Build the source package
- [ ] `pkh deb` - [ ] `pkh deb`
- [x] Build the binary package - [x] Build the binary package
- [x] Build for a specific architecture - [x] Build for a specific architecture
- [ ] Three build modes: - [ ] Three build modes:
- [ ] Build locally (discouraged) - [x] Build locally (discouraged)
- [x] Build using unshare chroot, with binary emulation (default) - [x] Build using unshare chroot, with binary emulation (default)
- [x] Cross-compilation - [x] Cross-compilation
- [ ] Async build - [ ] Async build
@@ -109,8 +135,10 @@ Missing features:
- [ ] Upload the source package to the archive - [ ] Upload the source package to the archive
- [ ] `pkh commit` - [ ] `pkh commit`
- [ ] Commit the changes to git - [ ] Commit the changes to git
- [ ] `pkh lint` - [x] `pkh lint`
- [ ] Lint the package - [x] Lint the package
- [x] `pkh prune`
- [x] Prune residual pkh build artifacts and caches
- [ ] `pkh test` - [ ] `pkh test`
- [ ] Run autopkgtest - [ ] Run autopkgtest
- [ ] Provide options: local (discouraged), chroot, VM?, ppa - [ ] Provide options: local (discouraged), chroot, VM?, ppa