Skip to content

Git process for contributing to Scilla

Anton Trunov edited this page Jul 8, 2022 · 9 revisions

These instructions are for the Scilla team and may not apply to community contributions.

  • Create a new branch to work on.
    • If the feature / bug is associated with a GitHub Issue, prefix your branch name with the issue number. For example 385_cashflow_adts.
    • If there is no associated GitHub Issue, don't worry about prefixing anything. Just choose a meaningful name for the branch
  • After the bug / feature is complete, create a pull request on GitHub.
    • If the PR has an associated Issue and if merging the PR should close the Issue, add the comment "resolves #XYZ" in the PR description (where XYZ is the Issue number). This will automatically close the Issue once the PR is merged.
  • Features and fixes should be in separate PRs. Please do not mix these "while we are at it". Mixing features and fixes makes it harder to cherry-pick commits for bug-fix releases.
  • Fix formatting issues. A Makefile target is provided to run ocamlformat and make the code standard conformant.Run make fmt to automatically achieve this. Non-conformant code will be flagged as errors by the CI.
  • Reviewers will be added automatically basing on .github/CODEONWERS file
  • Once the PR is approved by a reviewer you can merge it. IMPORTANT: When merging the PR, be sure to select "Squash and Merge" in the GitHub UI.

Squash and Merge

  • In the rare scenario that you have another feature branch forking from the one you're about to merge, and want to avoid conflicts that will arise out of "squash-and-merging", you may do a normal merge. This is NOT RECOMMENDED.
  • Once your PR is merged, delete the branch you were working on. There is a button to delete the branch right after you merge. If you missed it, you can go to "branches" on the main repo page and delete it there.