Select Page

A git workflow that is easy and scale for product development

A git workflow that is easy and scale for product development

There are numerous GIT workflow floating around like Centralized Workflow, Gitflow, Forking flow and Feature Branch Workflow

Over the last 10 years, I have followed this really simple workflow, similar to the forking flow.
  • it allow Parallel Development, features branches can be merged to any release branches or ideally Master
  • Collaboration Feature branches also make it easier for two or more developers to collaborate on the same feature

We consider Master the stable version of the product, this branch should be deployed automatically using continuous delivery

Every ticket, bugs, fix, features

is done first in a new branch from master

  • Using the ticket number first,
  • with a short but understandable description written in lower case, e.g. PROJ-11-fix-login. This will let you create automatic releases notes because Jira and Confluence will recognize the ticket number in the branch name

These ticket, bugs, fix, features should NEVER be merged to master without a Pull Request (PR) and a code review.

After the review process it can be merged to master. (merge will be blocked if no reviewer has accepted the code changes)

Delivering code

Code deployed to production or customer instance can ONLY be deployed from a release branch name 1.0, 1.1, 1.2,….

Fixes in production or customer release

Fixes in production or customer release branch are done the usual way (ticket-name but branch created from release branch name) and create a new git tag 1.0.1 (first fix of release 1.0.1, then 1.0.2 ….)

These branches created from release branches can but must NOT be merged to master depending on the quality of the fix and urgency. To be discussed on a case by case basis

  • e.g. hot ugly fixes, aka workaround, done in urgency for a customer wont be merged to master and may be rewritten to finally be merged to master later.
  • But the normal case it that these fixes will be merged to master.

Conclusions

This workflow has allowed me in the past to handle multiple version (1.1, 1.2.5, 1.5) of a corporate product run by multiple client at the same time. Even if supporting multiple version is not a desirable setup in the long run…

About The Author

Cédric Walter

I worked with various Insurances companies across Switzerland on online applications handling billion premium volumes. I love to continuously spark my creativity in many different and challenging open-source projects fueled by my great passion for innovation and blockchain technology. In my technical role as a senior software engineer and Blockchain consultant, I help to define and implement innovative solutions in the scope of both blockchain and traditional products, solutions, and services. I can support the full spectrum of software development activities, starting from analyzing ideas and business cases and up to the production deployment of the solutions. I'm the Founder and CEO of Disruptr GmbH.

Categories

brands

 
 
Cordalo simplify writing Corda applications.
 
tokens-economy.com is a blog / digital playground where Cédric keep track of new developments in the distributed ledger technology space and present all his experimentation and tools, promoting the understanding of digital currencies and assets.
 
Galaxiis premium joomla extensions and plugins
 
Supercars-central.com is a blog about the Audi R8 Spyder V10 and more...