-
Notifications
You must be signed in to change notification settings - Fork 3
ci: github release action #242
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
Conversation
3a902b8 to
e9fdd1a
Compare
d3bbc59 to
e92337b
Compare
e92337b to
fb7d267
Compare
wbaccinelli
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job! I think this can be imported in the dashboard as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems great!
I have a few comments about the process itself, and a few comments about the documentation.
I think the branching strategy is not explained well anywhere. Maybe there should be a paragraph to explain, e.g.:
## Branching strategy
`main` always contains the latest stable release version of `eitprocessing`.
`develop` contains the next release version under construction.
When creating a new feature, one should branch from `develop`.
When a feature is finished, a PR to pull the feature into `develop` should be
created. After one or multiple features have been pulled into `develop`, the
release workflow can be triggered to automatically create the new feature (minor)
release originating from `develop`.
For bug fixes that can't wait on a feature release, one should branch from `main`.
When the bug fix is finished, the release workflow can be triggered originating from
the created branch.
In principle, no releases should originate from branches other than `develop` and
bug fix branches.
This paragraph is written assuming we don't make pre-releases, release candidates, beta's, et cetera. I think we will do this at some point (e.g. a pre-release for untested code for a specific project), but that will come later.
|
For some reason, I cannot reply to this comment directly.
I believe that once main is merged into the release branch without conflict, the reverse cannot have a conflict. @wbaccinelli, is this correct?
It only exists in the "local" repo of the workflow itself and is never pushed back to the remote, so no. |
I think you are correct, but I'm not 100% sure. I could not find anything on the topic on StackOverflow and ChatGPT just makes nonsensical stuff up when asked about it. So I guess it's not an issue.
I think merging here is exactly what we want. A PR into |
|
So do I interpret correctly to leave it as is? |
c66a3e4 to
bdd1876
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😀
One typo from my side, sorry!
I would also say that it sounds logical. Conflicts come from lines that have been changed by both the versions, so if there are no conflicts in one direction there should be no conflict also in the other direction. I cannot be sure though, even after having consulted Lourens. |
Fair. I guess the entire "Check for conflicts" section can be skipped and the |
Go for it! |
Co-authored-by: Peter Somhorst <127968566+psomhorst@users.noreply.github.com>
This PR creates a workflow to automate the release process.
As currently implemented, this workflow can be triggered manually from the Actions tab and will create a draft release on GitHub, which takes about a minute.
The draft release can then be inspected and converted into a proper release if everything is acceptable. I prefer doing this extra human check, just to avoid anything weird happening, as any true GitHub release (but not a draft release) will trigger a PyPi release as well.
The Actions tab only allows triggering workflows from the default branch. Until then, it can be triggered from command line after installing GitHub CLI with the following command (don't forget to update the stuff between <>):
I have created two protected test branches to check whether this action will work as intended, without messing around on main/develop. These are called
test_protected_mainandtest_protected_develop. I have used these to create conflicts, etc, to ensure that behavior happens as intended. While testing, this filter is useful to see inspect only the current action produced here.Specifically the workflow does the following:
develop)mainmain, push to remotedevelopbranch)mainintodevelopand pushdevelop(at the minimum this bumps the version on develop)release_branchif notmainordevelopAdditional TODOs:
test_protected_main-->maintest_protected_develop-->developcloses: #239