Skip to content
Snippets Groups Projects
Commit 63ead064 authored by Cristian Lalescu's avatar Cristian Lalescu
Browse files

update versioning guidelines

parent dd8ef14d
No related branches found
No related tags found
No related merge requests found
...@@ -7,23 +7,23 @@ Development ...@@ -7,23 +7,23 @@ Development
Versioning guidelines Versioning guidelines
--------------------- ---------------------
Version tracking for `bfps` is done with `git` (see https://git-scm.com/ Version tracking for :mod:`bfps` is done with ``git`` (see https://git-scm.com/
for description). for description).
The branching model described at The branching model described at
http://nvie.com/posts/a-successful-git-branching-model/ should be http://nvie.com/posts/a-successful-git-branching-model/ should be
adhered to as strictly as possible. adhered to as strictly as possible.
The usable `VERSION` number will be constructed according to semantic The usable ``VERSION`` number will be constructed according to semantic
versioning rules (see http://semver.org/), `MAJOR.MINOR.PATCH`. versioning rules (see http://semver.org/), ``MAJOR.MINOR.PATCH``.
In principle, if you use `bfps` and you've created children of the In principle, if you use :mod:`bfps` and you've created children of the
`NavierStokes` class, you should not need to rewrite your code unless :class:`NavierStokes <bfps.NavierStokes.NavierStokes>` class, you should not need to rewrite your code unless
the `MAJOR` version changes. the ``MAJOR`` version changes.
There are 2 main branches, `master` and `develop`. There are 2 main branches, ``master`` and ``develop``.
`setup.py` will call `git` to read in the `VERSION`: it will get the ``setup.py`` will call ``git`` to read in the ``VERSION``: it will get the
latest available tag. latest available tag.
If the active branch name contains either of the strings `develop`, If the active branch name contains either of the strings ``develop``,
`feature` or `bugfix`, then the full output of `git describe --tags` ``feature`` or ``bugfix``, then the full output of ``git describe --tags``
will be used; will be used;
otherwise, only the string before the dash (if a dash exists) will be otherwise, only the string before the dash (if a dash exists) will be
used. used.
...@@ -32,25 +32,28 @@ At the moment the following rules seem adequate. ...@@ -32,25 +32,28 @@ At the moment the following rules seem adequate.
Once I get feedback from someone who actually knows how to handle bigger Once I get feedback from someone who actually knows how to handle bigger
projects, these may change. projects, these may change.
1. New features are worked on in branches forked from `develop`, with 1. New features are worked on in branches forked from ``develop``, with
the branch name of the form `feature/bla`. the branch name of the form ``feature/bla``.
Feature branches are merged back into `develop` only after all tests Feature branches are merged back into ``develop`` only after all tests
pass. pass.
2. Whenever the `develop` branch is merged into `master`, the last 2. Whenever the ``develop`` branch is merged into ``master``, the last
commit on the `develop` branch is tagged with `MAJOR.MINOR`. commit on the ``develop`` branch is tagged with ``MAJOR.MINOR``.
3. Whenever a bug is discovered in version X.Y, a new branch called `vX.Y` 3. Whenever a bug is discovered in version X.Y, a new branch called ``vX.Y``
is forked from the corresponding `master` merge point. is forked from the corresponding ``master`` merge point.
A new bugfix branch is forked from `vX.Y`, the bug is fixed, and then A new bugfix branch is forked from ``vX.Y``, the bug is fixed.
this bugfix branch is merged into all affected branches (this includes The last commit in the bugfix branch is tagged X.Y.1.
`vX.Y`). This bugfix branch is merged into all affected branches (this includes
After merging, the respective merge points are tagged adequately (`vX.Y` ``vX.Y``).
gets the tag X.Y.1). After merging, the respective merge points into branches other than
``develop``, ``bugfix`` or ``feature`` are tagged accordingly;
there's no need to tag ``develop`` etc since those contain the git
commit in the version anyway.
4. Whenever a bug is discovered in version X.Y.Z, a bugfix branch is 4. Whenever a bug is discovered in version X.Y.Z, a bugfix branch is
forked from `vX.Y`, and then rule 3 is adapted accordingly. forked from ``vX.Y``, and then rule 3 is adapted accordingly.
------------ ------------
Code testing Code testing
------------ ------------
Testing for `bfps` is done with `tox`. Testing for :mod:`bfps` is done with ``tox``.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment