Skip to content

ref(preprod): Remove graduated preprod-frontend-routes feature flag#110583

Merged
NicoHinderling merged 2 commits intomasterfrom
ref/remove-preprod-frontend-routes-flag
Apr 13, 2026
Merged

ref(preprod): Remove graduated preprod-frontend-routes feature flag#110583
NicoHinderling merged 2 commits intomasterfrom
ref/remove-preprod-frontend-routes-flag

Conversation

@NicoHinderling
Copy link
Copy Markdown
Contributor

@NicoHinderling NicoHinderling commented Mar 12, 2026

Followup to #109829

Summary

  • Remove the organizations:preprod-frontend-routes feature flag which has been at 100% rollout
  • Remove features.has() gating checks from 9 backend API endpoints
  • Remove <Feature> component wrappers and feature checks from 7 frontend files
  • Remove flag-related decorators, context managers, and feature-disabled tests from 14 test files
  • Remove flag registration from temporary.py and from the feature_flags list in organization_trace_item_attributes.py

Since this flag is fully graduated, all gated code paths are already executing in production. This just removes dead gating code.

Does not touch the separate preprod-build-distribution-pr-comments flag.

Test plan

  • pytest -svv --reuse-db tests/sentry/preprod/api/endpoints/ — 448 passed
  • CI=true pnpm test static/app/views/preprod/ static/app/views/releases/list/index.spec.tsx — 15 suites, 140 tests passed
  • rg "preprod-frontend-routes" — only CHANGES file (historical changelog)
  • Pre-commit hooks pass on all 32 modified files

@NicoHinderling NicoHinderling requested review from a team as code owners March 12, 2026 21:00
@github-actions github-actions bot added Scope: Frontend Automatically applied to PRs that change frontend components Scope: Backend Automatically applied to PRs that change backend components labels Mar 12, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🚨 Warning: This pull request contains Frontend and Backend changes!

It's discouraged to make changes to Sentry's Frontend and Backend in a single pull request. The Frontend and Backend are not atomically deployed. If the changes are interdependent of each other, they must be separated into two pull requests and be made forward or backwards compatible, such that the Backend or Frontend can be safely deployed independently.

Have questions? Please ask in the #discuss-dev-infra channel.

Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Autofix Details

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Unnecessary unrelated feature flag added to test fixture
    • Replaced the unrelated organization feature flag in the releases list test fixture with an empty features array because the component no longer depends on any org-level flag.

Create PR

Or push these changes by commenting:

@cursor push 5e62e07bb5
Preview (5e62e07bb5)
diff --git a/static/app/views/releases/list/index.spec.tsx b/static/app/views/releases/list/index.spec.tsx
--- a/static/app/views/releases/list/index.spec.tsx
+++ b/static/app/views/releases/list/index.spec.tsx
@@ -21,7 +21,7 @@
 
 describe('ReleasesList', () => {
   const organization = OrganizationFixture({
-    features: ['search-query-builder-input-flow-changes'],
+    features: [],
   });
   const projects = [ProjectFixture({features: ['releases']})];
   const semverVersionInfo = {

This Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.

Comment thread static/app/views/releases/list/index.spec.tsx Outdated
Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c20b115. Configure here.

Comment thread src/sentry/api/endpoints/organization_trace_item_attributes.py
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 13, 2026

Backend Test Failures

Failures on 41f6751 in this run:

tests/snuba/api/endpoints/test_organization_trace_item_attributes.py::OrganizationTraceItemAttributesEndpointSpansTest::test_no_featurelog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py:410: in test_no_feature
    assert response.status_code == 404, response.content
E   AssertionError: b'[]'
E   assert 200 == 404
E    +  where 200 = <Response status_code=200, "application/json">.status_code
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py::OrganizationTraceItemAttributeValuesEndpointTraceMetricsTest::test_no_featurelog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py:2319: in test_no_feature
    assert response.status_code == 404, response.content
E   AssertionError: b'[]'
E   assert 200 == 404
E    +  where 200 = <Response status_code=200, "application/json">.status_code
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py::OrganizationTraceItemAttributeValuesEndpointLogsTest::test_no_featurelog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py:1352: in test_no_feature
    assert response.status_code == 404, response.content
E   AssertionError: b'[]'
E   assert 200 == 404
E    +  where 200 = <Response status_code=200, "application/json">.status_code
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py::OrganizationTraceItemAttributeValidateEndpointTest::test_no_featurelog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py:2377: in test_no_feature
    assert response.status_code == 404
E   assert 200 == 404
E    +  where 200 = <Response status_code=200, "application/json">.status_code
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py::OrganizationTraceItemAttributesEndpointTraceMetricsTest::test_no_featurelog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py:1151: in test_no_feature
    assert response.status_code == 404, response.content
E   AssertionError: b'[]'
E   assert 200 == 404
E    +  where 200 = <Response status_code=200, "application/json">.status_code
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py::OrganizationTraceItemAttributesEndpointLogsTest::test_no_featurelog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py:62: in test_no_feature
    assert response.status_code == 404, response.content
E   AssertionError: b'[]'
E   assert 200 == 404
E    +  where 200 = <Response status_code=200, "application/json">.status_code
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py::OrganizationTraceItemAttributeValuesEndpointSpansTest::test_no_featurelog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
tests/snuba/api/endpoints/test_organization_trace_item_attributes.py:1411: in test_no_feature
    assert response.status_code == 404, response.content
E   AssertionError: b'[]'
E   assert 200 == 404
E    +  where 200 = <Response status_code=200, "application/json">.status_code

The preprod-frontend-routes flag has been at 100% rollout and is fully
graduated. Remove all gating code across backend endpoints, frontend
components, and tests since all code paths are already executing in
production.
@NicoHinderling NicoHinderling force-pushed the ref/remove-preprod-frontend-routes-flag branch from 74eab36 to 7378dbd Compare April 13, 2026 21:23
@NicoHinderling NicoHinderling merged commit cc58ec9 into master Apr 13, 2026
81 checks passed
@NicoHinderling NicoHinderling deleted the ref/remove-preprod-frontend-routes-flag branch April 13, 2026 22:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants