Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: standardize versioning across OSTree and os-release #1442

Merged
merged 1 commit into from
Aug 2, 2024

Conversation

antheas
Copy link
Contributor

@antheas antheas commented Jul 31, 2024

Chain PR with #1439

This PR swaps the tag generator with 2 parts, one that generates a primary tag that propagates throughout the containerfile, and one that generates a bunch of tags that are pushed to GHCR.

Primary Tag

The first part generates a unique tag and pretty version for the image that gets propagated to the Containerfile.

Examples (pretty, tag):
- Stable (v3.6, F40.240603) and stable-v3.6-40.240603
- Testing (v3.6, F40.240603) and testing-v3.6-40.240603
- Unstable (#asfcd32, F40.240603) and unstable-asfcd32
- PR (13435, F40) and pr-40-13435

In this case, the upstream kinoite tag is used, indicating the package versions that make up the OS. This disambiguates bazzite tags and kinoite tags, as they use the same primary tag.

Currently, a timestamp tag generated on the moment is used, which is confusing to users.

Where applicable (meaning not unstable/PRs), it also contains the Bazzite version, which can be clearly communicated to users and used for marketing purposes.

The pretty release is then placed in os-release, under BOOTLOADER_NAME, which we can make OSTree use for grub.

After building the image, this tag is fed through rechunk, which checks GHCR for the same tag and if it exists appends .1, .2, .3, etc. Then, rechunk attaches this to the container label, which is shown on rpm-ostree status. Unfortunately, the suffix will be absent from os-release and grub, since the image is already built.

Secondary tags

Along with the unique version produced by rechunk, the secondary part of this action attaches a variety of tags to the uploaded image, including Bazzite version, Kinoite version, and Fedora version. The images are then tagged with podman and uploaded to GHCR with the existing action.

Important

#1439 needs to be merged first and the version structure needs a bit of polish.

@antheas antheas force-pushed the improve-versioning branch 3 times, most recently from b6b7bb5 to 0d1d693 Compare July 31, 2024 14:51
@antheas antheas changed the base branch from main to unstable July 31, 2024 14:52
@antheas antheas marked this pull request as ready for review July 31, 2024 14:53
@antheas antheas requested a review from HikariKnight as a code owner July 31, 2024 14:53
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. enhancement New feature or request labels Jul 31, 2024
@antheas antheas force-pushed the improve-versioning branch 2 times, most recently from b1c29ae to 4781527 Compare July 31, 2024 15:26
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Jul 31, 2024
@antheas antheas force-pushed the improve-versioning branch 2 times, most recently from 7652b5e to c173442 Compare August 1, 2024 17:07
@antheas antheas force-pushed the improve-versioning branch from c173442 to d79500f Compare August 1, 2024 20:00
@KyleGospo KyleGospo enabled auto-merge August 2, 2024 04:49
@KyleGospo KyleGospo added this pull request to the merge queue Aug 2, 2024
Merged via the queue into ublue-os:unstable with commit 677891a Aug 2, 2024
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request lgtm This PR has been approved by a maintainer size:L This PR changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants