Our Spring Boot + OTel samples currently use project dependencies (e.g. project(":sentry-opentelemetry:sentry-opentelemetry-bom")), which:
- Pollutes the buildscript classpath, undermining test isolation
- Makes the samples uncopyable by customers (who won't have project references)
- Masks real compatibility issues (e.g. OTel + Spring Boot version conflicts hidden by the BOM being pulled via project ref rather than a real artifact)
Proposed change
Publish SDK artifacts to a build-local Maven directory during CI and configure the samples to resolve from that directory. This preserves per-PR test coverage without the classpath isolation problems of mavenLocal (which has shared global state) and without requiring publishing to Maven Central.
Scope
- Set up a build-local publish step that outputs to a local directory (e.g.
build/local-repo)
- Update sample
build.gradle.kts files to add that local dir as a repository
- Use published coordinates (e.g.
io.sentry:sentry-opentelemetry-bom) instead of project references in dependencyManagement
- Keep samples using released/stable version strings so customers can copy them as-is
Out of scope
- Moving samples to Maven Central publishing
- Fully separating samples from test infrastructure (tracked separately)
--
View Junior Session in Sentry
Our Spring Boot + OTel samples currently use project dependencies (e.g.
project(":sentry-opentelemetry:sentry-opentelemetry-bom")), which:Proposed change
Publish SDK artifacts to a build-local Maven directory during CI and configure the samples to resolve from that directory. This preserves per-PR test coverage without the classpath isolation problems of
mavenLocal(which has shared global state) and without requiring publishing to Maven Central.Scope
build/local-repo)build.gradle.ktsfiles to add that local dir as a repositoryio.sentry:sentry-opentelemetry-bom) instead of project references independencyManagementOut of scope
--
View Junior Session in Sentry