Skip to content

Conversation

@BYK
Copy link
Member

@BYK BYK commented Jan 9, 2026

Summary

This PR migrates from the deprecated action-prepare-release to the new Craft GitHub Actions.

Changes

  • Migrated .github/workflows/release_binary.yml to Craft reusable workflow
  • Updated .craft.yml with versioning.policy: calver

Documentation

See https://getsentry.github.io/craft/github-actions/ for more information.

@BYK BYK requested a review from a team as a code owner January 9, 2026 17:57
This PR migrates from the deprecated action-prepare-release to the new
Craft GitHub Actions (reusable workflow or composite action).

Changes:
- Migrate .github/workflows/release_library.yml to Craft reusable workflow
@BYK BYK force-pushed the ci/migrate-to-craft-action branch from 64b9e3e to 1736a75 Compare January 9, 2026 17:57
@github-actions
Copy link

github-actions bot commented Jan 9, 2026

Semver Impact of This PR

🟢 Patch (bug fixes)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


New Features ✨

  • (eap) Add support for native scalar arrays by Dav1dde in #5394

Bug Fixes 🐛

  • (store) Flip byte order of UUIDs by jjbayer in #5526

Build / dependencies / internal 🔧

  • (deps) Update rdkafka to 0.38 with librdkafka 2.10 by Dav1dde in #5523
  • (profile-chunks) Move profile chunks to new processing pipeline by Dav1dde in #5505
  • (release) Switch from action-prepare-release to Craft by BYK in #5527
  • (server) Return status code 413 if envelope is rejected due to size limits by Dav1dde in #5474
  • (spans) Add additional tags to usage/count per root by Dav1dde in #5511

🤖 This preview updates automatically when you update the PR.

BYK added 2 commits January 9, 2026 23:04
The previous migration incorrectly removed the GitHub App token
authentication step. This commit restores it by switching to the
composite action pattern which preserves the auth flow.
The previous migration incorrectly removed the GitHub App token
authentication step. This commit restores it by switching to the
composite action pattern which preserves the auth flow.
Comment on lines +1 to +17
name: Changelog Preview
on:
pull_request:
types:
- opened
- synchronize
- reopened
- edited
- labeled
permissions:
contents: write
pull-requests: write

jobs:
changelog-preview:
uses: getsentry/craft/.github/workflows/changelog-preview.yml@v2
secrets: inherit
Copy link
Member

Choose a reason for hiding this comment

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

I don't think we want this, also it does not use the changelog.md we actually curate.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah this only makes sense if you are using automated changelogs. Happy to remove but I also recommend giving automated changelogs a shot. It allows curation too: https://getsentry.github.io/craft/configuration/#custom-changelog-entries-from-pr-descriptions

Copy link
Member

Choose a reason for hiding this comment

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

I am interested about the automated snapshots, but I'd like to review/look into that separately. From your presentation it sounds like the automated changelogs can possibly do what we're interested in now, but we still have a few workflows tied to the manual process.

Comment on lines 41 to 44
with:
version: ${{ github.event.inputs.version }}
force: ${{ github.event.inputs.force }}
version: ${{ inputs.version }}
force: ${{ inputs.force }}
calver: true
Copy link

Choose a reason for hiding this comment

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

Bug: The release_binary.yml workflow passes calver: true as a parameter, but the required versioning.policy: calver is missing from the corresponding .craft.yml configuration file.
Severity: HIGH

🔍 Detailed Analysis

The pull request description states that .craft.yml was updated with versioning.policy: calver, but this change is not present in the code. Instead, the release_binary.yml workflow passes calver: true as a parameter to the getsentry/craft action. It is unconfirmed whether the action supports this parameter. If the action requires this configuration in .craft.yml, the binary release process will likely fail or use an incorrect versioning scheme, as the necessary configuration is missing.

💡 Suggested Fix

Verify if the getsentry/craft action supports the calver: true input parameter. If not, add versioning.policy: calver to the root .craft.yml file as described in the PR description and remove the calver parameter from the workflow file to ensure the release process uses the correct versioning.

🤖 Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: .github/workflows/release_binary.yml#L41-L44

Potential issue: The pull request description states that `.craft.yml` was updated with
`versioning.policy: calver`, but this change is not present in the code. Instead, the
`release_binary.yml` workflow passes `calver: true` as a parameter to the
`getsentry/craft` action. It is unconfirmed whether the action supports this parameter.
If the action requires this configuration in `.craft.yml`, the binary release process
will likely fail or use an incorrect versioning scheme, as the necessary configuration
is missing.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 8472764

Copy link
Member Author

Choose a reason for hiding this comment

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

@Dav1dde do we still have calver + semver in Relay

Copy link
Member

@Dav1dde Dav1dde Jan 12, 2026

Choose a reason for hiding this comment

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

Calver for self-hosted and binary releases, semver for (Python) library releases

jobs:
changelog-preview:
uses: getsentry/craft/.github/workflows/changelog-preview.yml@v2
secrets: inherit
Copy link

Choose a reason for hiding this comment

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

Duplicate changelog workflow with incompatible changelog mechanism

Medium Severity

This new workflow adds a Craft-based changelog preview that runs on the same PR events as the existing changelog.yml workflow. The project uses a custom changelog system (via .github/actions/changelog/index.js) that checks for entries in CHANGELOG.md and py/CHANGELOG.md with specific formatting requirements. The Craft changelog preview operates on entirely different logic and doesn't use these curated changelog files. This will result in duplicate workflow runs with potentially conflicting or misleading changelog information on PRs. As the reviewer noted, "it does not use the changelog.md we actually curate."

Fix in Cursor Fix in Web

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.

3 participants