Skip to content

Commit 23cbfc7

Browse files
committed
Merge branch 'master' into antonis/rn-feedback-button
2 parents 546effc + ad9e00b commit 23cbfc7

File tree

70 files changed

+1349
-157
lines changed

Some content is hidden

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

70 files changed

+1349
-157
lines changed

.github/workflows/codeowner_assignment.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,7 @@ jobs:
3939
fi
4040
4141
# Get changed files in the PR
42-
git fetch origin ${{ github.event.pull_request.base.ref }} \
43-
${{ github.event.pull_request.head.ref }}
44-
CHANGED_FILES=$(git diff --name-only origin/${{ github.event.pull_request.base.ref }} \
45-
origin/${{ github.event.pull_request.head.ref }})
42+
CHANGED_FILES=$(gh pr view $PR_NUMBER --json files --jq '.files[].path')
4643
4744
echo "----------------------------------------"
4845
echo "Changed files:"

develop-docs/self-hosted/releases.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ These are the hard stops that one needs to go through:
5353
- 23.6.2 (execute `COMPOSE_PROJECT_NAME=sentry_onpremise docker compose down --rmi local --remove-orphans` before you upgrade to > 21.12.0)
5454
- 23.11.0
5555
- 24.8.0
56+
- 25.5.1
5657

5758
Versions to avoid upgrading to:
5859
- 23.7.0 (issues around database migrations and the Django 3 upgrade)

docs/concepts/search/searchable-properties/session-replay.mdx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,12 @@ The event or replay id. In **Issues**, use only the ID value without the `id` ke
190190

191191
- **Type:** UUID
192192

193+
### `is_archived`
194+
195+
Whether the replay has been archived.
196+
197+
- **Type:** boolean
198+
193199
### `level`
194200

195201
Severity of the event (such as: fatal, error, warning). Always set to info for transactions.
@@ -275,6 +281,30 @@ An alternative, or addition, to the username. Sentry is aware of email addresses
275281

276282
- **Type:** string
277283

284+
### `user.geo.city`
285+
286+
Full name of the city of the user's geolocation.
287+
288+
- **Type:** string
289+
290+
### `user.geo.country_code`
291+
292+
Country of the user's geolocation. Country code is based on [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html).
293+
294+
- **Type:** string
295+
296+
### `user.geo.region`
297+
298+
Full name of the country of the user's geolocation.
299+
300+
- **Type:** string
301+
302+
### `user.geo.subdivision`
303+
304+
Full name of the subdivision of the user's geolocation. (For example, state, province, etc.)
305+
306+
- **Type:** string
307+
278308
### `user.id`
279309

280310
Application-specific internal identifier for the user.

docs/organization/integrations/compliance/vanta-eu/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ Sentry Owner, Manager, or Admin permissions are required to install this integra
1818

1919
1. Navigate to **Settings > Integrations > Vanta EU**
2020

