Skip to content

fix(ci): Create Release tags main's tip at approval time, not the commit it was created for #1634

Closed

Description

@JarryShaw

Create Release run 38008819343 was created for b6b95bc8e ("Bumped version to 1.5.0b9", 2026-10-10). It waited on the github-release approval until 2026-10-13 ~01:38Z, and then tagged main's tip at that moment instead of b6b95bc8e. Both v1.5.0b9 and conda-1.5.0b9+0 point at 2c0008c3c, a commit made 3 days later. That commit's own Unit Tests run was still in progress.

Repro (job 115087308551, "Conda Tag (release)"):

  • It checks out b6b95bc8e, where conda/build is already 0, so the reset commits nothing ("nothing to commit").
  • It fast-forwards b6b95bc8e..2c0008c3c and tags conda-1.5.0b9+0 there.
  • git show 2c0008c3c:conda/build is 3, so the tag labelled +0 sits on a tree that says build 3. The next bump will write 4.
  • The build-0 packages were therefore built with the pins from builds 1–3.

Decision needed:

  1. Tag and build exactly the sha the run was created for, and do the conda/build reset as its own commit on top.
  2. Keep releasing main's tip at approval time, but reset conda/build on that tip, so tag and tree agree.

Activity

  1. added
    fixPull requests that fix a defect (fix: subject prefix)
    ciPull requests that change CI or workflow configuration (ci: subject prefix)
    needs: decisionWaiting on the maintainer to decide — not blocked by other work
    on Oct 13, 2026
  2. moved this to Needs decision in PyPCAPKiton Oct 13, 2026
  3. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    Option 1

  4. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    Taking option 1: Create Release tags and builds exactly the commit the run was created for. The conda/build reset goes on top as its own commit, so the tag, the tree and the built pins agree whenever approval lands. A worker is on it. The already-published v1.5.0b9 and conda-1.5.0b9+0 tags stay where they are; moving them is your call.

  5. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    needs: decisionWaiting on the maintainer to decide — not blocked by other work
    on Oct 13, 2026
  6. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    And I think conda version bumps do not need manual approvals. They can happen automatically by themselves once their build version is bumped.

  7. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    Agreed, and cron-conda.yml already works that way: its build-bump tag and upload jobs name no environment:, so they need no approval. Only a version release through Create Release waits on github-release. Bumps have not been publishing because of the skipped-job cascade in #1632, whose fix is in review. No change is needed in #1634 for this.

  8. added
    needs: decisionWaiting on the maintainer to decide — not blocked by other work
    on Oct 13, 2026
  9. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    #1656 is up and reviewed. It needs your call on the GITHUB_TOKEN release-target question before merge: merge as is, add a PAT, or push the tag with the deploy key. The options are in its body.

  10. moved this from WIP to Needs decision in PyPCAPKiton Oct 13, 2026
  11. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    what needs my decision?

  12. 7 remaining items

  13. moved this from Needs decision to WIP in PyPCAPKiton Oct 13, 2026
  14. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    done

  15. added
    needs: decisionWaiting on the maintainer to decide — not blocked by other work
    on Oct 13, 2026
  16. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    Thanks. Checked through the API:

    • RELEASE_APP_PRIVATE_KEY is in the github-release environment, added 16:16Z.
    • The App's bot is pypcapkit-release[bot], with id 342101269. RELEASE_APP_BOT_ID is now set to that.

    One value I cannot read: RELEASE_APP_CLIENT_ID. The App is private, and gh's OAuth token cannot see a private App's metadata (GET /apps/pypcapkit-release returns 404) or list its installations. Please paste the Client ID here. It is near the top of https://github.com/settings/apps/pypcapkit-release and starts with Iv. It is not a secret, and I will set the variable.

    This token cannot check the installation either. The first approved Create Release run will: its token step fails loudly if the App is not installed on PyPCAPKit.

    Nothing reads these variables until #1656 merges, so there is no hurry.

  17. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    Thanks. RELEASE_APP_CLIENT_ID is now set, alongside RELEASE_APP_BOT_ID=342101269, and the private key is in the github-release environment, so the App side is complete.

    Nothing reads any of these until #1656 merges. That PR is being reworked to mint the token from them, and main is being merged in to clear its conflicts. Its first approved Create Release run is also the check that the App is installed on PyPCAPKit, which this token cannot see.

  18. removed
    needs: decisionWaiting on the maintainer to decide — not blocked by other work
    on Oct 13, 2026
  19. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 13, 2026
  20. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    Verified on the first App-token run, Create Release 38441545640 for 1.5.0b10:

    • The release v1.5.0b10 was created by pypcapkit-release[bot] at target_commitish 85e4198c8. That is the run's own commit, not main's tip 1a307967c, and the tag points there too.
    • The tag push started Create Release 38446956679 with the bot as actor. Every job skipped, and Release status posted the Nothing to release notice.

    That settles the two points the #1656 review left unmeasured: the App-created tag does fire push, and github.actor_id is the bot.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciPull requests that change CI or workflow configuration (ci: subject prefix)fixPull requests that fix a defect (fix: subject prefix)

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions