Developer Notes

Contributing

AXE is published where people more talented than I can readily suggest improvements. If you see an error or something that could be better, please submit an issue.

General Guidelines

  • Master branch is for merging incoming changes. Do not make any changes direcly on the master branch.

  • Create topic branches. Don't ask for a pull from your master branch.

  • One pull request per feature. If you want to do more than one thing, send multiple pull requests.

  • Send coherent history. Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before sending them.

  • Fork the project, clone your fork, and configure the remotes:

    1
    2
    3
    4
    5
    6
    # clone your fork of the repo into the current directory in terminal
    git clone git@bitbucket.org:<your username>/axe.git
    # navigate to the newly cloned directory
    cd axe
    # assign the original repo to a remote called "upstream"
    git remote add upstream git@bitbucket.org:kxseven/axe.git
    
  • If you cloned a while ago, get the latest changes from upstream:

    1
    2
    3
    4
    5
    6
    # fetch upstream changes
    git fetch upstream
    # make sure you are on your 'master' branch
    git checkout master
    # merge upstream changes
    git merge upstream/master
    
  • Create a new topic branch to contain your feature, change, or fix:

    1
    git checkout -b <topic-branch-name>
    
  • Commit your changes in logical chunks. or your pull request is unlikely be merged into the main project. Use git's interactive re-base feature to tidy up your commits before making them public.

  • Make sure you run your code through PyLint for basic error and warnings.

  • Push your topic branch up to your fork:

    1
    git push origin <topic-branch-name>
    
  • Open a Pull Request with a clear title and description.

Developer Packages Required

In order to do development on AXE you will need to install the list of additional Python packages from requirements.development

1
2
$ goaxe
$ pip install -r requirements/requirements.development

You may find it more convenient to create a separate Python VirtualEnv for development to keep packages and versions distinct