Skip to content

cctbx contributors guide

Aaron S. Brewster edited this page Aug 6, 2018 · 2 revisions

As discussed at the Gordon Research Conference for Diffraction Methods in Structural Biology, 07/30/18, the following guidelines are agreed upon for developers wishing to contribute code to cctbx:

  • Cctbx is open source.
  • We welcome third party contributions, but note that there is a cost for managing third party contributions.
  • Cctbx is not a free-for-all.
  • Contributors should be encouraged to review their plans for contributions before doing a large amount of work and submitting a pull request, but that shouldn't preclude users from submitting requests.
  • Interface changes and other breaking changes should be communicated to the bulletin boards (cctbxbb@phenix-online.org for example).

Expectations for contributions

  • Include documentation: docstrings for functions, in-line comments, and help strings for command line programs.
  • Include tests. Testing includes unit tests (individual functions) and integration tests (full program), and possibly multiple of each with different inputs.
  • Run the cctbx tests. If appropriate, run tests from other projects affected by the new code.
  • Do not add external dependencies without discussion.

Expectations for developers

  • We will respond to contributions, at least with "I don't have time to review this right now".
  • We can deny pull requests, but if we do so, we should do so with constructive feedback, following consistent rules.
  • The build meeting team will review tickets and pull requests to ensure regular feedback.

See cctbx-Developer-Guidance for more details.