Skip to content

Conversation

@greenhat
Copy link
Contributor

@greenhat greenhat commented Oct 28, 2025

Close #726

This PR preserves the existing CI publish job to handle the SDK release (until it moves to a separate repo) and introduces the new release process for the compiler.

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 against the next branch naming the branch with the release-plz- prefix (its important to use this prefix to trigger the crate publishing on CI in the later step).
  2. Manually bump ALL the SDK crate versions and update the sdk/sdk/CHANGELOG.md
  3. Review the changes in the release PR, and merge it into the next branch.
  4. The CI will automatically run release-plz release after the release PR is merged to publish the new versions to crates.io.

Implementation details:

  1. Suppress git tag and github release creation for all the crates except midenc.
  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.

@greenhat
Copy link
Contributor Author

greenhat commented Nov 3, 2025

I converted this PR back to the draft since I got the Miden SDK release workflow wrong. It would not work. We would not be able to distinguish SDK vs. compiler release workflows.
I suggest that along with the new workflow we leave the old workflow and use it for Miden SDK releases only. They should not conflict with each other.

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 greenhat force-pushed the greenhat/i726-release-as-in-miden-debug branch from ccdacb3 to e0becac Compare November 4, 2025 08:36
@greenhat greenhat marked this pull request as ready for review November 4, 2025 10:18
@greenhat greenhat merged commit 9f0a1e4 into next Nov 4, 2025
11 checks passed
@greenhat greenhat deleted the greenhat/i726-release-as-in-miden-debug branch November 4, 2025 10:20
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