Skip to content

Conversation

vojtapolasek
Copy link
Collaborator

@vojtapolasek vojtapolasek commented Aug 6, 2025

Description:

  • update documentation and the release_helper script so that
    • there is only stabilization branch, no more stabilization-vx.y.z
    • the stable branch is not created by merging with the latest stabilization branch nor by recreating it from scratch, but by pushing the latest released tag to the stable branch

Rationale:

Review Hints:

  • review changes
  • you can try to run the release_helper script on your fork, but most changes should not affect the script actually.

replace all occurences of stabilization-vx.y.z with just stabilization
change the process of pushing the tag and modifying the stable branch
@vojtapolasek vojtapolasek added this to the 0.1.78 milestone Aug 6, 2025
@vojtapolasek vojtapolasek added the Infrastructure Our content build system label Aug 6, 2025

- Open a PR to bump the version of `CMakeLists.txt` on the **master** branch.
- For example, when the `stabilization-v0.1.65` is created, the line `set(SSG_PATCH_VERSION 65)`
- For example, if the version `0.1.65` is going to be released, the line `set(SSG_PATCH_VERSION 65)`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the proper phrasing is "if the version ... is to be released" rather than using "going to be" (future tense in a condition).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting catch, but it seems that even the current phrasing is fine.
https://ell.stackexchange.com/questions/177544/be-to-verb-vs-be-going-to-verb

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am still not convinced, my problem was with the conditional, see ie. https://www.ef.com/wwen/english-resources/english-grammar/conditional/ .

Basically, the problem is the "if future tense, then ..." - it's a typical "czechism" because slavic languages commonly use future tense in conditionals, but it's fairly uncommon / incorrect (?) in English where the default tends to be a time-neutral condition "if some thing happens, then ..." with other (past) forms allowed, but less common.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I think I get the point now. Fixed.

### Tagging
- Create and push a **vX.Y.Z** tag to the GitHub repo.
This set of commands describes how to push the release tag.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would still keep it as "how to create and push" rather than just "push".

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree.

Comment on lines +265 to +275
release=v0.1.99
remote=origin

# get up-to-date branches and tags from github
git fetch --tags $remote

# create a new tag based on latest stabilization
git tag $release $remote/stabilization

# push the tag
git push $remote $release
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason why I had tag creation + push + stable update in one code block is to ensure that everything is done at the same time, in the same "sorta atomic" time.

If you split it up, it might appear that one can wait some time before ie. fetching stabilization and updating stable, which is incorrect - the stable update relies on the local copy of stabilization being up to date.

So either duplicate the git fetch --tags $remote in the second section further below, or merge the two sections.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I merge those two sections.

GitHb Action again.
Github Action again.
Using `release_helper.py` script:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't using release_helper.py duplicate some of the commands above (making a tag and pushing it)?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general the release_helper.py should make it easier for you to perform the release, so that you do not have to typw out commands manually. But in this particular case, it only prints out commands you should run. I decided to drop this part of the release helper all together.

@vojtapolasek
Copy link
Collaborator Author

@ComplianceAsCode/oracle-maintainers @ComplianceAsCode/ubuntu-maintainers @ComplianceAsCode/suse-maintainers @ComplianceAsCode/complytime-maintainers do you have any feedback to this update of the release process?

It just printed out commands to be run, I do not see value and it increases maintenance.
@Mab879 Mab879 self-assigned this Aug 8, 2025
@comps
Copy link
Collaborator

comps commented Aug 8, 2025

@Mab879 Note that the process described here won't work with the current stable branch, but I can create (from git history) one that simulates this process for past releases, making the process work.

(We might want to override stable with that version while merging this at the same time, for consistency.)

edit: Well, it would /technically/ work even with current stable, but it's probably better to retroactively apply the process for past releases. I can document everything in a Discussion thread, with old/new SHA so it's transparent.

@Mab879
Copy link
Member

Mab879 commented Aug 8, 2025

@comps I will merge this as is. However, please open a GitHub discussion to document the steps done for older releases.

@Mab879
Copy link
Member

Mab879 commented Aug 8, 2025

Merging, bypass the requirement for the static checks on CS9 as this only changes docs and release scripts.

@Mab879 Mab879 merged commit 417ba26 into ComplianceAsCode:master Aug 8, 2025
126 of 128 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Infrastructure Our content build system
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Release process - tagged commits on branch
3 participants