Skip to content

Git flow and versioning

It is really important for every coding team in the world to have a git flow and versioning because it allows:

  • Having some tags (or versions) at different points of the project, like snapshots
  • Having a semantic meaning
  • Collaboration: if you work within a team, everyone can work at the same time on the same project

In a nutshell, they provide traceability and reproducibility in the Git Flow process.

Branching

As much as possible, we recommend that each new story or bug has its own branch.

The branches are named using the following convention: <ticket ID>_<title>

  • <ticket ID>: the ID of the ticket in Jira. This ID is written in uppercase. For example: DOCFORDEV-10,
  • <title>: a short description of the work involved, with spaces replaced by underscores. For example: add_explanations.

An example name of the branch could then be: DOCFORDEV-10_add_explanations.

Commit messages

We recommand commit message titles to start with their ticket ID in uppercase followed by : and a short description.

For example, a commit message title could be: DOCFORDEV-10: add explanations.

Versioning and Tagging

You may have already seen somewhere in a software or in a video game something like version 1.5.12256. This is called a semantic versioning where:

  • The first number corresponds to MAJOR version
  • The second one corresponds to a MINOR version
  • The last one corresponds to a patch

We recommend using this semantic versioning, which is well-known by every developer, and which is quite intuitive.

Deployment

Deploying can be stressful because if, by any misfortune, the deployment fails, then users cannot use anymore the web application.

That's why we have 3 different environments:

  • Integ: allows the proxy product owner to check the functionality. Only developers and proxy product owner can access it
  • Staging: once integ is validated, then the product owner can say if the functionality is ok. Only the product owner and the developers can access it
  • Prod: every user can access it

Next chapter

This clarified, let's go the next chapter, called CI/CD