Development Guide¶
Quick-start¶
Our git repository is at https://github.com/pyinstaller/pyinstaller:
git clone https://github.com/pyinstaller/pyinstaller
Development is done on the develop branch. Pull-request shall be filed against this branch.
Releases will reside on the master branch.
Install required testing tools:
pip install -r tests/requirements-tools.txt
Commit as often as you’d like, but squash or otherwise rewrite your commits into logical patches before asking for code review.
git rebase -i
is your friend. Read the »» Detailed Commit Guideline for more information.Reformatting code without functional changes will generally not be accepted (for rational see #2727).
Write meaningful commit messages.
The first line shall be a short sentence that can stand alone as a short description of the change, written in the present tense, and prefixed with the subsystem-name.
The body of the commit message should explain or justify the change. Read the »» Detailed Commit Message Rules for more information.
Provide tests that cover your changes and try to run the tests locally first.
Submit pull-requests against the
develop
branch. Mind adding a changelog entry so our users can learn about your change!For new files mind adding the copyright header, see
PyInstaller/__init__.py
(also mind updating to the current year).In response to feedback, squash the new “fix up” commits into the respective commit that is being fixed with an interactive rebase (
git rebase -i
). Push the new, rewritten branch with agit push --force
. (Scary! But github doesn’t play nicely with a safer method.)