EPrints User Group

Community contributions to the EPrints platform

Follow me on GitHub


The aim of http://github.com/eprintsug/ is to bring together EPrints-related development projects in a single place.

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 git@github.com: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/