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.yml to Craft reusable workflow
  • Updated .craft.yml with versioning.policy: calver

Documentation

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

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.yml to Craft reusable workflow
- Update .craft.yml with versioning.policy: calver
@BYK BYK requested a review from a team as a code owner January 9, 2026 18:05
@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 ✨

  • (store) Create a trait for the taskbroker store by evanh in #526
  • Add python client directory skeleton and move integration tests by markstory in #528
  • Add application to schema and API by markstory in #518

Build / dependencies / internal 🔧

  • (release) Switch from action-prepare-release to Craft by BYK in #527
  • Upgrade to action-setup-venv 3.2.0 by joshuarli in #520

Other

  • [STREAM-660] Upgrade Tonic and Sentry Protos by james-mcnulty in #522

🤖 This preview updates automatically when you update the PR.

Comment on lines 17 to 18
version: ${{ inputs.version }}
force: ${{ inputs.force }}

This comment was marked as outdated.

Comment on lines 3 to 9
pull_request:
types:
- opened
- synchronize
- reopened
- edited
- labeled
Copy link
Member

Choose a reason for hiding this comment

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

Why? This is going to be noise most of the time. Taskbroker follows calver.

Comment on lines 37 to 38
version: ${{ inputs.version }}
force: ${{ inputs.force }}

This comment was marked as outdated.

Comment on lines 37 to 38
version: ${{ inputs.version }}
force: ${{ inputs.force }}
Copy link

Choose a reason for hiding this comment

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

Bug: The scheduled release workflow may fail because it passes an empty string to the version input of the craft action, which might not be handled correctly.
Severity: HIGH

Suggested Fix

To ensure the scheduled job runs correctly, provide a default value for the version input. Setting default: "auto" for the version input would make the behavior explicit for scheduled runs and align with the input's description.

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.yml#L37-L38

Potential issue: The `release.yml` workflow is triggered by both manual
`workflow_dispatch` and an automated `schedule`. When the workflow runs on its schedule,
the `inputs` context is not populated. As a result, the `version` and `force` parameters
passed to the `getsentry/craft` action will be empty strings. It is unknown how the
`craft` action handles an empty string for the `version` input. If it does not default
to an automatic versioning scheme (like calver) when given an empty string, the
scheduled release process will fail.

Did we get this right? 👍 / 👎 to inform future reviews.

Comment on lines 37 to 38
version: ${{ inputs.version }}
force: ${{ inputs.force }}
Copy link

Choose a reason for hiding this comment

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

Bug: The workflow runs on a schedule which does not provide inputs. Using ${{ inputs.version }} and ${{ inputs.force }} will result in undefined values during scheduled runs.
Severity: HIGH

Suggested Fix

Provide default values for the inputs to ensure they are defined during scheduled runs. For example, use ${{ inputs.version || 'auto' }}. This explicitly handles the case where the input is not provided, aligning with the likely intended behavior of auto-versioning for scheduled releases.

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.yml#L37-L38

Potential issue: The `release.yml` workflow is triggered by both `workflow_dispatch` and
`schedule`. The `workflow_dispatch` event provides `inputs.version` and `inputs.force`,
but the `schedule` event does not. When the workflow runs on its schedule, the values
passed to the `craft` action for `version` and `force` will be empty or undefined. While
the `craft` action might be configured to handle this by auto-generating a version, this
behavior is unconfirmed. If the action does not gracefully handle empty inputs, the
scheduled release process could fail.

Did we get this right? 👍 / 👎 to inform future reviews.

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