21-
2. Follow the full [Vanta installation instructions](https://help.vanta.com/hc/en-us/articles/13045851267092).
21+
2. Follow the full [Vanta installation instructions](https://help.vanta.com/en/articles/11345687-vanta-sentry-integration).

docs/organization/integrations/compliance/vanta/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ Sentry owner, manager, or admin permissions are required to install this integra
1616

1717
1. Navigate to **Settings > Integrations > Vanta**
1818

19-
2. Follow the full [Vanta installation instructions](https://help.vanta.com/hc/en-us/articles/13045851267092).
19+
2. Follow the full [Vanta installation instructions](https://help.vanta.com/en/articles/11345687-vanta-sentry-integration).

docs/platforms/apple/guides/ios/session-replay/customredact.mdx

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,24 @@ You can choose which type of view you want to mask or unmask by using the `maske
2121
Let's say you have a custom view that you want to mask and a `UILabel` subclass (which normally would be masked) that you don't want to mask. You can set the options like this:
2222

2323
```swift
24-
options.sessionReplay.maskedViewClasses = [MyCustomView.self]
25-
options.sessionReplay.unmaskedViewClasses = [MyCustomLabel.self]
24+
options.sessionReplay.maskedViewClasses = [MyCustomView.self]
25+
options.sessionReplay.unmaskedViewClasses = [MyCustomLabel.self]
2626
```
2727

2828
## Mask by View Instance
2929

3030
You can also choose to mask or unmask a specific view instance by using the replay API (`SentrySDK.replay`) or view extensions like this:
3131

3232
```swift
33-
SentrySDK.replay.maskView(view: view)
34-
SentrySDK.replay.unmaskView(view: label)
33+
SentrySDK.replay.maskView(view: view)
34+
SentrySDK.replay.unmaskView(view: label)
3535
```
3636

3737
or
3838

3939
```swift
40-
view.sentryReplayMask()
41-
label.sentryReplayUnmask()
40+
view.sentryReplayMask()
41+
label.sentryReplayUnmask()
4242
```
4343

4444
## SwiftUI
@@ -49,46 +49,46 @@ In order to control the SwiftUI masking process, you need to use the `sentryRepl
4949
In this example we want to show the message, but not the user name.
5050

5151
```swift
52-
@Binding var user: String
53-
54-
var body: some View {
55-
VStack {
56-
Text("Hello")
57-
.sentryReplayUnmask()
58-
Text("\(user)")
59-
}
52+
@Binding var user: String
53+
54+
var body: some View {
55+
VStack {
56+
Text("Hello")
57+
.sentryReplayUnmask()
58+
Text("\(user)")
6059
}
60+
}
6161
```
6262

6363
In this example, we need to unmask the VStack because its background element will be masked by default.
6464
To hide the username, we need to mask it.
6565

6666
```swift
67-
@Binding var user: String
68-
69-
var body: some View {
70-
VStack {
71-
Text("Hello")
72-
Text("\(user)")
73-
.sentryReplayMask()
74-
}
75-
.background(.blue)
76-
.sentryReplayUnmask()
67+
@Binding var user: String
68+
69+
var body: some View {
70+
VStack {
71+
Text("Hello")
72+
Text("\(user)")
73+
.sentryReplayMask()
7774
}
75+
.background(.blue)
76+
.sentryReplayUnmask()
77+
}
7878
```
7979

8080
## Debugging Session Replay masking
8181

8282
To see how elements are being masked, enable the masking preview from anywhere in your app. It will display an overlay on top of the masked elements. This works on the simulator and on device, as well as within Xcode Preview.
8383

8484
```swift
85-
SentrySDK.replay.showMaskPreview()
85+
SentrySDK.replay.showMaskPreview()
8686
```
8787

8888
By default, the overlay will be opaque. To configure the opacity, pass the desired opacity as a parameter:
8989

9090
```swift
91-
SentrySDK.replay.showMaskPreview(0.5) // 0.5 opacity to render the preview semi-transparent
91+
SentrySDK.replay.showMaskPreview(0.5) // 0.5 opacity to render the preview semi-transparent
9292
```
9393

9494
Make sure not accidentally include this in your release build by e.g. wrapping it in a `#if DEBUG` block.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
title: Set Up Logs
3+
sidebar_title: Logs
4+
description: "Structured logs allow you to send, view and query logs sent from your applications within Sentry."
5+
sidebar_order: 5755
6+
---
7+
8+
<Include name="feature-stage-beta-logs.mdx" />
9+
10+
With Sentry Structured Logs, you can send text based log information from your applications to Sentry. Once in Sentry, these logs can be viewed alongside relevant errors, searched by text-string, or searched using their individual attributes.
11+
12+
## Requirements
13+
14+
<PlatformContent includePath="logs/requirements" />
15+
16+
## Setup
17+
18+
<PlatformContent includePath="logs/setup" />
19+
20+
## Usage
21+
22+
<PlatformContent includePath="logs/usage" />
23+
24+
## Options
25+
26+
<PlatformContent includePath="logs/options" />
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
title: Set Up Logs
3+
sidebar_title: Logs
4+
description: "Structured logs allow you to send, view and query logs sent from your applications within Sentry."
5+
sidebar_order: 5755
6+
---
7+
8+
<Include name="feature-stage-beta-logs.mdx" />
9+
10+
With Sentry Structured Logs, you can send text based log information from your applications to Sentry. Once in Sentry, these logs can be viewed alongside relevant errors, searched by text-string, or searched using their individual attributes.
11+
12+
## Requirements
13+
14+
<PlatformContent includePath="logs/requirements" />
15+
16+
## Setup
17+
18+
<PlatformContent includePath="logs/setup" />
19+
20+
## Usage
21+
22+
<PlatformContent includePath="logs/usage" />
23+
24+
## Options
25+
26+
<PlatformContent includePath="logs/options" />

docs/platforms/dotnet/common/troubleshooting.mdx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,49 @@ will not be sent to Sentry. If Sentry cannot locate symbols, then it cannot perf
2626
This means that for some types of projects (depending on configuration), you may not see filenames and line numbers
2727
to help you locate the source of an exception.
2828

29+
## Detected package version outside of dependency constraint
30+
31+
In .NET for Android applications the Sentry SDK needs to make use of a limited number of Android APIs that form part of the operating system. Implicitly, Sentry depends on [various Java packages](https://github.com/getsentry/sentry-dotnet/blob/ebc1115d6c928ff56244afa3a1ce1d79b078fbf4/src/Sentry.Bindings.Android/Sentry.Bindings.Android.csproj#L45-L56) then.
32+
33+
If you are using third party libraries that depend on different versions of these same Java packages, you may see `NU1605`, `NU1608` and/or `NU1107` warnings when trying to run `dotnet restore`.
34+
35+
Sentry itself only specifies a minimum version of the Java packages that it depends on, so is compatible with any higher versions of the same Java packages. However, these Java packages come with their own dependencies, which are therefore transitive dependencies for Sentry. The transitive dependencies of the Sentry SDK can sometimes be incompatible with the transitive dependencies of other third party libraries and NuGet isn't smart enough to resolve those conflicts without a bit of guidance.
36+
37+
Such problems need to be resolved on a case by case basis but the following example should demonstrate how you can resolve these issues if you run into them in your own application.
38+
39+
### Example Problem
40+
41+
If you use `Sentry` `5.7.0` in a .NET for Android application targeting `net9.0-android` then Sentry will have various [direct dependencies](https://www.nuget.org/packages/Sentry/5.7.0#dependencies-body-tab). However those direct dependencies come with their own dependencies, which for Sentry are transitive dependencies.
42+
43+
If you also use `Microsoft.Maui.Essentials` version `9.0.50`, ultimately it depends on conflicting version of those same transitive dependencies.
44+
45+
In this scenario you would see a warning or an error like the following when running `dotnet restore`:
46+
```
47+
NU1608: Detected package version outside of dependency constraint: Xamarin.AndroidX.Lifecycle.Common.Java8 2.8.5.1 requires Xamarin.AndroidX.Lifecycle.Common (>= 2.8.5.1 && < 2.8.6) but version Xamarin.AndroidX.Lifecycle.Common 2.8.7.2 was resolved.
48+
```
49+
50+
### Example Solution
51+
52+
To resolve the problem above, you can use [Transitive Pinning](https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management#transitive-pinning) to resolve explicit versions of transitive dependencies (rather than letting NuGet resolve these automatically).
53+
54+
To enable Transitive Pinning, add the following to your `csproj` or `Directory.Build.props` file:
55+
56+
```xml
57+
<PropertyGroup>
58+
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
59+
</PropertyGroup>
60+
```
61+
62+
You can then pin the appropriate versions of the transitive dependency that's causing you problems:
63+
64+
```xml
65+
<ItemGroup>
66+
<PackageReference Include="Xamarin.AndroidX.Lifecycle.Common.Java8" Version="2.8.7.2" />
67+
</ItemGroup>
68+
```
69+
70+
Although the Sentry SDK only needs `Xamarin.AndroidX.Lifecycle.Common.Java8 2.8.5.1`, that version is problematic since it locks the transitive dependency `Xamarin.AndroidX.Lifecycle.Common` into the range `(>= 2.8.5.1 && < 2.8.6)`. By explicitly pinning `Xamarin.AndroidX.Lifecycle.Common.Java8` to `2.8.7.2` to match the version used by `Microsoft.Maui.Essentials`, we can resolve the conflict.
71+
2972
## Updating to 4.12.0 broke my .NET iOS App
3073

3174
Support for Xcode 16.0 was added on version 4.12.0 of the Sentry SDK for .NET

docs/platforms/javascript/common/configuration/integrations/amqplib.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ The `amqplibIntegration` adds instrumentation for the `amqplib` library to captu
4141

4242
```JavaScript
4343
Sentry.init({
44-
integrations: [new Sentry.amqplibIntegration()],
44+
integrations: [Sentry.amqplibIntegration()],
4545
});
4646
```
4747

0 commit comments

Comments
 (0)