Pioneer's primary repository is hosted at https://github.com/pioneerspacesim/pioneer. To do any hacking you need your own clone of the repository. We recommend that you host your own repository on Github by forking the primary repository as we make heavy use of Github's features, but in the finest git tradition you're welcome to manage your copy of the code as you please.
Getting your changes into Pioneer
Create feature branch
Get your master copy up to date with the central repository, and create a branch for whatever it is that you're working on.
Hack hack hack! This is the fun bit! Its recommended you stay in close contact with the other developers, either via IRC or the mailing list, to make sure that your work fits with the rest of the project.
Once your code is ready you need to request that it be merged. If you're using Github, the standard mechanism is a pull request. This creates an issue in the issue tracker so your request doesn't get lost. If you're not using Github you should manually create an issue, point to a place where your repository can be accessed and the SHA1 of the branch head you want merged. We prefer the SHA1 over the symbolic ref so we can be sure that we're reviewing the same code.
Once you've requested a merge someone will review your code. This is the most important part of the process. We insist on a review for two reasons:
- Ensuring that the codebase remains consistent and there are no glaringly obvious bugs or structural defects in your code
- Giving the reviewer an opportunity to learn your code and the parts of the codebase you changed
For small changes the review will often be a quick nod from someone in IRC, possibly even the merge manager doing the review at the same time as the merge. Larger changes will require a more thorough review, possibly by more than one person (if an expert in a particular area is required).
When the review is completed the reviewer should make a note on the relevant issue to indicate the branch is ready for merge.
If the change does not pass review then the reviewer should note the problems in the issue. You should go back and fix the things that the reviewer flagged as problems and then update the issue/pull request with the new SHA1. The original reviewer should take the lead on follow-up reviews to make sure that all the original problems are addressed.
Once the review is complete the merge manager will complete the merge and push an updated master. Congratulations, your code is now a part of Pioneer!
From alpha 11 onwards Pioneer works on a timeboxed release schedule. Releases occur on the second Friday of each month. A release branch is created one week before this release. No new development is accepted onto this branch - only critical bugfixes and documentation updates.
|Release||Freeze date||Release date|
|Alpha 14||2 September||9 September|
|Alpha 15||7 October||14 October|
|Alpha 16||4 November||11 November|
|Alpha 17||2 December||9 December|
|Alpha 18||6 January||13 January|
need to update this table Philbywhizz 17:33, 6 September 2012 (PDT)
On the freeze date the release manager will create a new branch for the release. Development can continue according to the normal development process and code will be merged to master as normal. No new features will be included on the release branch except for critical bugfixes (as determined by the development team).
The main purpose of the release branch is to give us time to test, update docs and prepare for release.
Things that need to be done for release:
- Ensure the Changelog, AUTHORS, README and other docs are up to date.
- Do the builds
- Test the builds. This includes making sure they run and making sure all the necessary files are included.
- Update the download page with links, MD5 sums and the change log
- Post announcements to:
- pioneerspacesim.net news page
- spacesimcentral.com forum
- moddb.com page