Contributing¶
This repo uses the Git Branching Model. The head of master branch should always be production ready. The head of the develop branch should contain the latest delivered development changes for the next release. Features should be created in feature branches that branch from the develop branch.
Create virtualenv (recommended, but not required). Then get the repo:
$ git clone https://github.com/brettelliot/ecal.git
$ pip install -r requirements.txt
Run the tests:
$ python setup.py test
Creating a develop
branch from the master
branch:
$ git checkout -b develop master
Creating a new feature branch from the develop
branch:
$ git checkout -b be-feature develop
Committing code to the new be-feature
branch:
$ git add .
$ git commit -am 'Commit message'
$ git push --set-upstream origin be-feature
Committing code to an existing be-feature
branch:
$ git add .
$ git commit -am 'Commit message'
$ git push
Building the documentation (from the docs/ directory):
$ sphinx-apidoc -f -o source/ ../ecal/
$ make html
Incorporating a finished feature onto develop
:
$ git checkout develop
$ git merge --no-ff be-feature
$ git push origin develop
$ git branch -d be-feature
$ git push origin --delete be-feature
Create a release branch from develop
, and merge it into master
:
$ git checkout -b release-1.0.2 develop $ git checkout master $ git merge --no-ff release-1.0.2 $ git push $ git tag -a 1.0.2 -m "release 1.0.2" $ git push origin 1.0.2
Merge the release branch changes back into develop
so it’s up to date:
$ git checkout develop $ git merge --no-ff release-1.0.2 $ git branch -d release-1.0.2
Generating distribution archives:
$ git checkout master
$ python setup.py check --strict --metadata
$ rm -rf dist/
$ python3 setup.py sdist bdist_wheel
Upload to test.pypi.org:
$ twine upload --repository-url https://test.pypi.org/legacy/ dist/*
To test the package from test.pypi.org, create a new virtual env, install the package, then run python and import it:
$ rm -rf ~/.virtualenvs/ecal_test_pypi
$ mkvirtualenv ecal_test_pypi
$ python3 -m pip install --no-cache-dir --extra-index-url https://test.pypi.org/simple/ ecal
$ python
>>> import ecal
>>> ecal.name
'ecal'
>>> quit()
$ deactivate
Upload the package to the real pypi.org website:
$ twine upload dist/*
To test the package from pypi.org, create a new virtual env, install the package, then run python and import it:
$ rm -rf ~/.virtualenvs/ecal_pypi
$ mkvirtualenv ecal_pypi
$ pip install --no-cache-dir ecal
$ python
>>> import ecal
>>> ecal.name
'ecal'
>>> quit()
$ deactivate