Join the team
Everyone with an interest in EPrints development is welcome to join the user group. You don't have to join in order to contribute, but we'd love to have you on board - please contact @cziaarm or @jesusbagpuss.
How to contribute
We want to make it as simple as possible for everyone to contribute to EPrints UG git projects.
Therefore there are only 2 "rules":
1) Any code committed to the master branch should be deployable
Some institutions pull changes directly from github into production, so don't commit anything to master which you don't think is deployable - in other words don't commit anything half-finished or "in progress".
As a general rule of thumb:
- Minor bug fixes and changes can be committed directly to master
- Anything else should be merged via a pull request - see (2)
2) Pull requests must be approved by someone else in the community before merging
If you want to do anything other than a minor bug fix or change, create a branch or a fork (give your branch a descriptive name so other people in the community can see what you're working on). When the work is completed, or you have reached a suitable milestone, create a pull request.
Invite others in the community to take a look at your pull request - they can make comments and suggest changes or tweaks, all within the pull request. When you get the thumbs up, merge it!
Working with Bazaar modules
Many EPrints UG git projects are EPrints modules - their maintainers use git to manage the module code which is then packaged and released via the EPrints Bazaar http://bazaar.eprints.org/. However if you need the very latest code or plan to contribute, you can get the module code directly from github.
Deploying a Bazaar module from github
Assuming you already have EPrints installed in /opt/eprints3 the normal steps are:
cd /opt/eprints3 git clone firstname.lastname@example.org:eprintsug/foo.git lib/epm/foo tools/epm link_lib foo tools/epm enable REPOID foo tools/epm link_cfg REPOID foo
Then whenever you need to get the latest changes just run the following:
cd /opt/eprints3/lib/epm/foo git pull cd /opt/eprints3 tools/epm link_lib foo # in case any new files were added to 'lib' tools/epm enable REPOID foo # in case any new files were added elsewhere tools/epm link_cfg REPOID foo
Always consult the module's README for additional instructions.
Contributing to a Bazaar module
This example assumes that you are a member of the EPrints UG on github - see Join the Team above.
As per our house "rules" (see How to Contribute) you will most likely contribute changes via a pull request. Assuming the module has been deployed (see above) use the following steps to create a new branch for your changes. Remember to use a descriptive branch name so that others can see what you are working on.
cd /opt/eprints3/lib/epm/foo git checkout -b add-bootstrap-styling-to-workflow-buttons
Make your changes, committing as you go. When you are ready to have your changes considered for inclusion in the release version of the module log into github and create a pull request https://help.github.com/articles/creating-a-pull-request/