getsentry / getsentry/sentry-go

Decouple integration sub-module releases from root SDK

Open
#1,262 1 comment 0 reactions 0 assignees View on GitHub
Go Improvement
Dominant language
Go
Stars
1.1k
Forks
262
Avg merge
1d 48m
Merged PRs (30d)
7

Description

Currently, all integration modules (gin/, fiber/, etc) are released in lock-step with the root SDK. Every craft publish bumps every sub-module's go.mod to require the new root version and creates tags for all integrations, even when they haven't changed. This causes two issues:
- Integrations get a new tag when no actual changes have happened.
- Integrations have version coupling with the root SDK. Users can't adopt a newer version of the SDK independently.

### Possible Solution

The easiest solution would be to automate version bumping based on changes that happened and conditionally create a tag for each sub-module, but craft doesn't support conditional targets. Then the other possible options are:
- different `craft.yml` configs for each integration, with the drawback of complexity and maintaining 15+ different configs.
- keep craft for root sdk releases since it helps with changelog management and version bumping, but for Go the release process is really simple since we don't publish to a registry (we only need to create a git tag), so add a separate release action for the integrations.

Option 2 is the best path, but splits the release workflow into two paths which isn't really obvious.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.