This documentation covers the latest release of Islandora 7.x.
If you are reading this document then you are interested in contributing to Islandora, and that's awesome! All contributions are welcome: use-cases, documentation, code, patches, bug reports, feature requests, etc. You do not need to be a programmer to speak up!
We also have an irc channel -- #islandora -- on freenode.net. Feel free to hang out there, ask questions, and help others out if you can.
Islandora Committers Calls happen every Thursday at 2PM EST. The meetings are generally held on Skype, and you can join the calls by sending a request to email@example.com.
You can contribute documentation in two different ways. One way is to join the Documentation Interest Group. Another way is to open an issue. You will need a JIRA account to do this. If you don't have one, you can sign up here. Set the Issue Type to "Documentation".
In order to help us understand the feature request, it would be great if you could provide us with a use case:
|Title (Goal)||The title or goal of your use case|
|Primary Actor||Repository architect, implementer, repository admin, user|
|Scope||The scope of the project. Example: architecture, access|
|Level||The priority the use case should be given; High, Medium, Low|
|Story||This is a user story.|
To report a bug you should open an issue that summarizes the bug. Set the Issue Type to "Bug".
In order to help us understand and fix the bug it would be great if you could provide us with:
Feel free to search the issue queue for existing issues (aka tickets) that already describe the problem; if there is such a ticket please add your information as a comment.
If you want to provide a pull along with your bug report:
That is great! In this case please send us a pull request as described in section Create a pull request below.
Islandora releases occur twice yearly, at the end of April and October. Two to three months before a release, a Call for Volunteers will be issued across Islandora communication channels (website, Twitter, listservs). The Release team consists of both developers and end-users who fix bugs, test fixes, verify improvements and new features; update documentation; and review README and LICENSE files. A Release VM is issued with each release so that testers can have a stable, easy-to-deploy environment in which to work.
To join an Islandora Release Team, sign up for one or more modules in any of the following roles:
Before you set out to contribute code you will need to have completed a Contributor License Agreement or be covered by a Corporate Contributor Licencse Agreement. The signed copy of the license agreement should be sent firstname.lastname@example.org
If you are interested in contributing code to Islandora but do not know where to begin:
In this case you should browse open issues.
If you are contributing Drupal code, it must adhere to Drupal Coding Standards; Travis CI will check for this on pull requests.
Contributions to the Islandora codebase should be sent as GitHub pull requests. See section Create a pull requestbelow for details. If there is any problem with the pull request we can work through it using the commenting features of GitHub.
For larger code contributions, please use the following process. The idea behind this process is to prevent any wasted work and catch design issues early on.
Developer questions? We have a lot of excellent developer documentation that can be found here.
All JIRA issues should be worked on in separate git branches. The branch name should be the same as the JIRA issue number, including all-caps, so ISLANDORA-153, ISLANDORA-118, etc.
git checkout -b 7.x-ISLANDORA-977 or
git checkout -b 7.x-1.4-ISLANDORA-977
Take a look at Creating a pull request. In a nutshell you need to:
ISLANDORA-123: ...). The branch name should also correspond to the JIRA issue number.
You may want to read Syncing a fork for instructions on how to keep your fork up to date with the latest changes of the upstream (official)
Community members who have push/merge permissions on a repository should never push directly to a repo, nor merge their own pull requests.
The pull request process will roughly look like this:
git remote add islandora email@example.com:Islandora/islandora_checksum.git
git pull islandora 7.x
git push origin 7.xand issue a pull request on 7.x
git fetch --all
git checkout 7.x-1.4if that does not work,
git checkout islandora/7.x-1.4then
git checkout -b 7.x-1.4
git push origin 7.x-1.4and issue a pull request on 7.x-1.4
The Islandora Foundation requires that contributors complete a Contributor License Agreement or be covered by aCorporate Contributor Licencse Agreement. The signed copy of the license agreement should be sent firstname.lastname@example.org. This license is for your protection as a contributor as well as the protection of the Foundation and its users; it does not change your rights to use your own contributions for any other purpose.