Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to wasm-tool's release process #2021

Merged

Conversation

alexcrichton
Copy link
Member

  • Enable releases to happen on release-* branches, not just main
  • PRs to bump versions from release-* branches now have the correct base branch.
  • Logic for publication was moved from .github/workflows/publish.yml to .github/actions/publish-release to be able to share logic with main.yml. This is because releases from main always have the merge queue first, hence the publish.yml workflow, but releases from a release-* branch don't have a merge queue meaning it has to run at the end of normal CI.
  • Some various conditions were tweaked for various conditions to assist with external testing of the release workflow, e.g. dropinng requirements for repos to be in the bytecodealliance organization.
  • The main.yml CI now runs for all pushes to release-* branches, enabling artifacts being built for publication.

* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
@alexcrichton
Copy link
Member Author

This is being done to enable the patch releases on various release branches in PRs right now. In case anyone's curious:

  • Rust nightly changed some code which exposed a preexisting bug in wasm-tools. That caused tests to fail and was fixed in Fix tests on nightly #1999. The exact bug was that derive(PartialOrd) disagreed with impl Ord which manifested in new behavior on nightly.
  • Wasmtime no longer builds on nightly because of this bug. This is because outputs of wit-parser are used in compile-time-assertions in Wasmtime to ensure that size/align agree with Wasmtime's own computation.
  • This means that historical releases of Wasmtime using historical releases of wit-parser will, in the future, cease building with rustc. I figured this is bad enough to warrant patch releases.
  • To handle this I manually created release-* branches and have sent a bunch of PRs.
  • This PR is necessary to actually get the releases to work.

My plan is to land this, backport it to all the release branches, and then actually push through the releases. At the end of all this I plan on yanking all the broken versions as well.

@alexcrichton
Copy link
Member Author

I'll also probably do a proof-of-concept point release from the main branch here to after this merges to make sure that it still works as well.

@alexcrichton alexcrichton requested a review from fitzgen February 5, 2025 14:04
@alexcrichton alexcrichton added this pull request to the merge queue Feb 5, 2025
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
Merged via the queue into bytecodealliance:main with commit ee90e93 Feb 5, 2025
31 checks passed
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
@alexcrichton alexcrichton deleted the new-release-process branch February 5, 2025 16:12
alexcrichton added a commit that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
alexcrichton added a commit that referenced this pull request Feb 5, 2025
* Enable releases to happen on `release-*` branches, not just `main`
* PRs to bump versions from `release-*` branches now have the correct
  base branch.
* Logic for publication was moved from `.github/workflows/publish.yml`
  to `.github/actions/publish-release` to be able to share logic with
  `main.yml`. This is because releases from `main` always have the merge
  queue first, hence the `publish.yml` workflow, but releases from a
  `release-*` branch don't have a merge queue meaning it has to run at
  the end of normal CI.
* Some various conditions were tweaked for various conditions to assist
  with external testing of the release workflow, e.g. dropinng
  requirements for repos to be in the `bytecodealliance` organization.
* The `main.yml` CI now runs for all pushes to `release-*` branches,
  enabling artifacts being built for publication.
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.

2 participants