This is a rough, early draft of the CollectionSpace Community Contribution process: the process by which CollectionSpace community members can contribute work that advances the project, customizes it for various domains, and the like.
This draft is based on rough notes and a whiteboard sketch from the CollectionSpace Developer/Deployer meeting of February 8-10, 2012.
Examples of community contributions
Community contributions may consist of:
- Source code additions or modifications, in Java (Application and UI layers) or JavaScript (UI layer).
- Configuration additions or modifications, such as changes to configuration files in any of CollectionSpace's layers.
- Utility scripts.
- Documentation
- Best practices notes.
The mechanics of contributing
CollectionSpace has recently moved its source code into public repositories on github.com. There are three repositories there, one for each of CollectionSpace's three layers:
- application
- services
- ui
For most code and configuration contributions you may wish to make, we encourage you to use GitHub to fork ('clone') these repositories, and then use git
to create a local feature branch containing your changes, in each relevant layer. A core project developer will then create corresponding feature branch(s) in the relevant layers in the main CollectionSpace repository, to which you can issue pull requests.
If you have made your configuration changes in the CollectionSpace mini-build, you can first copy your added or changed files from the mini-build into your local feature branches for the relevant layer(s). (A future version of the mini-build may offer tools to make this more convenient.)