From 6718ee7b51b95f201c01430573848e2decee3081 Mon Sep 17 00:00:00 2001 From: MotherSphere Date: Wed, 2 Sep 2026 12:57:14 +0200 Subject: [PATCH] fix(release): keep the release drafted until every platform has uploaded MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit softprops/action-gh-release defaults `draft` to false and updates the release it targets rather than only adding files to it. So the first platform to finish undid the draft-hold set two jobs earlier, and every platform after it uploaded into a release that was already at /releases/latest. v0.3.1 went out exactly that way: published carrying Linux and macOS while the Windows build was still compiling. For that window Colony offered an update that Windows users could not install — which is the harm the draft-hold exists to prevent, and it was being undone by the very next job. The canonical template in Project-Colony-Resources already passes `draft: true` here. Grape's copy predates that and had drifted; the rest of the drift is Grape's own — its release-please config-file, the ALSA build deps and a newer rust-cache pin — and stays. `publish` remains what makes a release visible, after it has verified every asset and signature is present. --- .github/workflows/release.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c5ffc3f..79f5d07 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -200,6 +200,15 @@ jobs: - name: Upload to the GitHub release uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2 with: + # Without this the uploader PUBLISHES the release it is uploading to, + # because `draft` defaults to false and the action updates the release + # rather than only adding files. The first platform to finish + # therefore undoes the draft-hold, and the remaining platforms upload + # into a release that is already at /releases/latest. v0.3.1 went out + # that way: published with Linux and macOS while Windows was still + # compiling. `publish` is what makes it visible, once it has verified + # every asset is present. + draft: true tag_name: ${{ needs.release-please.outputs.tag_name }} files: | ${{ matrix.asset }}