loading

v32.1.1

select option

Ink Releases

How the ink release process works

Every week on Thursday at midnight, CircleCI automatically creates the weekly release candidate PR, as well as PRs to install that week’s release candidate into each downstream depenenent (fund-admin, carta-web, etc). Though the PRs are created on Thursday, they still need to be tested, and are generally not merged until the following Monday.

On each step of a new release, the CI posts on Slack and we can follow along through our internal ink team channel, through the #ink-releases channel and through the #ink channel on Slack itself.

Weekly testing session

On Thursday morning, the team runs our weekly testing session, in which we validate that all of the PRs going out in that week’s release are working and not causing any breaking changes. In addition to testing the RC, it’s important to check each of the downstream PRs to make sure tests are passing. If tests are failing (in particular, Jest and Typescript checks), that is a good indication that something in the RC is breaking and needs to be debugged. It is the responsibility of whoever merged the breaking change to debug and fix whatever is broken.

If you merge a big change from outside the ink team into our library you'll probably be invited to help us test your change on Thursday.

Pushing fixes up to the RC

If you discover an issue with the RC during the testing session, you should create a PR to fix the issue, merge it into master, and then cherry-pick the commits into the RC branch.

Debugging downstream PRs

If something you merged is causing downstream issues in Ink’s dependents, there are two possible situations at hand:

  • Your code caused a breaking change, and you need to push a fix to the RC to solve it.

  • Your code did not cause a breaking change, and something about the test suite in the downstream dependent is wrong.

Either way, it is ink’s responsibility to fix the issue in time for the Monday release schedule.

If the issue is with the RC, follow the steps on pushing fixes up to the RC. We cannot start the release until tests are passing on all downstream PRs.

If the issue is with the downstream dependent’s test suite, push fixes directly to the downstream branch.

If you don't have push access to the downstream dependents, just reach out to the ink team.

Running the release

Once the RC has been thoroughly tested, and all tests are passing on the downstream dependents and the RC, it’s time to run the release itself. This is done on monday.

All downstream PRs need to be merged by the respective teams. A message will be posted on the ink channel whenever a new release is out.

Release versioning

We use Semver versioning to version our releases.

Using the labels on PRs merged into master from Thursday to Wednesday the next week, CI automatically decides how to update the version of the new Release.

To better understand how to version your specific release read the Labels to understand which versioning labels to add to your PRs.

Is this page helpful?