Skip to content

[SREP-943] docs: add guideline for semver release#724

Merged
openshift-merge-bot[bot] merged 4 commits intoopenshift:mainfrom
feichashao:SREP-943
Jul 15, 2025
Merged

[SREP-943] docs: add guideline for semver release#724
openshift-merge-bot[bot] merged 4 commits intoopenshift:mainfrom
feichashao:SREP-943

Conversation

@feichashao
Copy link
Contributor

@feichashao feichashao commented Jul 8, 2025

What type of PR is this?

  • Bug
  • Feature
  • Documentation
  • Test Coverage
  • Clean Up
  • Others

What this PR does / Why we need it?

This PR add a guideline for how we should apply semver practice in backplane-cli.

  • Add a PR guideline in CONTRIBUTING.MD. We should specify the type of the PR in the title, so that when the maintainer cut a new release, they can clearly see what kind of changes have been made since the last release.
  • Add steps in release.md for maintainer to generate a grouped release note, so that they can decide how to bump the version accordingly.
  • Add a target release-with-note in Makefile for specifying a custom release note.

Which Jira/Github issue(s) does this PR fix?

https://issues.redhat.com/browse/SREP-943

Special notes for your reviewer

Example of release note using the new guideline:

## Feat
77b402c Add domain checks for isolated backplane access in isIsolatedBackplaneAccess function
9123aab OSD-29893 - Adding Fedramp compatibility (#693)

## Fix
4e89950 Capture the SIGINT in the backplane CLI.
c959d4f VerifyIPTrusted error message
ebde738 Fixed manifestwork fetch command

## Docs
d200c19 fix format
133c3b0 make clear alias situation
e3cde83 Add a contributing doc for UX guide

## Chore
3a4aca1 Adding Shawn to the maintainers group
35c0096 add user a7vicky as reviewer
8db6767 (origin/bump_kustomize, bump_kustomize) Bump sigs.k8s.io/kustomize/api from 0.18.0 to 0.20.0
b3be040 Bump github.com/aws/aws-sdk-go-v2/service/ssm from 1.59.3 to 1.60.0
b53a57b Add entry for github.com/openshift-online/ocm-cli v1.0.6 to go.sum
cf401ed Bump sigs.k8s.io/yaml from 1.4.0 to 1.5.0
69ab631 Remove redundant entry for github.com/openshift-online/ocm-cli v1.0.6 from go.sum
df91b8b Bump github.com/aws/aws-sdk-go-v2/config from 1.29.16 to 1.29.17
751b56c Bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.69 to 1.17.70
78e22f7 Bump github.com/aws/aws-sdk-go-v2/service/ssm from 1.59.2 to 1.59.3
277686c Bump github.com/openshift-online/ocm-sdk-go from 0.1.467 to 0.1.469
e1e4118 Bump github.com/aws/aws-sdk-go-v2/service/ssm from 1.59.1 to 1.59.2
6b5f488 Bump github.com/aws/aws-sdk-go-v2/config from 1.29.15 to 1.29.16
8d51f49 Bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.68 to 1.17.69
72cdcbf Bump github.com/openshift-online/ocm-sdk-go from 0.1.465 to 0.1.467
a682893 Bump github.com/aws/aws-sdk-go-v2/service/ssm from 1.59.0 to 1.59.1
233314d Bump github.com/aws/aws-sdk-go-v2/config from 1.29.14 to 1.29.15
a5d8f41 Bump github.com/openshift-online/ocm-cli from 1.0.5 to 1.0.6
0d10939 Bump ubi9 from 9.5 to 9.6
a470e98 Bump golang.org/x/term from 0.31.0 to 0.32.0

In this case, we can see there's a new feat in this new release.

Unit Test Coverage

Guidelines

  • If it's a new sub-command or new function to an existing sub-command, please cover at least 50% of the code
  • If it's a bug fix for an existing sub-command, please cover 70% of the code

Test coverage checks

  • Added unit tests
  • Created jira card to add unit test
  • This PR may not need unit tests

Pre-checks (if applicable)

  • Ran unit tests locally
  • Validated the changes in a cluster
  • Included documentation changes with PR

@openshift-ci openshift-ci bot requested review from Tafhim and smarthall July 8, 2025 06:50
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 8, 2025
@codecov-commenter
Copy link

codecov-commenter commented Jul 8, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 51.56%. Comparing base (90cdb25) to head (4a7c392).
Report is 5 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #724      +/-   ##
==========================================
+ Coverage   50.74%   51.56%   +0.81%     
==========================================
  Files          76       80       +4     
  Lines        5843     5894      +51     
==========================================
+ Hits         2965     3039      +74     
+ Misses       2474     2443      -31     
- Partials      404      412       +8     

see 7 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@xiaoyu74
Copy link
Contributor

xiaoyu74 commented Jul 9, 2025

It's out of your PR but do you think it's helpful to include a note alongside the git tag -a ${VERSION} -m "release ${VERSION}" command in release.md with a concrete SemVer example for that env variable ${VERSION} like v0.2.0

@xiaoyu74
Copy link
Contributor

xiaoyu74 commented Jul 9, 2025

Great work, Siu Wa! 🎉 LGTM.

We can have Dan and Bo take a look as well since they have permission to perform the regular release cut.

Then, we can announce this change and encourage contributors to follow the new PR title format using types like feat, fix, docs, etc mentioned in this PR. This will ensure the gawk script can parse and group commits with clean and well-structured release notes.

@xiaoyu74
Copy link
Contributor

xiaoyu74 commented Jul 9, 2025

Also, it might be worth emphasizing the use of /label tide/merge-method-squash after this PR merged in an announcement email or something. or prioritizing squash merge automation (We have a task created for that https://issues.redhat.com/browse/SREP-980).

Otherwise, the release notes could get noisy due to multiple individual commits being included?

@feichashao
Copy link
Contributor Author

/label tide/merge-method-squash

@openshift-ci openshift-ci bot added the tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges. label Jul 9, 2025
@feichashao
Copy link
Contributor Author

Also, it might be worth emphasizing the use of /label tide/merge-method-squash after this PR merged in an announcement email or something. or prioritizing squash merge automation (We have a task created for that https://issues.redhat.com/browse/SREP-980).

Otherwise, the release notes could get noisy due to multiple individual commits being included?

Yes, I think we would better prioritize the auto squash card. Auto is better than human to remember doing a thing.

It's out of your PR but do you think it's helpful to include a note alongside the git tag -a ${VERSION} -m "release ${VERSION}" command in release.md with a concrete SemVer example for that env variable ${VERSION} like v0.2.0

Thanks for the suggestion! Added in the release.md.

@feichashao
Copy link
Contributor Author

@xiaoyu74 @bmeng We can add the squash command in the PR template so that it will add the label when the PR is submitted. I added a new commit to change the template.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jul 14, 2025

@feichashao: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@xiaoyu74
Copy link
Contributor

@xiaoyu74 @bmeng We can add the squash command in the PR template so that it will add the label when the PR is submitted. I added a new commit to change the template.

Thanks Siu Wa, it looks like a bit magic for me, does github use a bot to pre-fill the PR description with this squash command defined in the PR template and apply it?

@feichashao
Copy link
Contributor Author

feichashao commented Jul 15, 2025

@xiaoyu74 @bmeng We can add the squash command in the PR template so that it will add the label when the PR is submitted. I added a new commit to change the template.

Thanks Siu Wa, it looks like a bit magic for me, does github use a bot to pre-fill the PR description with this squash command defined in the PR template and apply it?

@xiaoyu74 not that magic, here is an example #730 (see the last line of the description). It can recognize the "label" in both comment or PR description, so we can just put the in the template of PR description.

@bmeng
Copy link
Contributor

bmeng commented Jul 15, 2025

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jul 15, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jul 15, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bmeng, feichashao

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-bot openshift-merge-bot bot merged commit 9fa4165 into openshift:main Jul 15, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants