Skip to content
This repository has been archived by the owner on Aug 19, 2018. It is now read-only.

Contributing

Ricky Curtice edited this page Sep 29, 2015 · 2 revisions

Want to contribute? Great! First, read this page.

What to contribute

There are many places you can help:

  • Compiling and testing on unsupported platforms - Linux support is a big thing for us!
  • Documentation. Both this wiki and the in-source documentation are places that are great ways to be useful and get familiar with the project's core.
  • Finding low-hanging fruit, ie. easy things to fix, in the code and fixing it!
  • Picking a project from the future section of the roadmap and helping it come to fruition - just let us know that you want to work on it.
  • and more!

Before you contribute

Before you start working on a larger contribution, you should get in touch with us first through the issue tracker with your idea so that we can help out and possibly guide you. Coordinating up front makes it much easier to avoid frustration later on.

Code reviews

All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose.

Coding style

Please make sure to match the style of the existing code.

New code is to be written in the Visual Studio style:

  • Indentation is 4 spaces, no tabs.
  • End of line marker is the singular newline: eg: '\n'
  • Encoding is UTF-8 with or without BOM.
  • U.S. based spelling: initialize, ok; initialise, no. I won't go into which is more correct for English, or the historical view, but just go for it for this project.
  • Braces on new lines, with few exceptions.
  • et cetera.

File headers

All source code files in the Halcyon project must start with the following header.

/*
* Copyright (c) 2015, InWorldz Halcyon Developers
* All rights reserved.
* 
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* 
*   * Redistributions of source code must retain the above copyright notice, this
*     list of conditions and the following disclaimer.
* 
*   * Redistributions in binary form must reproduce the above copyright notice,
*     this list of conditions and the following disclaimer in the documentation
*     and/or other materials provided with the distribution.
* 
*   * Neither the name of halcyon nor the names of its
*     contributors may be used to endorse or promote products derived from
*     this software without specific prior written permission.
* 
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/