Development Process¶
Note
This part is a work in progress, reach out to the maintainers if you have any questions!
We recommend you follow Kenneth Reitz folder structure guide when writing Python programs which will be under the control of the ActivityWatch organisation: http://docs.python-guide.org/en/latest/writing/structure/
Working with submodules¶
Working with submodules comes with some complexity, here are a few neat tricks to make things easier:
We recommend configuring git to include submodule changes in
git status, you can do so with the following:git config --global status.submoduleSummary trueIf you want the latest committed version of all submodules, use:
git submodule update --recursiveIf you want the latest master branch on all submodules, use:
git submodule update --recursive --remoteIf you want to ensured you’ve pushed all commits in the submodules, use:
git submodule foreach 'git push'
A longer guide to git submodules can be found here.
Making a release¶
Close milestone on GitHub if one exists.
Ensure that all the tests pass:
make test && make test-integrationTest the latest build and check that it works correctly (use the nightly builds: issue #507)
Write a changelog entry in
docs/changelog.rstSign the commit:
git commit -S -m "bumped version"NOTE: don’t push it before the tag! (if you do, CI won’t run on the tag)
Create a signed tag:
git tag -s v0.7.1Push the commit and tag:
git push origin refs/tags/v0.7.1Create a draft release on GitHub
Generate changelog with
python3 scripts/build_changelog.pyClean it up a bit (remove non-user-affecting changes, merge commits etc)
Wait for the builds to finish
Publish the release
Post about it online: Twitter, the forum, mailinglist (if major)