271954a41c
This adds support for a new `rpm-ostree compose extensions` command` which takes a treefile, a new extensions YAML file, and an OSTree repo and ref. It performs a depsolve and downloads the extensions to a provided output directory. This is intended to replace cosa's `download-extensions`: https://github.com/coreos/coreos-assembler/blob/master/src/download-extensions The input YAML schema matches the one accepted by that script. Some differences from the script: - We have a guaranteed depsolve match and thus can avoid silly issues we've hit in RHCOS (like downloading the wrong `libprotobuf` for `usbguard` -- rhbz#1889694). - We seamlessly re-use the same repos defined in the treefile, whereas the cosa script uses `reposdir=$dir` which doesn't have the same semantics (repo enablement is in that case purely based on the `enabled` flag in those repos, which may be different than what the rpm-ostree compose ran with). - We perform more sanity-checks against the requested extensions, such as whether the extension is already in the base. - We support no-change detection via a state SHA512 file for better integration in cosa and pipelines. - We support a `match-base-evr` key, which forces the extension to have the same EVR as the one from a base package: this is helpful in the case of extensions which complement a base package, esp. those which may not have strong enough reldeps to enforce matching EVRs by depsolve alone (`kernel-headers` is an example of this). - We don't try to organize the RPMs into separate directories by extension because IMO it's not at the right level. Instead, we should work towards higher-level metadata to represent extensions (see https://github.com/openshift/os/issues/409 which is related to this). Closes: #2055
22 lines
1020 B
Markdown
22 lines
1020 B
Markdown
---
|
|
nav_order: 8
|
|
---
|
|
|
|
# Releasing rpm-ostree
|
|
|
|
1. Increment the `year_version` and `release_version` macros in `configure.ac`.
|
|
2. Increment the `Version` field in `rpm-ostree.spec.in`.
|
|
3. Submit as a PR and wait until reviewed *and* CI is green.
|
|
5. Once merged, do `git pull $upstream && git reset --hard $upstream/master` on
|
|
your local `master` branch to make sure you're on the right commit.
|
|
6. Draft release notes by seeding a HackMD.io with `git shortlog $last_tag..`
|
|
and ideally collaborating with others. Filter out the commits from
|
|
`dependabot`. See previous releases for format.
|
|
7. Use [`git-evtag`](https://github.com/cgwalters/git-evtag) to create a signed
|
|
tag with the release notes as its content. Make the first line be the name of
|
|
the tag itself.
|
|
8. Push the tag using `git push $upstream v202X.XX`.
|
|
9. Create the xz tarball using `make -C packaging -f Makefile.dist-packaging dist-snapshot`.
|
|
10. Create a GitHub release for the new release tag using its contents and
|
|
attach the tarball.
|