Skip to content

Commit 77f5b8a

Browse files
authored
Merge branch 'main' into fix/sentry-nav-traced-idling
2 parents c2c561c + 43a5c14 commit 77f5b8a

219 files changed

Lines changed: 2601 additions & 655 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.claude/skills/create-java-pr/SKILL.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Derive the branch name from the changes being made. Use `feat/`, `fix/`, `ref/`,
7474
## Step 2: Format Code and Regenerate API Files
7575

7676
```bash
77-
./gradlew spotlessApply apiDump
77+
./gradlew spotlessApply updateKotlinAbi
7878
```
7979

8080
This is **required** before every PR in this repo. It formats all Java/Kotlin code via Spotless and regenerates the `.api` binary compatibility files.

‎.claude/skills/test/SKILL.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Extract the module name and optional test class filter from the argument.
3232
| Signal | Test Type |
3333
|--------|-----------|
3434
| Path contains `/src/integrationTest*/` or `/src/agentFixture/` | Integration test suite |
35+
| Module name only, and the user asks for integration or end-to-end tests | Integration test suite: each `src/integrationTest*/` directory of the module |
3536
| Path contains `sentry-samples/`, or module name starts with `sentry-samples-` | None: samples have no tests |
3637
| Everything else | Unit test |
3738

‎.craft.yml‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
minVersion: 0.29.3
2-
changelogPolicy: auto
1+
minVersion: 3.9.0
2+
changelog:
3+
policy: auto
4+
preReleaseCommand: bash scripts/bump-version.sh
5+
versioning:
6+
policy: manual
37
targets:
48
- name: maven
59
includeNames: /^sentry.*$/

‎.cursor/BUGBOT.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,6 @@ rule file in [`.cursor/rules/`](rules) for the area the diff touches (`api`, `op
120120
## What NOT to flag
121121

122122
- Formatting and import order — Spotless owns it.
123-
- Contents of generated `.api` files, beyond confirming `apiDump` was run.
123+
- Contents of generated `.api` files, beyond confirming `updateKotlinAbi` was run.
124124
- Conventional commit / PR title format, and missing changelog entries — CI and Danger check both.
125125
- Speculative refactors or improvements unrelated to the diff.

‎.cursor/rules/api.mdc‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ description: Public API surface, binary compatibility, and common classes to mod
66

77
## API Compatibility
88

9-
Public API is tracked via `.api` files generated by the [Binary Compatibility Validator](https://github.com/Kotlin/binary-compatibility-validator) Gradle plugin. Each module has its own file at `<module>/api/<module>.api`.
9+
Public API is tracked via `.api` files generated by the [ABI validation](https://kotlinlang.org/docs/gradle-binary-compatibility-validation.html) built into the Kotlin Gradle plugin. Each module has its own file at `<module>/api/<module>.api`.
1010

11-
- **Never edit `.api` files manually.** Run `./gradlew apiDump` to regenerate them.
11+
- **Never edit `.api` files manually.** Run `./gradlew updateKotlinAbi` to regenerate them.
1212
- `./gradlew check` validates current code against `.api` files and fails on unintended changes.
1313
- `@ApiStatus.Internal` marks classes/methods as internal — they still appear in `.api` files but are not part of the public contract.
1414
- `@ApiStatus.Experimental` marks API that may change in future versions.

‎.cursor/rules/e2e_tests.mdc‎

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,18 @@ it. Gradle runs the two in parallel.
6464

6565
## Running them
6666

67-
- The `spring-boot-{2,3,4}-matrix.yml` workflows run the suites against each supported Spring Boot
68-
version, by setting the version in `gradle/libs.versions.toml`. The suites aren't part of
69-
`check`, so a new suite only runs on CI once it's added to its matrix.
67+
- The `springBootMatrix` block in each Spring module's build file runs its suites on every version
68+
of its Spring Boot line in `gradle/spring-boot-versions.json`, with a task per suite and version,
69+
e.g. `integrationTestWebfluxBoot3_2_12`. The suites and the SDK compile once, against the
70+
catalog's version; only the runtime classpath changes. `allIntegrationTestsBoot3_2_12` runs one
71+
version's suites, `allIntegrationTestsBoot3` every version's.
72+
- The `spring-boot-{2,3,4}-matrix.yml` workflows read the same file and run each version in its own
73+
job, e.g. `./gradlew :sentry-spring-jakarta:allIntegrationTestsBoot3_2_12
74+
:sentry-spring-boot-jakarta:allIntegrationTestsBoot3_2_12`. The suites aren't part of `check`, so
75+
a new suite only runs on CI once it's added to its module's `springBootMatrix` block, and a new
76+
module once it's added to its workflow.
77+
- Suite code may only use APIs that exist in the oldest version of its line. Compiled against a
78+
newer one, a missing API fails at runtime with `NoSuchMethodError` or `NoClassDefFoundError`.
7079

7180
## Gotchas
7281

‎.cursor/rules/options.mdc‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,4 @@ When a feature has its own capture path (e.g. `captureLog`), the relevant classe
112112
4. `ManifestMetadataReader.java` — Android manifest support (if Android-relevant)
113113
5. `SentryAutoConfigurationTest.kt` — Spring Boot property binding tests (all three Spring Boot modules)
114114
6. Tests for all of the above (`SentryOptionsTest`, `ExternalOptionsTest`, `ManifestMetadataReaderTest`)
115-
7. Run `./gradlew apiDump` — the nested class and its methods appear in `sentry.api`
115+
7. Run `./gradlew updateKotlinAbi` — the nested class and its methods appear in `sentry.api`

‎.envrc‎

Lines changed: 0 additions & 3 deletions
This file was deleted.

‎.github/workflows/agp-matrix.yml‎

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,10 @@ jobs:
2424
env:
2525
VERSION_AGP: ${{ matrix.agp }}
2626
APPLY_SENTRY_INTEGRATIONS: ${{ matrix.integrations }}
27-
GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
2827

2928
steps:
3029
- name: Checkout Repo
3130
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
32-
with:
33-
submodules: 'recursive'
3431

3532
- name: Setup Java Version
3633
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
@@ -39,9 +36,7 @@ jobs:
3936
java-version: '21'
4037

4138
- name: Setup Gradle
42-
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
43-
with:
44-
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
39+
uses: gradle/actions/setup-gradle@8da46b539cd8fe6ab27ca75128919a18d757604c # v6.4.1
4540

4641
- name: Enable KVM
4742
run: |

‎.github/workflows/build.yml‎

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,20 @@ jobs:
1515
name: Build Job ubuntu-latest
1616
runs-on: ubuntu-latest
1717

18-
env:
19-
GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
20-
2118
steps:
2219
- name: Checkout Repo
2320
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2421
with:
2522
ref: ${{ github.event.pull_request.head.sha || github.sha }}
26-
submodules: 'recursive'
2723

2824
- name: Setup Java Version
2925
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
3026
with:
3127
distribution: 'temurin'
3228
java-version: '21'
3329

34-
# Workaround for https://github.com/gradle/actions/issues/21 to use config cache
35-
- name: Cache buildSrc
36-
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
37-
with:
38-
path: buildSrc/build
39-
key: build-logic-${{ hashFiles('buildSrc/src/**', 'buildSrc/build.gradle.kts','buildSrc/settings.gradle.kts') }}
40-
4130
- name: Setup Gradle
42-
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
43-
with:
44-
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
31+
uses: gradle/actions/setup-gradle@8da46b539cd8fe6ab27ca75128919a18d757604c # v6.4.1
4532

4633
- name: Run Tests and Lint
4734
run: make preMerge

0 commit comments

Comments
 (0)