Changing our release and hotfix system
See original GitHub issueCurrently, all releases are done from master, and all hotfixes to release issues are also submitted to master. Brief history of the problems that we are encountering with our current release system:
- We had a major issue with Dagger crashes in 2.6.5, which was solved by #1062
- #1062 was released via 2.6.6
- 2.6.6 fixed the Dagger crash from 2.6.5, but also included other changes that caused a different type of crash, with an even higher crash rate
- We wanted to roll back to 2.6.5 while cherry-picking the Dagger fixes
- This turned out to be extremely difficult because the Dagger fixes built on other code changes that were submitted to master between 2.6.5 and 2.6.6.
In the future, I’m thinking that we might want to change how we do hotfix releases. My proposed new system:
- Every major release (e.g. 2.6), I will pull from master and create a new branch (e.g.
2.6.x-release
) - Hotfixes to the major release must be done in the
2.6.x-release
branch, not in master - Hotfix releases (e.g. 2.6.1) will be pulled from the
2.6.x-release
branch. New changes/enhancements to master will not be included in the hotfix release - Release branches will be merged into master periodically (so master is up to date with hotfixes made to release branches)
- Hotfixes can be released to production after being tested in beta for a few days. Major releases on the other hand should be tested in beta for a much longer time (e.g. 2 weeks?)
I believe that this will allow us to make hotfixes more easily and independently of master, and reduce the headaches that we are facing currently. Given that major releases are expected to be the least stable, they should also be tested the most vigorously.
Issue Analytics
- State:
- Created 6 years ago
- Reactions:1
- Comments:6 (4 by maintainers)
Top Results From Across the Web
What is Hotfix and How it is Tested & Released? - Technotrice
So, a release that is planned to patch a specific critical issue in the current release is called a hotfix release.
Read more >Release process - OpenProject
Hotfix releases follow no predefined release plan in the release process. ... All changes made to the OpenProject software are documented via work...
Read more >3.0 - 3.8 - Official Release, Hotfix, and Patch Distribution Policies
This page will go over the differences between Official Releases, Hotfixes, and Patches, and will explain how to install Hotfixes and Patches.
Read more >Patch vs Hotfix vs Coldfix vs Bugfix: Differences Explained
Unlike patches, hotfixes address very specific issues like: Adding a new feature, bug, or security fix. Changing database schema.
Read more >What Is a Hotfix? Software Patches Explained - Applause
A hotfix is a quick correction to address a bug or defect and typically bypasses the normal software development process. Hotfixes are ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Thanks guys! I’ll add this to the wiki then. 😃
@maskaravivek and @neslihanturan , if you guys are good with this, we can start implementing this system in the next release.
The workflow you described is great, actually I have used it successfully in other projects.
Feature branches are great too, though they should get merged into master as soon as possible (as soon as the feature is ready) to avoid late bad surprises. It is more important than always having a stable master.