Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 30 additions & 18 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
# Documenting the process around making a new release
# Documenting the process of making a new release

## Ubuntu ppa builds
At some point I want to automate this, but for now it is a little manual

1. Make sure that the version in create-deb-dsc.sh matches the new version
2. Create a new entry in debian/changelog to bring the new version
3. Run `create-deb-dsc.sh`
4. Attempt to build the resulting `../*.dsc` with something like `sbuild -d noble pam-ssh-agent_0.9.6-1~noble.dsc`
5. upload with `dput ppa:nresare/ppa .dsc` when everything looks good

## RPM builds

1. Release a new version to crates.io
2. Update the version in the [srpm Makefile](https://github.com/nresare/rpm-packaging/blob/main/pam-ssh-agent/Makefile#L2)
3. Run `make srpm outdir=/tmp/out`, have it fail and use the downloaded artifact to update the crate.sha256 file
4. Build the RPM with `mock --addrepo=https://download.copr.fedorainfracloud.org/results/noa/rust/fedora-44-aarch64 /tmp/out/*.src.rpm`
5. If it builds okay, commit the changes to the rpm-pacakging repo, navigate to the previous build in the [COPR ui](https://copr.fedorainfracloud.org/coprs/noa/rust/builds/)
6. Click the "Resubmit" button and hope that it builds correctly
1. When there is time to cut a new release, create a commit with version updates in Cargo.toml, create-deb-dsc.sh,
and debian/changelog. Commit this to a new branch and push it. Anything that needs fixing in the steps below, please
create new commits via pull requests on main and then rebase the vesrion update branch on top of it and try again.
2. Log onto a Fedora box (nypon.noa.re)
1. Check out the version update branch
2. Build a .crate with `cargo package`
3. Copy the .crate to rpm-packaging/pam-ssh-agent
4. Run `rust2rpm --path _new_crate_` to generate the new spec
5. Build the .src.rpm with `rpmbuild -bs rust-pam-ssh-agent.spec --define "_sourcedir ." --define "_srcrpmdir ."`
6. Verify that the .src.rpm can be built with `mock --addrepo=https://download.copr.fedorainfracloud.org/results/noa/rust/fedora-44-aarch64 ./rust-pam-ssh-agent-0.9.7-1.fc44.src.rpm`
3. Log onto an Ubuntu box (hjortron.noa.re)
1. Check out the version update branch
2. Generate source packages with ./create-deb-dsc.sh
3. Verify that the debian/control vendor line is correct by running `CARGO_VENDOR_DIR=vendor /usr/share/cargo/bin/dh-cargo-vendored-sources`
4. Update debian/control if needed and re-run
3. Test building the output with `sbuild -d noble ../*.dsc`
4. Merge the version update branch to main
5. Tag the version
6. `cargo publish`
7. In the rpm-pacakging repo
1. Update release version in Makefile
2. Update he shasum in crates.sha256
3. Verify that `make srpm outdir=/tmp/out` works
4. navigate to the previous build in the [COPR ui](https://copr.fedorainfracloud.org/coprs/noa/rust/builds/)
7. Click the "Resubmit" button on the previous build
8. On the ubuntu box
1. Verify that the tagged commit is checked out
2. Regeneate signed sources
3. Upload with `dput ppa:nresare/ppa .dsc`

2 changes: 1 addition & 1 deletion create-deb-dsc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ cargo vendor-filterer --platform "*-unknown-linux-gnu"
tar cfJ ../pam-ssh-agent_${VERSION}.orig-vendor.tar.xz vendor

tar cfJ ../pam-ssh-agent_${VERSION}.orig.tar.xz src examples tests \
.github LICENSE* README* create-deb-dsc.sh rust-toolchain.toml Cargo*
.github LICENSE* *.md create-deb-dsc.sh rust-toolchain.toml Cargo*

debuild -S -sa
2 changes: 1 addition & 1 deletion debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Build-Depends: debhelper-compat (=13),
Standards-Version: 4.6.0
Homepage: https://github.com/nresare/pam-ssh-agent
Rules-Requires-Root: no
XS-Vendored-Sources-Rust: aho-corasick@1.1.4, anstream@1.0.0, anstyle-parse@1.0.0, anstyle-query@1.1.5, anstyle-wincon@3.0.11, anstyle@1.0.14, anyhow@1.0.102, autocfg@1.5.1, base16ct@0.2.0, base64@0.22.1, base64ct@1.8.3, bitflags@2.13.0, block-buffer@0.10.4, bytes@1.11.1, cc@1.2.63, cfg-if@1.0.4, cipher@0.4.4, colorchoice@1.0.5, const-oid@0.9.6, cpufeatures@0.2.17, crypto-bigint@0.5.5, crypto-common@0.1.6, curve25519-dalek-derive@0.1.1, curve25519-dalek@4.1.3, der@0.7.10, deranged@0.5.8, digest@0.10.7, doctest-file@1.1.1, ecdsa@0.16.9, ed25519-dalek@2.2.0, ed25519@2.2.3, elliptic-curve@0.13.8, env_filter@1.0.1, env_logger@0.11.10, error-chain@0.12.4, ff@0.13.1, fiat-crypto@0.2.9, find-msvc-tools@0.1.9, foreign-types-shared@0.1.1, foreign-types@0.3.2, generic-array@0.14.9, getrandom@0.2.17, getrandom@0.3.4, group@0.13.0, hkdf@0.12.4, hmac@0.12.1, hostname@0.3.1, inout@0.1.4, interprocess@2.4.2, is_terminal_polyfill@1.70.2, itoa@1.0.18, jiff-static@0.2.28, jiff@0.2.28, lazy_static@1.5.0, libc@0.2.186, libm@0.2.16, log@0.4.32, match_cfg@0.1.0, memchr@2.8.1, num-bigint-dig@0.8.6, num-conv@0.2.2, num-integer@0.1.46, num-iter@0.1.45, num-traits@0.2.19, num_threads@0.1.7, once_cell_polyfill@1.70.2, openssl-macros@0.1.1, openssl-sys@0.9.116, openssl@0.10.80, p256@0.13.2, p384@0.13.1, p521@0.13.3, pam-bindings@0.1.2, pem-rfc7468@0.7.0, pkcs1@0.7.5, pkcs8@0.10.2, pkg-config@0.3.33, portable-atomic-util@0.2.7, portable-atomic@1.13.1, powerfmt@0.2.0, ppv-lite86@0.2.21, primeorder@0.13.6, proc-macro2@1.0.106, quote@1.0.45, r-efi@5.3.0, rand@0.8.6, rand_chacha@0.3.1, rand_core@0.6.4, recvmsg@1.0.0, regex-automata@0.4.14, regex-syntax@0.8.10, regex@1.12.3, rfc6979@0.4.0, rsa@0.9.10, rustc_version@0.4.1, sec1@0.7.3, semver@1.0.28, serde_core@1.0.228, serde_derive@1.0.228, sha2@0.10.9, shlex@2.0.1, signature@2.2.0, smallvec@1.15.1, spin@0.9.8, spki@0.7.3, ssh-agent-client-rs@1.1.3, ssh-cipher@0.2.0, ssh-encoding@0.2.0, ssh-key@0.6.7, subtle@2.6.1, syn@2.0.117, syslog@6.1.1, thiserror-impl@2.0.18, thiserror@2.0.18, time-core@0.1.8, time-macros@0.2.27, time@0.3.47, typenum@1.20.1, unicode-ident@1.0.24, utf8parse@0.2.2, uzers@0.12.2, vcpkg@0.2.15, version_check@0.9.5, wait-timeout@0.2.1, wasi@0.11.1+wasi-snapshot-preview1, wasip2@1.0.3+wasi-0.2.9, widestring@1.2.1, winapi-i686-pc-windows-gnu@0.4.0, winapi-x86_64-pc-windows-gnu@0.4.0, winapi@0.3.9, windows-link@0.2.1, windows-sys@0.61.2, wit-bindgen@0.57.1, zerocopy-derive@0.8.50, zerocopy@0.8.50, zeroize@1.8.2
XS-Vendored-Sources-Rust: aho-corasick@1.1.4, anstream@1.0.0, anstyle-parse@1.0.0, anstyle-query@1.1.5, anstyle-wincon@3.0.11, anstyle@1.0.14, anyhow@1.0.102, autocfg@1.5.1, base16ct@0.2.0, base64@0.22.1, base64ct@1.8.3, bitflags@2.13.0, block-buffer@0.10.4, bytes@1.11.1, cc@1.2.63, cfg-if@1.0.4, cipher@0.4.4, colorchoice@1.0.5, const-oid@0.9.6, cpufeatures@0.2.17, crypto-bigint@0.5.5, crypto-common@0.1.6, curve25519-dalek-derive@0.1.1, curve25519-dalek@4.1.3, der@0.7.10, deranged@0.5.8, digest@0.10.7, doctest-file@1.1.1, ecdsa@0.16.9, ed25519-dalek@2.2.0, ed25519@2.2.3, elliptic-curve@0.13.8, env_filter@1.0.1, env_logger@0.11.10, equivalent@1.0.2, error-chain@0.12.4, ff@0.13.1, fiat-crypto@0.2.9, find-msvc-tools@0.1.9, foldhash@0.1.5, foreign-types-shared@0.1.1, foreign-types@0.3.2, generic-array@0.14.9, getrandom@0.2.17, getrandom@0.4.2, group@0.13.0, hashbrown@0.15.5, hashbrown@0.17.1, heck@0.5.0, hkdf@0.12.4, hmac@0.12.1, hostname@0.3.1, hostname@0.4.2, id-arena@2.3.0, indexmap@2.14.0, inout@0.1.4, interprocess@2.4.2, is_terminal_polyfill@1.70.2, itoa@1.0.18, jiff-static@0.2.28, jiff@0.2.28, lazy_static@1.5.0, leb128fmt@0.1.0, libc@0.2.186, libm@0.2.16, log@0.4.32, match_cfg@0.1.0, memchr@2.8.1, num-bigint-dig@0.8.6, num-conv@0.2.2, num-integer@0.1.46, num-iter@0.1.45, num-traits@0.2.19, num_threads@0.1.7, once_cell_polyfill@1.70.2, openssl-macros@0.1.1, openssl-sys@0.9.116, openssl@0.10.80, p256@0.13.2, p384@0.13.1, p521@0.13.3, pam-bindings@0.3.0, pem-rfc7468@0.7.0, pkcs1@0.7.5, pkcs8@0.10.2, pkg-config@0.3.33, portable-atomic-util@0.2.7, portable-atomic@1.13.1, powerfmt@0.2.0, ppv-lite86@0.2.21, prettyplease@0.2.37, primeorder@0.13.6, proc-macro2@1.0.106, quote@1.0.45, r-efi@6.0.0, rand@0.8.6, rand_chacha@0.3.1, rand_core@0.6.4, recvmsg@1.0.0, regex-automata@0.4.14, regex-syntax@0.8.10, regex@1.12.3, rfc6979@0.4.0, rsa@0.9.10, rustc_version@0.4.1, sec1@0.7.3, semver@1.0.28, serde@1.0.228, serde_core@1.0.228, serde_derive@1.0.228, serde_json@1.0.150, sha2@0.10.9, shlex@2.0.1, signature@2.2.0, smallvec@1.15.1, spin@0.9.8, spki@0.7.3, ssh-agent-client-rs@1.1.3, ssh-cipher@0.2.0, ssh-encoding@0.2.0, ssh-key@0.6.7, subtle@2.6.1, syn@2.0.117, syslog@6.1.1, thiserror-impl@2.0.18, thiserror@2.0.18, time-core@0.1.8, time-macros@0.2.27, time@0.3.47, typenum@1.20.1, unicode-ident@1.0.24, unicode-xid@0.2.6, utf8parse@0.2.2, uzers@0.12.2, vcpkg@0.2.15, version_check@0.9.5, wait-timeout@0.2.1, wasi@0.11.1+wasi-snapshot-preview1, wasip2@1.0.3+wasi-0.2.9, wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06, wasm-encoder@0.244.0, wasm-metadata@0.244.0, wasmparser@0.244.0, widestring@1.2.1, winapi-i686-pc-windows-gnu@0.4.0, winapi-x86_64-pc-windows-gnu@0.4.0, winapi@0.3.9, windows-link@0.2.1, windows-sys@0.61.2, wit-bindgen-core@0.51.0, wit-bindgen-rust-macro@0.51.0, wit-bindgen-rust@0.51.0, wit-bindgen@0.51.0, wit-bindgen@0.57.1, wit-component@0.244.0, wit-parser@0.244.0, zerocopy-derive@0.8.50, zerocopy@0.8.50, zeroize@1.8.2, zmij@1.0.21


Package: pam-ssh-agent
Expand Down
Loading