Contributing to ArchivesSpace
Reporting Bugs
Always update to the most recent master release; the bug may already be resolved.
Search for similar issues in Pivotal Tracker -- it may already be an identified problem.
If this is a bug or problem that requires any kind of extended discussion, post to the mailing list first.
If this is a bug or problem that is clear, simple, and is unlikely to require extended discussion -- open an issue in Pivotal Tracker including steps to reproduce the bug, error messages, screenshots, URLs, etc.
If possible, submit a Pull Request with a failing test. If you'd rather take matters into your own hands, fix the bug yourself (jump down to the "Contributing Code" section).
When the bug is fixed, we will do our best to update the GitHub issue with a resolution.
Requesting Improvements
Feature requests can be made via Pivotal Tracker or the mailing list.
Search Pivotal for similar feature requests. It's possible somebody has already asked for this feature or provided a pull request that we're still discussing.
Provide a clear and detailed explanation of the feature you want and why it's important to add. The feature must apply to a wide array of users.
For smaller, more targeted "one-off" features, you might consider writing a plugin for ArchivesSpace. You may also want to provide us with some advance documentation on the feature, which will help the community to better understand where it will fit.
Contributing Code
Make sure that you have completed an Individual Contributor License Agreement, or that your institution has completed an Corporate Contributor License Agreement. (NOTE: this is not strictly necessary, though it is recommended, for contributions to ArchivesSpace Labs code repositories.)
Find or create a bug report or feature request ticket in Pivotal Tracker or GitHub (to make sure you’re not duplicating work and document the intent of your contribution). It helps to explain both the existing behavior and the desired behavior that your change will implement.
Set up a GitHub account if you have not done so before.
Fork the ArchivesSpace repository on GitHub.
Create a feature branch.
Make changes in your fork. We advise contributors to follow these guidelines to expedite the contribution review process.
Follow established style guidelines
RSpec: http://betterspecs.org/
Include unit tests sufficient to cover the feature(s) you add or bug(s) you fix, and make sure the test suite passes. (Can we rely upon Travis or a Jenkins instance for this, or should we suggest that contributors run tests locally?)
If you’re adding a feature or otherwise changing documented behavior, modify the documentation to reflect your changes.
Once your work is done, squash the commits in your branch — see One Commit per Pull Request for some guidelines — and rebase it on the latest in the upstream master branch. We appreciate succinct but explanatory commit messages.
Push your updated branch to your fork.
Create a Pull Request on GitHub.
Respond to feedback as the community reviews your contribution.
Developer Resources
Pivotal Tracker: https://www.pivotaltracker.com/projects/386247
ArchivesSpace Confluence Wiki: ???
Building ArchivesSpace: https://github.com/archivesspace/archivesspace/blob/master/build/README.md
Jenkins Continuous Integration: http://54.187.182.145:8080/job/ArchivesSpace/
Developer screencasts: http://www.youtube.com/playlist?list=PLJFitFaE9AY_DDlhl3Kq_vFeX27F1yt6I
JSON schema: https://github.com/hoxworth/json-schema