Skip to content

Commit 4ecdfc0

Browse files
authored
Merge branch 'master' into lms/feat-previous-trace-links
2 parents b721914 + f1e5f35 commit 4ecdfc0

File tree

5,160 files changed

+283252
-99499
lines changed

Some content is hidden

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

5,160 files changed

+283252
-99499
lines changed

.github/CODEOWNERS

+93-72
Large diffs are not rendered by default.

.github/dependabot.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ updates:
6868
schedule:
6969
interval: 'daily'
7070
reviewers:
71-
- '@getsentry/open-source'
71+
- '@getsentry/dev-infra'
7272
- '@getsentry/security'
7373
# security only updates
7474
open-pull-requests-limit: 0

.github/file-filters.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ typecheckable_rules_changed: &typecheckable_rules_changed
3131
# Trigger to apply the 'Scope: Frontend' label to PRs
3232
frontend_all: &frontend_all
3333
- added|modified: '**/*.[tj]{s,sx}'
34-
- added|modified: '**/*.{less,json,yml,md}'
35-
- added|modified: '{.volta,vercel}.json'
34+
- added|modified: 'static/**/*.{less,json,yml,md}'
35+
- added|modified: '{.volta,vercel,tsconfig,biome,package}.json'
3636

3737
# Also used in `getsentry-dispatch.yml` to dispatch backend tests on getsentry
3838
backend_dependencies: &backend_dependencies
@@ -66,6 +66,7 @@ backend_all: &backend_all
6666
- *backend_src
6767
- '**/*.py'
6868
- '**/*.pyi'
69+
- 'devservices/**'
6970

7071
# This is the ultimate controller for acceptance.yml
7172
acceptance: &acceptance

.github/workflows/acceptance.yml

-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ concurrency:
1919
env:
2020
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 3
2121
NODE_OPTIONS: '--max-old-space-size=4096'
22-
# Disables sentry reporting for devservices
23-
DEVSERVICES_DISABLE_SENTRY: 1
2422
CHARTCUTERIE_CONFIG_PATH: ${{ github.workspace }}/config/chartcuterie
2523
SNUBA_NO_WORKERS: 1
2624

.github/workflows/backend.yml

-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ concurrency:
1515
# hack for https://github.com/actions/cache/issues/810#issuecomment-1222550359
1616
env:
1717
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 3
18-
# Disables sentry reporting for devservices
19-
DEVSERVICES_DISABLE_SENTRY: 1
2018
SNUBA_NO_WORKERS: 1
2119

2220
jobs:

.github/workflows/codecov_ats.yml

-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ jobs:
6060
uses: ./.github/actions/setup-sentry
6161
id: setup
6262
with:
63-
use-new-devservices: true
6463
mode: backend-ci
6564
- name: Download Codecov CLI
6665
run: |

.github/workflows/codecov_per_test_coverage.yml

-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ jobs:
3636
uses: ./.github/actions/setup-sentry
3737
id: setup
3838
with:
39-
use-new-devservices: true
4039
mode: backend-ci
4140

4241
- name: Run backend test (${{ steps.setup.outputs.matrix-instance-number }} of ${{ steps.setup.outputs.matrix-instance-total }}) with --cov-context=test

.github/workflows/frontend.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,9 @@ jobs:
130130
DEBUG_PRINT_LIMIT: 0
131131
run: |
132132
if [ ${{ github.ref }} = 'refs/heads/master' ]; then
133-
JEST_TESTS=$(yarn -s jest --listTests --json) yarn test-ci --forceExit --coverage
133+
yarn test-ci --forceExit --coverage
134134
else
135-
JEST_TESTS=$(yarn -s jest --listTests --json) yarn test-ci --forceExit
135+
yarn test-ci --forceExit
136136
fi
137137
138138
# We only upload coverage data for FE changes since it conflicts with

.github/workflows/migrations.yml

