-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
Where do I start?
Ideally, you would find an issue (particularly one tagged high-priority) you'd like to work on, assign it to yourself, and simply try to fix it!
Because documentation is very thin right now, that isn't realistic. My suggestion is to find an issue that looks important and/or interesting, and comment on it so we can discuss the context and how it might be solved.
How do I contribute code?
Important!!: rebase rather than merging; remember the golden rule of rebasing (see README). Write tests!
Once you've chosen something to work on, here's how you'll actually write code, generally speaking:
-
pull to update your local master branch
-
create a new feature branch
-
do some work; commit; repeat until you want to include your work in master
-
push your feature branch
That's it! I'll hopefully be able to merge your work into master.
Note: There's nothing stopping you from pushing directly to master. If you do this, be very careful! There are no tests at the moment, so if you accidentally break something, it won't be obvious. Once there is a robust test suite, this will be mitigated somewhat, but master will still have to be repaired as quickly as possible.
Do I have to use Python?
Nope! If you want to write modules in, e.g., Java, we'll figure out how to integrate your code.
In fact, there is a very short list of guidelines:
- rebase; don't merge
- when you rebase, follow The Golden Rule of Rebasing.
- write test cases
What if Github rejects my push?
If you tried to push to master with -f, your push was deliberately rejected to maintain the integrity of master. Otherwise, it likely means your local branch has diverged from the remote. You need to merge in the remote changes and then push again so the remote branch can fast-forward. Specifically:
- git pull --rebase
resolve any conflicts and complete the rebase.
- push again
If the branches diverge again between 1. and 2. you'll need to repeat!