Pushing patches - sympy/sympy GitHub Wiki

If you have been around for some time and actively participating in SymPy's development, you will be granted push access to the main repository. Then you can push in patches that passed review.

How to Push to Master

Once the Pull Request (PR) is reviewed, click the green "Merge" button at the github PR page.

Only use the merge button. GitHub branch protection will make it impossible to push directly to master, but it does not prevent accidentally pushing other branches. If you accidentally push a branch up to sympy/sympy, please delete it.

Checklist

There are basically four things that you need to do before pushing anything in:

  1. Make sure all tests pass (if it is part of the main repo; for the webpage, make sure everything looks good and also that the pages are built). Do this for the merged/rebased version to make sure that that didn't introduce any errors. For pull requests to SymPy, make sure Travis passes. Actually, GitHub is currently configured so that PRs without Travis passing cannot be merged (if a Travis build fails because of a Travis error, you should have the ability to restart it if you login to Travis).

  2. Make sure that all content has been reviewed (for example, make sure that the person didn't push in a new commit to the branch for review that you didn't notice).

  3. Make sure that no one else has any objections to the branch. Everything is based on consensus, so until one is reached, the branch cannot be pushed in.

  4. All new functionality should be tested, and all new methods/functions/classes should have some doctests showing how to use them (the ./bin/coverage_doctest.py script will show you what methods have doctests). This will upload a review to the pull request that will say if the documentation coverage has increased or decreased.

Push access removal due to inactivity

Our policy is to remove push access from anyone who hasn't made any contributions in the past year. This is done for security purposes only. If you had push access before and it was revoked due to inactivity, we will be happy to reinstate it if you start contributing again (just email Aaron).


There is also a way to push patches from a command line (Pushing-patches-expert), but please do not use it, as it is too easy to screw things up.