Development¶
Branches and Tags¶
There are two main branches for development in taco: an active development branch that may break, and an infrequently updated stable branch that points to the latest tested and verified version of taco.
We utilize a two-track convention with branches - one development branch and one stable branch:
-
master
(unstable) - this points to the latest commit on the development branch of taco -
stable
(stable) - this points to the latest commit on the stable branch of taco
Branches for each release version also exist. We create a branch for each version release to enable version-specific maintenance commits. Release branches also follow the two-track method. Release branches are named:
-
release/v0.0
(stable) - this contains all commits specific to release version 0.0 of taco -
release/v0.0beta
(unstable) - this contains unstable development code for preparing for release version 0.0 of taco (beta version)
The release branches use only the major and minor numbers,
but tags are used for each major, minor, and patch number.
The convention for naming tags in taco is the letter v
followed by the version (major, minor, and patch) v0.0.0
.
All tags for a major and minor version X.Y will point to
commits on the release/vX.Y
branch.
Workflow¶
The normal workflow is to create a new branch
to add features or fix features, and merge commits
from that branch into master
, then into
stable
, and eventually on into a versioned release.
Adding New Features¶
To add new features, create a new branch using the master
branch as a source, and make your commits on this branch.
When you're ready, run tests on the branch to ensure the
modified code works as expected. Merge this code into
the master
branch.
Once the code has been tested, checked for backwards
compatibility, linted, minted, stamped, licensed, etc.,
it can be merged into the stable
branch.
Creating New Version¶
When you have commits in stable
and are ready to
release them as a new version, create a new
pre-release branch release/v0.0beta
from the
appropriate stable
commit.
(If the features you want to add to a new version of taco
are not in the stable
branch yet, start by getting them
into stable
.)
You should not be doing regular development on the beta branches, but some hot-fix or workaround commits may be required, hence the unstable label.
Once release/v0.0beta
has been tested and is ready
for release, create a new branch release/v0.0
for the stable release of version 0.0 of taco.