Skip to content

Commit 7a0f1f7

Browse files
Merge branch 'priscila/feat/add-private-gaming-sdk-access-modal' into priscila/feat/getting-started-docs/add-xbox-doc
2 parents ba68bfc + 9934891 commit 7a0f1f7

File tree

19 files changed

+94
-34
lines changed

19 files changed

+94
-34
lines changed

migrations_lockfile.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ preprod: 0012_installablepreprod
2727

2828
replays: 0006_add_bulk_delete_job
2929

30-
sentry: 0956_add_group_by_to_snuba_query
30+
sentry: 0957_projecttemplateoption_json
3131

3232
social_auth: 0003_social_auth_json_field
3333

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Generated by Django 5.2.1 on 2025-07-25 08:13
2+
3+
from django.db import migrations, models
4+
5+
from sentry.new_migrations.migrations import CheckedMigration
6+
7+
mod = __import__("sentry.migrations.0929_no_pickle_authenticator", fromlist=["_trash"])
8+
9+
10+
class Migration(CheckedMigration):
11+
# This flag is used to mark that a migration shouldn't be automatically run in production.
12+
# This should only be used for operations where it's safe to run the migration after your
13+
# code has deployed. So this should not be used for most operations that alter the schema
14+
# of a table.
15+
# Here are some things that make sense to mark as post deployment:
16+
# - Large data migrations. Typically we want these to be run manually so that they can be
17+
# monitored and not block the deploy for a long period of time while they run.
18+
# - Adding indexes to large tables. Since this can take a long time, we'd generally prefer to
19+
# run this outside deployments so that we don't block them. Note that while adding an index
20+
# is a schema change, it's completely safe to run the operation after the code has deployed.
21+
# Once deployed, run these manually via: https://develop.sentry.dev/database-migrations/#migration-deployment
22+
23+
is_post_deployment = False
24+
25+
dependencies = [
26+
("sentry", "0956_add_group_by_to_snuba_query"),
27+
]
28+
29+
operations = [
30+
migrations.SeparateDatabaseAndState(
31+
database_operations=[mod.to_jsonb("sentry_projecttemplateoption", "value")],
32+
state_operations=[
33+
migrations.AlterField(
34+
model_name="projecttemplateoption",
35+
name="value",
36+
field=models.JSONField(null=True),
37+
),
38+
],
39+
)
40+
]

src/sentry/models/options/project_template_option.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
from sentry.backup.scopes import RelocationScope
99
from sentry.db.models import FlexibleForeignKey, Model, region_silo_model, sane_repr
10-
from sentry.db.models.fields import PickledObjectField
1110
from sentry.db.models.manager.option import OptionManager
1211
from sentry.utils.cache import cache
1312

@@ -105,7 +104,7 @@ class ProjectTemplateOption(Model):
105104

106105
project_template = FlexibleForeignKey("sentry.ProjectTemplate", related_name="options")
107106
key = models.CharField(max_length=64)
108-
value = PickledObjectField(null=True)
107+
value = models.JSONField(null=True)
109108

110109
objects: ClassVar[ProjectTemplateOptionManager] = ProjectTemplateOptionManager()
111110

src/sentry/tempest/tasks.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,21 @@ def fetch_latest_item_id(credentials_id: int, **kwargs) -> None:
6565
result = response.json()
6666

6767
if "latest_id" in result:
68-
credentials.latest_fetched_item_id = result["latest_id"]
69-
credentials.message = ""
70-
credentials.message_type = MessageType.SUCCESS
71-
credentials.save(update_fields=["message", "latest_fetched_item_id", "message_type"])
72-
return
68+
if result["latest_id"] is None:
69+
# If there are no crashes in the CRS we want to communicate that back to the
70+
# customer so that they are not surprised about no crashes arriving.
71+
credentials.message = "No crashes found"
72+
credentials.message_type = MessageType.ERROR
73+
credentials.save(update_fields=["message", "message_type"])
74+
return
75+
else:
76+
credentials.latest_fetched_item_id = result["latest_id"]
77+
credentials.message = ""
78+
credentials.message_type = MessageType.SUCCESS
79+
credentials.save(
80+
update_fields=["message", "latest_fetched_item_id", "message_type"]
81+
)
82+
return
7383
elif "error" in result:
7484
if result["error"]["type"] == "invalid_credentials":
7585
credentials.message = "Seems like the provided credentials are invalid"

src/sentry/utils/sdk_crashes/sdk_crash_detection_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ def build_sdk_crash_detection_configs() -> Sequence[SDKCrashDetectionConfig]:
393393
r"package:sentry_link/**",
394394
r"package:sentry_firebase_remote_config/**",
395395
# obfuscated builds
396-
r"package:/**/.pub-cache/**/sentry**",
396+
r"/**/.pub-cache/**/sentry**",
397397
},
398398
path_replacer=KeepFieldPathReplacer(fields={"package", "filename", "abs_path"}),
399399
),

static/app/components/events/featureFlags/onboarding/featureFlagOnboardingLayout.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export function FeatureFlagOnboardingLayout({
4848
platformKey,
4949
projectId,
5050
projectSlug,
51+
isLogsSelected: false,
5152
isFeedbackSelected: false,
5253
isPerformanceSelected: false,
5354
isProfilingSelected: false,

static/app/components/feedback/feedbackOnboarding/feedbackOnboardingLayout.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export function FeedbackOnboardingLayout({
4747
platformKey,
4848
projectId,
4949
projectSlug,
50+
isLogsSelected: false,
5051
isFeedbackSelected: true,
5152
isPerformanceSelected: false,
5253
isProfilingSelected: false,

static/app/components/onboarding/gettingStartedDoc/onboardingLayout.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export function OnboardingLayout({
8585
platformKey,
8686
projectId,
8787
projectSlug,
88+
isLogsSelected: false,
8889
isFeedbackSelected: false,
8990
isPerformanceSelected: activeProductSelection.includes(
9091
ProductSolution.PERFORMANCE_MONITORING

static/app/components/onboarding/gettingStartedDoc/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ export interface DocsParams<
152152
api: Client;
153153
dsn: ProjectKey['dsn'];
154154
isFeedbackSelected: boolean;
155+
isLogsSelected: boolean;
155156
isPerformanceSelected: boolean;
156157
isProfilingSelected: boolean;
157158
isReplaySelected: boolean;

static/app/components/performanceOnboarding/sidebar.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,7 @@ function OnboardingContent({currentProject}: {currentProject: Project}) {
335335
projectId: currentProject.id,
336336
projectSlug: currentProject.slug,
337337
isFeedbackSelected: false,
338+
isLogsSelected: false,
338339
isPerformanceSelected: true,
339340
isProfilingSelected: false,
340341
isReplaySelected: false,

0 commit comments

Comments
 (0)