wiki:Development/HowtoContribute
Last modified 3 months ago Last modified on 02/22/12 12:02:04

You are very welcome to contribute!

Since as of now all core-developers are working on PyInstaller in their spare-time, you can help us (and the project) most if you are following some simple guidelines. The higher the quality of your contribution, the less work we have incorporating them and the earlier we will be able to incorporate them :-)

Some thing to keep in mind:

If you plan to contribute frequently, just ask for write access to the main git repository. We would be glad to welcome you in the team!

And this is how it works:

  • Create a fork of pyinstaller branch 'develop' on github.
  • Set up your git client by following the documentation on github.
  • Clone your for to your local machine.
    git clone git@github.com:GIT_USERNAME/pyinstaller.git
    
  • If you are going to implement a hook, start with creating a minimalistic build-test (see below). You will need to test your hook anyway, so why not ue a build-test from the start?
  • Incorporate your changes into PyInstaller?.
  • Test your changes by running all build tests to ensure nothing else is broken. Please test on as many platform as you can.
  • Create a merge request on github.

The test wokflow is not yet documented, but:

  • If those tests will be interactive (user has to click on a button), then it should go into ./buildtests/interactive/, test for hooks (and suchlike) go into ./buildtests/libraries/. If you are working on a core function, ./buildtests/basic/ or ./buildtests/import/ are appropriate.
  • If you have more test files, create them with file name prefix test_yourtest_.
  • To run a single test:
    cd buildtests
    python runtests.py libraries/test_yourtest
    
  • To run all tests:
    cd buildtests
    python runtests.py 
    
  • To run all interactive tests:
    cd buildtests
    python runtests.py -i
    
  • Test success depends on zero exit status of created binary.