View Source

h1. Overview
One of the main goals of the Open Planets Foundation is to *SUPPORT* the development of maintainable "turn-key" digital preservation software. To this extent we recommend that a simplistic well utilised strategy be employed when developing software, keeping use of many disparate services to a minimum where possible.

h2. Sign-Up with OPF Labs & GitHub
{tip:title=OPF Development Sign Up}
You'll need two accounts. In order to edit this Wiki you'll need an OPF Labs account. To join the OPF's GitHub community you'll also need a GitHub Account.
* To join github, sign-up here: [|]
* To join OPF Labs, sign-up here: [|\!default.jspa]

After you've done this, let admin ( a t ) know your username(s), and he will add you to the appropriate groups so that you have the permissions you need.

h1. OPF Labs Resources

The OPF development environment consists of:

* The [OPF wikis |]
* Public code repositories on [Github |]
* Continuous integration for start up projects using [Travis |]
* Continuous integration for OPF supported projects on [OPF Jenkins |]
* Issue tracking using [GitHub Issues |]
* Help with [software development best practise | Software Development Guidelines]
* [The Software Curation Process]

h2. The OPF Wikis
The OPF provide this Confluence Wiki as a resource for collaborative documentation, you need an account to add and edit content. You may need particular group permissions to see some of the Wikis restricted membership spaces for individual projects.

h2. Source Code Management, Git & GitHub
The OPF recommends using [Git|], a distributed revision control system and [GitHub|], a web host for Git repositories to manage source code.
{info:title=The OPF's GitHub Guide}
Please read the [OPF's GitHub Guide|GitHub Guide], even if you're unfamiliar with Git or GitHub. It covers joining the OPF's GitHub community, and best practices for setting up and managing repositories.

h2. Continuous Integration, Travis & Jenkins
{note:title=ToDo CI documentation}
Document the OPF's combined use of Travis CI and the Jenkins server to provide continuous integration services.
* Travis is a free CI service for GitHub hosted projects and uses VMs to build open source projects. It might not be suitable for large projects due to resource descriptions but will be suitable for most start up projects.
* The OPF also provides a Jenkins server that can be used for more established projects. A project must build on Travis and a move to the Jenkins software is part of the best practise and curation process.

h2. Issue Tracking, GitHub Issues
{info:title=GitHub Issues are Public}
Please remember that your GitHub Issues can be read by anyone, whether they have a GitHub account or not, and that any logged in GitHub member can raise an issue.
The OPF recommends the use of [GitHub Issues |] to:
* track issues raised by/for project members during development
* provide development road map for the project
* track bug reports and feature requests from external users

h2. The OPF Software Development process
{note:title=ToDo Overview of dev process}
To Cover:
* automated project pages generated from GitHub, Travis
* managing versions and tags
* packaging and distribution
The OPF Build server and website have a series of software pages that are automatically populated from content in GitHub, so *you* are in control of your piece of software.

To find out more about getting your piece of software published via the Open Planets Foundation website, please read the [Software Development Guidelines]

h1. Resources

h2. Mailing Lists & Downloads
Mailing lists and downloads are hosted in a number of places.
* e.g. Planets developers should join [|]

h2. Presentation on Developing with OPF
[Slides from Webinar on Developing With OPF given 29th April 2013|Webinar 20130429]