-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ jobs:
5353
- name: Setup sentry env
5454
uses: ./.github/actions/setup-sentry
5555
with:
56-
use-new-devservices: true
5756
mode: migrations
5857

5958
- name: Apply migrations

.github/workflows/openapi-diff.yml

-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ jobs:
3030
- name: Setup sentry env
3131
uses: ./.github/actions/setup-sentry
3232
with:
33-
use-new-devservices: true
3433
mode: migrations
3534
if: steps.changes.outputs.api_docs == 'true'
3635

.github/workflows/openapi.yml

-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ jobs:
3232
- name: Setup sentry env
3333
uses: ./.github/actions/setup-sentry
3434
with:
35-
use-new-devservices: true
3635
mode: migrations
3736
if: steps.changes.outputs.api_docs == 'true'
3837

.github/workflows/scripts/getsentry-dispatch.js

-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
* deleted/renamed in `getsentry`, this will fail
88
*/
99
const DISPATCHES = [
10-
{
11-
workflow: 'js-build-and-lint.yml',
12-
pathFilterName: 'frontend_all',
13-
},
1410
{
1511
workflow: 'backend.yml',
1612
pathFilterName: 'backend_all',

.github/workflows/shuffle-tests.yml

-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ jobs:
5252
uses: ./.github/actions/setup-sentry
5353
id: setup
5454
with:
55-
use-new-devservices: true
5655
mode: backend-ci
5756

5857
- name: Run backend test (${{ steps.setup.outputs.matrix-instance-number }} of ${{ steps.setup.outputs.matrix-instance-total }})

CHANGES

+110
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,113 @@
1+
25.3.0
2+
------
3+
4+
### Automate Code Mappings & In-App Stack Trace Rules for Java projects (ongoing)
5+
6+
Currently, we ask developers to set up their Java code mappings manually (because the SDK cannot determine it):
7+
https://docs.sentry.io/platforms/java/source-context/#setting-up-code-mappings
8+
9+
Unfortunately, many stack traces do not contain in-app frames, thus, many Sentry features are not available (e.g. SCM linking, suspect commit).
10+
11+
This tracks using the code mappings derivation system to automatically add the code mappings and stack trace rules to mark in-app frames as such.
12+
13+
This will automatically enable the following Sentry features :
14+
- Suspect Commits
15+
- GitHub pull request comments
16+
- Auto-assignments (if Codeowners imported)
17+
- Stack trace linking
18+
- Code coverage (if the customer also has an account)
19+
20+
This will only be available to customers with the GitHub integration installed.
21+
22+
You can read more about the system here:
23+
https://blog.sentry.io/code-mappings-and-why-they-matter/
24+
25+
By: @armenzg (#86283, #86327, #86280, #86196, #86188, #86189, #86109, #86026, #85981, #85976, #85931, #85742)
26+
27+
### Various fixes & improvements
28+
29+
- Revert "chore(sentry apps): add SLO context manager for send alert event (issue alerts) (#86356)" (fa6491f2) by @getsentry-bot
30+
- fix(autofix): Fix running autofix after all issue summaries (#87134) by @jennmueng
31+
- fix(data-consent): Fix non touch customers seeing msa prompt (#87133) by @jennmueng
32+
- fix(eap-spans): count_op should use `score.total` (#87132) by @DominikB2014
33+
- chore(sentry apps): Add context manager for comment webhook SLOs (#86739) by @Christinarlong
34+
- feat(devenv): Skip `devenv sync` call when we have FE changes and env var is set (#87112) by @wedamija
35+
- feat(insights): make score easier to query (#87129) by @DominikB2014
36+
- chore(issue-details): Fix a few things about issue guide (#87122) by @leeandher
37+
- feat(issue-views): Improve drag handle and safari interactions (#87119) by @MichaelSun48
38+
- :recycle: ref(aci): remove alert rule from metric alert chart building logic (#87103) by @iamrajjoshi
39+
- fix(jira): Add a 'key_id' block list for JIRA installed webhook endpoint (#87086) by @Christinarlong
40+
- fix(event_manager): Resolve TypeError while recording first insight span (#87123) by @jan-auer
41+
- chore(sentry apps): add SLO context manager for send alert event (issue alerts) (#86356) by @Christinarlong
42+
- ref(feedback): add evidence test coverage and send alerts if source is none (#87121) by @aliu39
43+
- feat(releases): Change "version" to "release" in table (#87088) by @billyvg
44+
- feat(releases): Change release bubbles series color to match bubbles (#87109) by @billyvg
45+
- test(react19): Wait for text in billingPlans.spec.tex (#87120) by @scttcper
46+
- ref(tsc): convert projectPlugins details to FC (#87035) by @michellewzhang
47+
- chore(issues): Opt more modules into stronger typing (#87117) by @mrduncan
48+
- feat(ui): Move checkInTimeline underscan to the left (#87096) by @evanpurkhiser
49+
- fix(aci): ANY_SHORT_CIRCUIT early exit (#87114) by @cathteng
50+
- test(react19): Adjust widgetViewerModal for react 19 (#87110) by @scttcper
51+
- chore(uptime): Commit test helpers for getsentry (#87115) by @wedamija
52+
- feat(insights): add most related issues to backend (#87033) by @DominikB2014
53+
54+
_Plus 1390 more_
55+
56+
25.2.0
57+
------
58+
59+
### Automate Code Mappings & In-App Stack Trace Rules for Java projects (ongoing)
60+
61+
Currently, we ask developers to set up their Java code mappings manually (because the SDK cannot determine it):
62+
https://docs.sentry.io/platforms/java/source-context/#setting-up-code-mappings
63+
64+
Unfortunately, many stack traces do not contain in-app frames, thus, many Sentry features are not available (e.g. SCM linking, suspect commit).
65+
66+
This tracks using the code mappings derivation system to automatically add the code mappings and stack trace rules to mark in-app frames as such.
67+
68+
This will automatically enable the following Sentry features :
69+
- Suspect Commits
70+
- GitHub pull request comments
71+
- Auto-assignments (if Codeowners imported)
72+
- Stack trace linking
73+
- Code coverage (if the customer also has an account)
74+
75+
This will only be available to customers with the GitHub integration installed.
76+
77+
You can read more about the system here:
78+
https://blog.sentry.io/code-mappings-and-why-they-matter/
79+
80+
By: @armenzg (#85174, #85065)
81+
82+
### Various fixes & improvements
83+
84+
- Revert "feat(autofix): Add Autofix status to sidebar button (#85287)" (b20e50ed) by @getsentry-bot
85+
- fix(autofix): Fix flash on initial run (#85299) by @roaga
86+
- feat(autofix): Add Autofix status to sidebar button (#85287) by @roaga
87+
- fix(issues): Left align commit authors (#85291) by @scttcper
88+
- :sparkles: feat(aci): add support for sentry apps for issue alerts in NOA (#85218) by @iamrajjoshi
89+
- feat(crons): Implement an all checks page for crons (#85202) by @leeandher
90+
- fix(apidocs): fix typo in user feedback api (#85280) by @michellewzhang
91+
- ref(dashboards): Namespaced `Widget` components (#85238) by @gggritso
92+
- ref(uptime): Remove config_topic from UptimeRegionConfig (#85155) by @evanpurkhiser
93+
- ref(seer grouping): Add ability to ignore useless filenames (#85277) by @lobsterkatie
94+
- fix(auto_source_config): Handle when the frame is None (#85235) by @armenzg
95+
- feat(issues): Disable delete on missing permission (#85278) by @scttcper
96+
- fix(widget-builder): Visualize field overflows on long field names (#85271) by @nikkikapadia
97+
- feat(nav): Update rest of alert links to use new pathname builder (#85257) by @malwilley
98+
- fix(profiling): Prevent landing page from scrolling on context menu (#85273) by @Zylphrex
99+
- ref: remove default margin from Alert in sentry (#85128) by @michellewzhang
100+
- feat(taskworker) Add metrics for RPC durations (#85194) by @markstory
101+
- feat(nav): Update alert links from explore/insights/crons (#85254) by @malwilley
102+
- feat(nav): Update replay onboarding to use drawer (#85267) by @malwilley
103+
- ref(crons): Rename parallel field -> batched_parallel (#85261) by @evanpurkhiser
104+
- Reapply "ref(crons): Remove parallel mode (batched-parallel replaced it)" (#85262) by @evanpurkhiser
105+
- ref(widget-builder): Extract selection components (#85248) by @narsaynorath
106+
- chore(apis): Publish GroupExternalIssue endpoint (#85184) by @Christinarlong
107+
- ref: get_group_{body,title,description} to not need request (#85263) by @asottile-sentry
108+
109+
_Plus 1429 more_
110+
1111
25.1.0
2112
------
3113

api-docs/paths/projects/user-feedback.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"get": {
33
"tags": ["Projects"],
4-
"description": "Return a list of user feedback items within this project.\n\n*This list does not include submissions from the [User Feedback Widget](https://docs.sentry.io/product/user-feedback/#user-feedback-widget). This is because it is based on an older format called User Reports - read more [here](https://develop.sentry.dev/application/feedback-architecture/#user-reports). To return a list of user feedback items from the widget, please use the [issue API](https://docs.sentry.io/api/events/list-a-projects-issues/)* with the filter `issue.category:feedback`.*",
4+
"description": "Return a list of user feedback items within this project.\n\n*This list does not include submissions from the [User Feedback Widget](https://docs.sentry.io/product/user-feedback/#user-feedback-widget). This is because it is based on an older format called User Reports - read more [here](https://develop.sentry.dev/application/feedback-architecture/#user-reports). To return a list of user feedback items from the widget, please use the [issue API](https://docs.sentry.io/api/events/list-a-projects-issues/) with the filter `issue.category:feedback`.*",
55
"operationId": "List a Project's User Feedback",
66
"parameters": [
77
{

babel.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const config: TransformOptions = {
1313
'@babel/preset-env',
1414
{
1515
useBuiltIns: 'usage',
16-
corejs: '3.37',
16+
corejs: '3.41',
1717
},
1818
],
1919
// TODO: Remove allowDeclareFields when we upgrade to Babel 8

bin/mock-outcomes

-4
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,5 @@ def generate_outcomes():
6161
)
6262

6363

64-
def drop_outcomes():
65-
assert requests.post(settings.SENTRY_SNUBA + "/tests/entities/outcomes/drop").status_code == 200
66-
67-
6864
if __name__ == "__main__":
6965
generate_outcomes()

bin/mock-replay

-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ from sentry.runner import configure
66
from sentry.utils.json import dumps_htmlsafe
77

88
configure()
9-
import pathlib
109
import uuid
1110
from datetime import datetime, timedelta
1211

@@ -88,11 +87,6 @@ def store_replay_segments(replay_id: str, project_id: int, segment_id: int, segm
8887
)
8988

9089

91-
def make_filename(filename: str) -> str:
92-
parent_dir = pathlib.Path(__file__).parent.resolve()
93-
return f"{parent_dir}/rrweb-output/{filename}"
94-
95-
9690
def main():
9791
project_name = "Replay Test Project"
9892

bin/mock-replay-recording

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
#!/usr/bin/env python
2+
"""Insert mock replay recording messages into the INGEST_REPLAYS_RECORDINGS topic.
3+
4+
Helpful commands:
5+
6+
- Run the consumer.
7+
- `sentry run consumer ingest-replay-recordings --consumer-group 0`
8+
- `sentry run consumer ingest-replay-recordings-two-step --consumer-group 0`
9+
- Check if offsets are committed correctly.
10+
- `docker exec -it kafka-kafka-1 kafka-consumer-groups --bootstrap-server localhost:9092 --describe --group 0`
11+
"""
12+
13+
import logging
14+
import os
15+
import time
16+
import uuid
17+
18+
import click
19+
import django
20+
from arroyo import Topic as ArroyoTopic
21+
from arroyo.backends.kafka import KafkaPayload, KafkaProducer, build_kafka_configuration
22+
from sentry_kafka_schemas.codecs import Codec
23+
from sentry_kafka_schemas.schema_types.ingest_replay_recordings_v1 import ReplayRecording
24+
25+
from sentry.conf.types.kafka_definition import Topic, get_topic_codec
26+
from sentry.runner import configure
27+
from sentry.utils.kafka_config import get_kafka_producer_cluster_options, get_topic_definition
28+
29+
configure()
30+
31+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sentry.conf.server")
32+
33+
34+
django.setup()
35+
36+
37+
logger = logging.getLogger(__name__)
38+
39+
40+
def get_producer() -> KafkaProducer:
41+
cluster_name = get_topic_definition(Topic.INGEST_REPLAYS_RECORDINGS)["cluster"]
42+
producer_config = get_kafka_producer_cluster_options(cluster_name)
43+
return KafkaProducer(build_kafka_configuration(default_config=producer_config))
44+
45+
46+
RECORDING_CODEC: Codec[ReplayRecording] = get_topic_codec(Topic.INGEST_REPLAYS_RECORDINGS)
47+
48+
49+
@click.command()
50+
@click.option("--organization-id", type=int, required=True, help="Organization ID")
51+
@click.option("--project-id", type=int, required=True, help="Project ID")
52+
def main(organization_id: int, project_id: int) -> None:
53+
"""Produce a mock uptime result message to the INGEST_REPLAYS_RECORDINGS topic."""
54+
message: ReplayRecording = {
55+
"key_id": None,
56+
"org_id": organization_id,
57+
"payload": b'{"segment_id":0}\n[]',
58+
"project_id": project_id,
59+
"received": int(time.time()),
60+
"replay_event": None,
61+
"replay_id": uuid.uuid4().hex,
62+
"replay_video": None,
63+
"retention_days": 30,
64+
"type": "replay_recording_not_chunked",
65+
"version": 1,
66+
}
67+
68+
producer = get_producer()
69+
topic = get_topic_definition(Topic.INGEST_REPLAYS_RECORDINGS)["real_topic_name"]
70+
payload = KafkaPayload(None, RECORDING_CODEC.encode(message), [])
71+
72+
producer.produce(ArroyoTopic(topic), payload)
73+
producer.close()
74+
75+
logger.info("Successfully produced message to %s", topic)
76+
77+
78+
if __name__ == "__main__":
79+
main()

config/hooks/post-merge

+6-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ trap "rm -f $files_changed_upstream" EXIT
1111

1212
git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD >"$files_changed_upstream"
1313

14-
if grep --quiet 'requirements-dev-frozen.txt' "$files_changed_upstream" || grep --quiet 'yarn.lock' "$files_changed_upstream" || grep --quiet 'migrations' "$files_changed_upstream"; then
14+
grep_pattern="requirements-dev-frozen.txt|migrations"
15+
if [[ "$SENTRY_DEVENV_SKIP_FRONTEND" != "1" ]]; then
16+
grep_pattern+="|yarn.lock"
17+
fi
18+
19+
if grep -E --quiet "$grep_pattern" "$files_changed_upstream"; then
1520
cat <<EOF
1621
1722
[${red}${bold}!!!${reset}] ${red} It looks like some dependencies have changed. Run devenv sync to resync your environment.${reset}

0 commit comments

Comments
 (0)