Contributing¶
Thank considering your contribution to DBGR. Any help or feedback is greatly appreciated.
Development setup¶
If you want to develop debugger locally, there is an alternative installation process that will make this experience easier.
First, fork DBGR repository. Then you can clone the forked repository and create local environment:
$ git clone https://github.com/<your_username>/dbgr
$ cd dbgr
$ virtualenv env3.7 --python=python3.7
$ source env3.7/bin/activate
(env3.7) $ pip install -r requirements.txt -r requirements-dev.py
Tip
The process for setting up python 3.6 is the same, just use different python executable.
Now you can install DBGR from local directory:
$ source env3.7/bin/activate
(env3.7) $ pip install -e .
Testing¶
(env3.7) $ make test
This will run all unit-tests and generate coverage report. 100% test coverage is mandatory.
Tip
The file Makefile
contains other commands that can be useful when developing
DBGR. Run make
to see all the available commands.
Linting¶
(env3.7) $ make lint
DBGR user pylint with some lints disabled. See .pylintrc
for details. Score
of 10.0 is mandatory.
Building documentation¶
This documentation was build using Sphinx. To build it locally, run:
(env3.7) $ make documentation
(env3.7) $ open open docs/build/html/index.html
All new features and changes have to be documented.
Before committing please spell-check the documentation using:
(env3.7) $ make spelling
If Sphinx reports a spelling mistake on a word you are sure is spelled correctly,
add it to docs/source/spelling.txt
. Sort the file alphabetically.
Building distribution¶
These steps are mandatory only when preparing for release. Individual developers don’t need to worry about them.
Run all tests, make sure they all pass and the code coverage is 100%.
Move appropriate changes from
# Unreleased
section inCHANGELOG.rst
to new version.Change version in
dbgr/meta.py
Build distribution, make sure there are no errors
(env3.7) $ make build
Tag new version on GitHub
Create new GitHub release
- Upload content of
dist
- Copy latest changes from
CHANGELOG.rst
to release description
- Upload content of
Upload content of
dist
to PyPi.(env3.7) $ make publish