Skip to content

Development Standards

Emperor Starfinder edited this page Aug 26, 2016 · 3 revisions

Development Standards of the Second Galaxy Development Team

As a team, we take great pride in our work to bring our community a virtual world architecture they can be proud to run for their communities, whether it be an educational institution, a social community, a role play community, a business community or organization, or any other kind of organization. Because we take great pride in our work and believe that our users should not expect any less from us either in both Virtual Universe and our proprietary grid architecture GalaxyGrid, we have set tough standards for the inclusion of code in our code base. This is done to ensure that our code remains stable, straight to the point, and provides a diverse and wide range of features that our community can utilize in their grids.

In order to successfully submit a pull request for our review and potential inclusion the following standards must be met:

NOTE: This applies to all of our repositories!

  1. You must fork a copy of the repository to your Github account. The repository must be the exact name of our repository. and then clone that repository to your pc using your favorite git client (we recommend smartgit)

  2. Edit your code:

a. Add new code in the necessary files at the right place.

b. Add comments to tell us what that code is doing.

c. Do not comment out code without telling us why in a comment.

d. Make sure you do not have unnecessary white spaces in your code. (A whitespace is more then one blank line between two blocks of code)

e. Do not reformat the file. This will be done only by core developers.

f. Test build your code to be sure you have not caused a building error. (Warnings are fine but try to fix these)

g. Test your code and fix any bugs you might have created with your code.

h. Run your newly written or edited code through Coverity to ensure you have not created a new security, CVE, or other kind of leak with your code. (You can obtain a free account at: https://scan.coverity.com/ and just sign in using your Github account) Instructions can be found by running coverity_build.bat which can be found in the repository.

i. If Coverity finds you have caused any problems in your code it will tell you. For the record there are 14 outstanding issues which we are working on. If it tells you that you have created a problem with your code then this needs to be fixed by you before submitting your code via pull request.

j. If you have taken code from another source you need to add a .license file in the license directory with that author's name as the file (example: author.license). The file must contain that authors license and you must also underneath that license list the files where the code will reside (and please include line numbers)

k. Create a branch in your local repository named for the fix or feature your proposing.

l. Create a branch with the same name on your fork of our Github repository. This will ensure your master branch in your fork stays clean and has no conflicts with our master.

m. Commit your changes to the branch in your local repository which you just created.

n. After making a commit in your local repository using your favorite git tool push the commits from this branch to the same branch on your fork of our repository on Github.

o. Log into your Github account via a browser (if you are not already logged in)

p. Go to the repository in the Virtual-Universe organization you are wishing to open a new pull request for. (Note: pull requests proposing new features needs to go to the Virtual-Dev repository).

q. Open a new issue describing the bug you found or the new feature you wish to propose. (You must answer all provided questions or it will be closed immediately with no questions asked)

r. After you have opened an issue on the correct repository, on your Github fork of our repository select the branch you pushed the commit to. Then click the New Pull Request button.

s. This will take you to the page to submit the pull request. Leave the base fork as it is and change the compare master option next to head fork to the branch you pushed your commit to. This will compare and select your commit.

t. Fill out the answers to the questions it asks in the pull request template and provide the link to the issue you just opened and then click the green button which should say Open New Pull Request (it may actually be different depending on when your committing)

u. That is it on your end. A core developer will review the request and your issue ticket which you opened. They may ask questions so you will need to make sure you check each day and respond as quickly as you can with all relevant information they ask you for.

v. In all cases at least 5 of 9 core developers of the Second Galaxy Development Team must test and sign off on your pull request before it can be accepted.

w. If your pull request is accepted the core developer responsible for development oversight of the area that your pull request covers will merge the pull request into the master of the repository and comment the decision of the team on the issue and close the issue. If the pull request is not accepted it will be closed and the reason for it being declined will be posted in the corresponding issue.

  1. Anyone submitting two or more pull requests that ultimately break the code will see their future pull requests declined until they talk to core developers about how they can improve their code.

  2. In the event we receive a communication from another project or proprietary software developer that a pull request potentially infringes on the rights of copyright holders of the original work we will not accept any more pull requests from that user until we have seen valid proof that the copyright holders have in fact found the user did not violate copyrights. Also the user will be required to show core developers extra proof that their pull request does not infringe on copyrights or that they in fact have the proper permissions to contribute the code to us for use in our projects.

  3. If you are unsure about your code and want to receive guidance you can contact us via IRC in the #galaxyfutures channel on Freenode. Remember if your unsure it is better to seek help and guidance before submitting a pull request this way your code will have a better chance of being accepted.

  4. We check all code that is submitted to us. If your code is found to be a malicious hack or virus of any kind we will reject it immediately and no further pull requests from you will be accepted until we receive the proof we deem necessary to satisfy us that you will not be contributing code that puts our users at risk.

We reserve the right to update or change our development standards at any time without prior notice being provided to you. It is up to you to ensure you are familiar with our current standards.

Clone this wiki locally