| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Contents
As of 2012-02-21, the git repository structure was modified to reflect the development workflow described here (see issue 96 for discussion).
Please check RepositoryStructure for details about the git repository structure.
The code repo is composed of two main branches:
The master branch is used to store production-ready code. As a consequence, development code should never be committed to this branch. Ideally, only the release manager should commit code to this branch when a release is ready (See below).
The develop branch is where the magic happens! This is the branch used for development code. To avoid breaking things periodically, only working (and tested!) code should be committed to this branch. In other words, please consider this branch as an "integration branch" used to include your code into the next release.
As already mentioned, only "stabilized" code should be incorporated into the main development branch develop. When adding new features to MDAnalysis, developpers are asked to add the corresponding tests to the testsuite. Please check UnitTests for details.
In addition to the master and develop branches, Three kinds of supporting branches may be used:
When you want to add an more-or-less experimental feature but still want other developers to be able to contribute (i.e. don't want to do everything locally), you may use a feature branch.
Rules for a feature branch:
git checkout -b myfeature develop
git push -u origin myfeature
git checkout develop git merge --no-ff myfeature git push origin develop
Note: the --no-ff is used to prevent history loss
git branch -d myfeature
git push origin :myfeature
release branches are used to prepare a new production release. They should be handled by the release manager only.
Rules for a release branch:
git checkout -b release-0.7.6 develop
./maintainer/change_release.sh 0.7.6
git commit -m "release 0.7.6 ready"
git checkout master git merge --no-ff release-0.7.6 git tag -a release-0.7.6
git checkout develop git merge --no-ff release-0.7.6 ./maintainer/change_release.sh 0.7.7-devel git commit -a -m "version number changed to 0.7.7-devel"
git branch -d release-0.7.6
hotfix branches are used to fix an issue found in a already released version. Like the release branches, they should be handled by the release manager only.
Rules for a feature branch:
git checkout -b hotfix-0.7.6.1 master
./maintainer/change_release.sh 0.7.6.1
git commit -m "issue #123 fixed"
git checkout master git merge --no-ff hotfix-0.7.6.1 git tag -a hotfix-0.7.6.1
git checkout develop git merge --no-ff hotfix-0.7.6.1
git branch -d hotfix-0.7.6.1
In addition to the standard requirements, a developer should probably also install cython. In some cases it might be necessary to have SWIG as well.
Developers should be aware of how the setup.py script handles Cython code (see Issue 85):
By doing so, end users (or devs) should not trigger the .pyx to .c conversion since .c files delivered with source packages are always up to date. But devs who work on the .pyx files will automatically trigger the conversion since .c files will then be outdated. Using the --force flag with Cython installed will also trigger the conversion though.
| Back | FazBrowse Home | New Git URL |