Difference between revisions of "Development Model"

From PioneerWiki
Jump to: navigation, search
(updating)
 
(2 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
Get your master copy up to date with the central repository, and create a branch for whatever it is that you're working on.
 
Get your master copy up to date with the central repository, and create a branch for whatever it is that you're working on.
  
==Implement feature==
+
 
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.
+
== Implement feature ==
 +
 
 +
Hack hack hack! This is the fun bit! Its recommended you stay in close contact with the other developers, either via IRC, a WIP Pull Request or the Dev forum, to make sure that your work fits with the rest of the project.
  
 
==Request merge==
 
==Request merge==
 
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 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.
  
==Review==
 
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
+
== Review ==
* Giving the reviewer an opportunity to learn your code and the parts of the codebase you changed
+
 
 +
Once you've requested a merge someone will review your code or contribution. 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).
 
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).
  
Line 27: Line 32:
 
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!
 
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!
  
=Release process=
+
 
 +
= Release process =
  
 
Once pioneer was released as alphas with freezing period. This changed after alpha33.
 
Once pioneer was released as alphas with freezing period. This changed after alpha33.
  
Twice a day a complete build for Windows and Linux will be run and uploaded (though obviously not if no changes have been made).  
+
If there are changes that warrant it, new things, fixes, then a complete build for Windows and Linux will be run and uploaded (though obviously not if no changes have been made). Version numbers are formatted like YYYYMMDD. So a build for today might be 20170827. The latest build will always be linked from pioneerspacesim.net, and the last week's worth of builds will be archived, just in case. Geraldine also archives a windows build once a month on moddb.
Version numbers are formatted like YYYYMM.BB, where BB is the "build number" for that month. So a build for today might be 201308.2.  
 
The latest build will always be linked from pioneerspacesim.net, and the last week's worth of builds will be archived, just in case.
 
  
To keep the changes visible, we'll be making a "what's new in Pioneer" post to this forum, the G+ page and a few other places at the start of each month with the changelog for the previous month.  
+
To keep the changes visible, the changelog for the last month is visible on the main page, the G+, Twitter. The full changelog can be found on github.
  
 
Of course, the current changelog will always be available from the homepage and in the release archives proper.
 
Of course, the current changelog will always be available from the homepage and in the release archives proper.
Line 41: Line 45:
 
This should mean that if you encounter a bug, the fix is available to you in an official, supported build as soon as possible.
 
This should mean that if you encounter a bug, the fix is available to you in an official, supported build as soon as possible.
  
We're aware that asking people to regularly download a 150-200MB archive is a bit of a stretch, so we're also looking at ways to reduce the amount of stuff you need to grab to get a new build..
+
== Release ==
  
==Release==
 
 
Things that need to be done for release:
 
Things that need to be done for release:
  
* Ensure the Changelog, AUTHORS, README and other docs are up to date.
+
*Ensure the Changelog, AUTHORS, README and other docs are up to date.  
* Do the builds
+
*Do the builds  
* Test the builds. This includes making sure they run and making sure all the necessary files are included.
+
*Test the builds. This includes making sure they run and making sure all the necessary files are included.  
* Upload
+
*Upload  
* Update the download page with links, MD5 sums and the change log
+
*Update the download page with links, MD5 sums and the change log  
* Post announcements to:
+
*Post announcements to:  
** pioneerspacesim.net news page
+
**pioneerspacesim.net news page (automatic)
** google+
+
**google+  
** spacesimcentral.com forum
+
**spacesimcentral.com forum  
** moddb.com page
+
**moddb.com page  
 +
**Twitter

Latest revision as of 21:47, 2 September 2017

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.


Implement feature

Hack hack hack! This is the fun bit! Its recommended you stay in close contact with the other developers, either via IRC, a WIP Pull Request or the Dev forum, to make sure that your work fits with the rest of the project.

Request merge

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.


Review

Once you've requested a merge someone will review your code or contribution. 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.

Merge

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!


Release process

Once pioneer was released as alphas with freezing period. This changed after alpha33.

If there are changes that warrant it, new things, fixes, then a complete build for Windows and Linux will be run and uploaded (though obviously not if no changes have been made). Version numbers are formatted like YYYYMMDD. So a build for today might be 20170827. The latest build will always be linked from pioneerspacesim.net, and the last week's worth of builds will be archived, just in case. Geraldine also archives a windows build once a month on moddb.

To keep the changes visible, the changelog for the last month is visible on the main page, the G+, Twitter. The full changelog can be found on github.

Of course, the current changelog will always be available from the homepage and in the release archives proper.

This should mean that if you encounter a bug, the fix is available to you in an official, supported build as soon as possible.

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.
  • Upload
  • Update the download page with links, MD5 sums and the change log
  • Post announcements to:
    • pioneerspacesim.net news page (automatic)
    • google+
    • spacesimcentral.com forum
    • moddb.com page
    • Twitter