Skip to content

Conversation

@greenhat
Copy link
Contributor

@greenhat greenhat commented Oct 28, 2025

Close #726

The new release process will be the following:

Release of the Miden Compiler

  1. Merging to main will create a new release PR containing any unreleased changes.
  2. Optional. Change the proposed crate version, CHANGELOG edits.
  3. The release PR gets merged to main when we are ready to publish the release.
  4. The crates are published to crates.io, a new git tag is created, as well as a GitHub release
  5. A job is run to pre-build the executable for our supported targets and upload them to the created Github release.
  6. Merge the main branch back to the next branch.

Release of the Miden SDK crates

  1. Create a release PR naming the branch with the release-plz- prefix (its important to use this prefix to trigger the crate publishing on CI in one of the next steps).
  2. Bump the SDK crates versions and update the CHANGELOG.
  3. Merge it into the main branch.
  4. The CI will automatically run release-plz release after the release PR is merged to publish the new versions to crates.io.
  5. Set a git tag for the published crates to mark the release.
  6. Make a Github release.
  7. Merge the main branch back to the next branch.

Implementation details:

  1. Suppress git tag and github release creation for all the crates except midenc and miden(SDK).
  2. In uploading-artifacts CI job find the release tags for midenc (to ignore SDK release).

The new release process will be the following:

Release of the Miden Compiler

1. Merging to `main` will create a new release PR containing any unreleased changes.
2. Optional. Change the proposed crate version, CHANGELOG edits.
3. The release PR gets merged to `main` when we are ready to publish the release.
4. The crates are published to crates.io, a new git tag is created, as well as a GitHub release
5. A job is run to pre-build the executable for our supported targets and upload them to the created Github release.
6. Merge the `main` branch back to the `next` branch.

Release of the Miden SDK crates

1. Create a release PR naming the branch with the `release-plz-` prefix (its important to use this prefix to trigger the crate publishing on CI in one of the next steps).
2. Bump the SDK crates versions and update the CHANGELOG.
3. Merge it into the main branch.
4. The CI will automatically run `release-plz release` after the release PR is merged to publish the new versions to crates.io.
5. Set a git tag for the published crates to mark the release.
6. Make a Github release.
7. Merge the `main` branch back to the `next` branch.

Implementation details:

1. Suppress git tag and github release creation for all the crates
   except `midenc` and `miden`(SDK).
2. In `uploading-artifacts` CI job find the release tags for `midenc`
   (to ignore SDK release).
@greenhat
Copy link
Contributor Author

@bitwalker The new CI jobs need write permission. I don't have access to manage those. Could you check if you can set those?

@greenhat greenhat requested a review from bitwalker October 28, 2025 10:05
Copy link
Collaborator

@bitwalker bitwalker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we split out the SDK into a new repo now? We're at the point where we're already effectively managing it and the compiler separately in the same repo, it'd probably be simpler going forward to use separate repos. What do you think?

Copy link
Collaborator

@bitwalker bitwalker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Marking this approved to avoid holding things up, but I'd encourage splitting the SDK out of this repo at the earliest opportunity

@greenhat greenhat marked this pull request as draft November 3, 2025 10:01
@greenhat
Copy link
Contributor Author

greenhat commented Nov 3, 2025

Should we split out the SDK into a new repo now? We're at the point where we're already effectively managing it and the compiler separately in the same repo, it'd probably be simpler going forward to use separate repos. What do you think?

I'd like to wait for the automated bindings generation. Without it, the manual bindings writing process involves changes to the frontend (MASM signature, transformation strategy, etc.) for every function. So it'd be painful to do it in two repos simultaneously.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement release workflow as in miden-debug repo

3 participants