Plans for CI

Plans for CI

Versioning

Number: X.Y.Z

CI will automatically handle versioning, committing it directly to the main branch as part of the automated release pipeline ("Tuesday Snap"). For Patch Tuesday, it sets Z to zero and increments Y; X remains unchanged. For emergency patches, only Z is incremented, leaving the others untouched. The version is automatically incremented, pushed to main by CI, and then tagged and released.

Patch Notes

Patch notes will be auto-generated, with PRs checked against a standard format. PR titles should start with one of these words (in this order):

  • Stabilised
  • Added
  • Updated
  • Improved
  • Fixed
  • Removed
  • Discontinued
  • Miscellaneous
PR titles can be prefixed with (EXPERIMENTAL!) to exclude support obligations, or (Internal) or (Tidy) to bypass checks and not be included in the notes. This acts as a PR check and will fail if not met.

Develop vs Main

Develop is the development branch, with nothing committed directly to main except for merges and bindings regeneration. On the first Tuesday of each month, CI opens a "develop PR" to merge develop into main (so we don't forget). We can reject this PR but we must remember to open one later. Old CI branches (without an associated open PR) are removed every Monday. Each main branch commit is automatically merged onto develop, raising an issue if not possible.

Fast Track

All PRs must target develop, but with Silk.NET team approval, a PR can be targeted at main and labelled "fast-track." This requires majority maintainer approval, only for extenuating circumstances.

Emergency Patches

PRs targeting main can be marked with the "emergency-patch" label. Upon majority approval, an emergency patch PR is merged and tagged.

Bindings Regeneration

CI regenerates bindings every Thursday, opening a PR for each. It updates submodules to the latest tags unless configured differently. If regenerated bindings appear faulty, a maintainer can manually handle it by closing the PR.
Was this page helpful?