[dev]: research automating the release process
Problem
Right now, the release process is rather tedious and manual. See steps here.
We would like to solve this and make it easier and faster for maintainers to release code-server.
Solutions
- "prep release" script -> makes changes before release is ready
-
release-it(H/T to @vapurrmaid for the suggestion!) -
semantic-release
Happy to help somewhere along the lines if needed!
Maybe we can combine it with changelogs following these guidelines
We're less tied to tools like semantic-release and more tied to, "What do we want the release process to look like"?
One vision:
Just create a release on github, point to a commit, the rest is automatic
Raw Notes
@code-asher and I were talking about some ideas for improving this.
- open PR to update
CHANGELOGand run pre-release script to update versions in text and stuff - after that's merged, create GitHub release. on
created
Hmm.. not sure if this could work:
Note: Workflows are not triggered for the created, edited, or deleted activity types for draft releases. When you create your release through the GitHub browser UI, your release may automatically be saved as a draft.
A couple things to look at:
- https://github.com/thomaseizinger/github-action-gitflow-release-workflow/blob/dev/.github/workflows/draft-new-release.yml
- https://trstringer.com/github-actions-create-release-upload-artifacts/
- https://github.com/marketplace/actions/release-drafter
Latest discussion:
- update changelog if we have been forgetting to do it as we go
- tag a commit
- release is made and uploaded to a draft pr
- publish the release after testing it
- automatic prs are sent to aur, brew, and code-server
- we approve and merge the aur and code-server prs
Still could use work, but I think at the moment the status quo is reasonable enough with the roughly monthly releases.
agreed!