diff options
-rw-r--r-- | docs/hacking/index.rst | 104 |
1 files changed, 62 insertions, 42 deletions
diff --git a/docs/hacking/index.rst b/docs/hacking/index.rst index 407a73f5..66c33bab 100644 --- a/docs/hacking/index.rst +++ b/docs/hacking/index.rst @@ -1,9 +1,9 @@ -:LastChangedDate: $LastChangedDate$ -:LastChangedRevision: $LastChangedRevision$ -:LastChangedBy: $LastChangedBy$ +:LastChangedDate: $LastChangedDate$ :LastChangedRevision: $LastChangedRevision$ + :LastChangedBy: $LastChangedBy$ Hacking ======================================== + So you want to hack on Bitmask? Thanks, and welcome! @@ -14,6 +14,7 @@ Tox is all you need:: tox + Test when changes are made to common/soledad ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -31,56 +32,27 @@ Setting up the development environment Dependencies:: sudo apt install build-essential python-virtualenv libsqlcipher-dev \ - libssl-dev libffi-dev python-pyqt5 + libssl-dev libffi-dev python-pyqt5 + + +Clone the repo:: + git clone https://0xacab.org/leap/bitmask-dev + cd bitmask-dev Create a virtualenv and activate it:: - mkvirtualenv venv + virtualenv venv source venv/bin/activate -(but consider using something like `pew`_ if you are going to do heavy development -though). +By the way, if you plan to get into heavy development, you might want to +consider using something like `pew`_, instead of the plain virtualenv. Now you should be able to install all the bitmask dependencies:: make dev-latest-all -.. _`pew`: https://pypi.python.org/pypi/pew/0.1.26 - -How to contribute ---------------------------------- - -Send your merge requests to https://0xacab/leap/bitmask-dev - -Coding conventions ---------------------------------- -* pep8 -* Git messages should be informative. -* There is a pre-commit hook ready to be used in the ``docs/hooks`` folder, - alongside some other hooks to do autopep8 on each commit. - -.. include:: ../hooks/leap-commit-template.README - :literal: - -Pinning ----------------------------------- -Don't introduce any pinning in the setup.py file, they should go in the -requirements files (mainly ``pkg/requirements.pip``). - - -Signing your commits ---------------------------------- -* For contributors with commit access, you **should** sign all your commits. If - you are merging some code from external contributors, you should sign their - commits. - -Merging code ---------------------------------- -Avoid fast-forwards. Put this in your gitconfig:: - - [merge] - ff = only +.. _`pew`: https://pypi.python.org/pypi/pew Main Bitmask Components @@ -117,6 +89,54 @@ This extension gets published to the `mozilla addons page`_. .. _`mozilla addons page`: https://addons.mozilla.org/en-US/thunderbird/addon/bitmask +How to contribute code +--------------------------------- + +* Send your merge requests to https://0xacab/leap/bitmask-dev, it will be subject +to code-review. +* Please base your branch for master, and keep it rebased when you push. +* After review, please squash your commits. + + +Coding conventions +--------------------------------- + +* Follow pep8 for all the python code. +* Git messages should be informative. +* There is a pre-commit hook ready to be used in the ``docs/hooks`` folder, + alongside some other hooks to do autopep8 on each commit. + +.. include:: ../hooks/leap-commit-template.README + :literal: + +Dependencies +---------------------------------- + +We try hard not to introduce any new dependencies at this moment. If you really +have to, the packages bitmask depends on have to be specified *both* in the +setup.py and the pip requirements file. + +Don't introduce any pinning in the setup.py file, they should go in the +requirements files (mainly ``pkg/requirements.pip``). + + +Signing your commits +--------------------------------- + +For contributors with commit access, you **should** sign all your commits. If +you are merging some code from external contributors, you should sign their +commits. + +Merging code +--------------------------------- + +Avoid fast-forwards, they make a very messy history. Put this in your +gitconfig:: + + [merge] + ff = only + + Making a new release -------------------- |