Skip to content

How to contribute

Gian-Marco Rignanese edited this page Jul 18, 2020 · 8 revisions

Discuss your issue

In order to amend the OPTIMADE specification, please first open an issue describing your proposed changes.

If your issue requires broad discussion, please notify the OPTIMADE mailing list. If you are not a member, please contact one of the contributors to bring your issue to the lists attention.

Submit proposed changes

Once it is clear how to proceed, submit your proposed changes:

  1. Fork this repository
  2. Check out the develop branch (already checked out by default)
  3. Create a new branch, e.g. issue_35_structure_symmetry
  4. Create a pull request with a brief description of your changes
  5. For pull requests addressing issues that require discussion (not bug/minor-fix types), notify the OPTIMADE developer email lists to allow for feedback on the PR.

In order to be accepted into the specification,

  1. your changes will need to be reviewed and approved by at least two OPTIMADE members
  2. your changes will remain unmerged for a grace period of 2 weeks (after the email sent to the mailing list, described in the last point above) in order to allow for comments from other OPTIMADE members.
  3. If no opinions against it have been raised, the Pull Request can be merged. If contrary opinions are raised, either they can be raised by adaptations of the PR, or the discussion needs to be brought to the following OPTIMADE meeting.

Releasing a new version

At any time, the master branch contains the current official version of the OPTIMADE specification.

Every now and then, the develop branch is merged into the master branch, including the latest changes. Whenever this happens, the OPTIMADE version number is increased following semantic versioning.

Also, the version in develop should always have an alpha prefix (e.g. vX.Y.Za), and when merging into master one should

  • create a release_vX.Y.Z branch out of develop
  • change the version number from release_vX.Y.Za to release_vX.Y.Z
  • merge into master
  • merge master into develop
  • immediately change the release version from release_vX.Y.Z to release_vX.Y.(Z+1)a