# Contributing to Blacklight Blacklight is a collaborative, open source project produced by developers from many diverse organizations. The Blacklight developers want to create an out-of-the-box framework that is easy to install and get started with, both as a service to the community and in the interests of our own institutions in creating a sustainable project and product. Development is largely motivated by the needs of each developer’s organization, and we work on the shared project together so we can benefit from the community’s development efforts, experiences building discovery systems, and shared problem solving. We always welcome contributions from the community, especially to add new features, address bugs or defects, and clarify existing code for future developers. ## Adding a ticket Let us know you're interested in working on a feature by filing a ticket in our [issue tracker](https://github.com/projectblacklight/blacklight/issues). ## Making Your Changes * Fork the project * Start a feature/bugfix branch * Commit and push until you are happy with your contribution * Make sure to add tests for it. This is important so we don't break it in a future version unintentionally. * After making your changes, be sure to run the [Blacklight tests](https://github.com/projectblacklight/blacklight/wiki/testing) to make sure everything works. * Submit your change as a [Pull Request](https://help.github.com/en/articles/about-pull-requests). ## Pull Requests and Code Review - Pull requests must be reviewed and approved by one non-author with write-permissions - If additional code changes are made after approval, another approval (from the same or another qualified person) is required. - A reviewer who has approved a PR but has not merged it should provide a comment (e.g. "This looks good, I'm just waiting for Travis to build", "This is a breaking change. I would like at least one more reviewer.") - An approved PR may be merged by the reviewer, the author, or another committer - Additional discussion and feedback by non-maintainers is heartily encouraged. ## Support If you are interested in working on the Blacklight plugin, but want guidance or support, please send an email to our [Blacklight-development mailing list](http://groups.google.com/group/blacklight-development) and we'll be glad to help. The #blacklight channel on [code4lib Slack](https://code4lib.org/irc/) is another active forum for informal discussion and troubleshooting. ## Becoming a Committer Anyone can contribute to Blacklight using pull requests, the issue tracker, and being active on the mailing list and IRC channels. Being a contributor means that you take an active interest in the project and contribute regularly in some way, ranging from asking sensible questions (which documents the project and provides feedback to developers) to providing new features as patches. If you become a valuable contributor to the project you may be invited to become a committer. Blacklight code contributors become committers after being sponsored by one of the current active committers. The committers will take an Apache-style (+1/0/-1) vote to elevate them, and then a formal invitation will be extended to the contributor. Committers should be: - technically adept - constructive, positive members of the Blacklight software community - committed to producing useful, practical code for the community You're expected to: - contribute patches and new functionality to Blacklight and other shared development efforts (RSolr, Blacklight plugins, etc) - actively participate in technical discussions on the email list, IRC, and github - answer user support questions via the various channels - review pull requests from fellow committers and the community - test-drive new release candidates against your own institution's Blacklight applications - participate in regular committer meetings, usually in the form of conference calls, to coordinate development & direction