question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Changing our release and hotfix system

See original GitHub issue

Currently, 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:closed
  • Created 6 years ago
  • Reactions:1
  • Comments:6 (4 by maintainers)

github_iconTop GitHub Comments

2reactions
misaochancommented, Jan 31, 2018

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.

1reaction
nicolas-raoulcommented, Jan 31, 2018

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.

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found