Skip to content

Commit b395965

Browse files
fix(releases): fix newGroups calculation on release meta and remove usages of release new_groups (#88024)
- fixes #87322 - [notion doc](https://www.notion.so/sentry/Removing-new_groups-field-from-Release-model-1c28b10e4b5d801d8598dd15e7a5b215?showMoveTo=true&saveParent=true) for context & plan on the `releases/meta/` endpoint, the value for `newGroups` incorrect, as seen in this [API request](https://sentry.sentry.io/api/0/organizations/sentry/releases/frontend%4085a177005793f32687cdd7d9776191ee51153e5f/meta/) -- the project has 1 `newGroup` but the overall release meta `newGroups == 0`. the overall meta `newGroups` should be the same as the sum of `newGroups` across all release projects, which this PR fixes. https://github.com/getsentry/sentry/blob/b88166941846ce4fdb4e2001453e421b41ba7e10/tests/sentry/api/serializers/test_release.py#L76-L77 the `new_groups` field on the `Release` model was deprecated and will be removed in a subsequent migration. https://github.com/getsentry/sentry/blob/b88166941846ce4fdb4e2001453e421b41ba7e10/src/sentry/models/release.py#L210-L211
1 parent 5d2a5ff commit b395965

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

src/sentry/api/endpoints/organization_release_meta.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def get(self, request: Request, organization, version) -> Response:
104104
"version": release.version,
105105
"versionInfo": expose_version_info(release.version_info),
106106
"projects": projects,
107-
"newGroups": release.new_groups,
107+
"newGroups": sum(project["newGroups"] for project in projects),
108108
"deployCount": release.total_deploys,
109109
"commitCount": release.commit_count,
110110
"released": release.date_released or release.date_added,

tests/sentry/api/endpoints/test_organization_release_meta.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from sentry.models.release import Release
99
from sentry.models.releasecommit import ReleaseCommit
1010
from sentry.models.releasefile import ReleaseFile
11+
from sentry.models.releases.release_project import ReleaseProject
1112
from sentry.models.repository import Repository
1213
from sentry.testutils.cases import APITestCase
1314

@@ -29,6 +30,9 @@ def test_multiple_projects(self):
2930
release.add_project(project)
3031
release.add_project(project2)
3132

33+
ReleaseProject.objects.filter(project=project, release=release).update(new_groups=10)
34+
ReleaseProject.objects.filter(project=project2, release=release).update(new_groups=10)
35+
3236
ReleaseFile.objects.create(
3337
organization_id=project.organization_id,
3438
release_id=release.id,
@@ -61,7 +65,6 @@ def test_multiple_projects(self):
6165

6266
release.commit_count = 2
6367
release.total_deploys = 1
64-
release.new_groups = 42
6568
release.save()
6669

6770
self.create_member(teams=[team1, team2], user=user, organization=org)
@@ -79,7 +82,7 @@ def test_multiple_projects(self):
7982
data = orjson.loads(response.content)
8083
assert data["deployCount"] == 1
8184
assert data["commitCount"] == 2
82-
assert data["newGroups"] == 42
85+
assert data["newGroups"] == 20
8386
assert data["commitFilesChanged"] == 2
8487
assert data["releaseFileCount"] == 1
8588
assert len(data["projects"]) == 2

tests/sentry/api/serializers/test_release.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def test_get_user_from_email(self):
202202
project = self.create_project()
203203
self.create_member(user=user, organization=project.organization)
204204
release = Release.objects.create(
205-
organization_id=project.organization_id, version=uuid4().hex, new_groups=1
205+
organization_id=project.organization_id, version=uuid4().hex
206206
)
207207
release.add_project(project)
208208
commit_author = CommitAuthor.objects.create(
@@ -242,7 +242,7 @@ def test_get_single_user_from_email(self):
242242
self.create_member(user=user, organization=project.organization)
243243
self.create_member(user=otheruser, organization=project.organization)
244244
release = Release.objects.create(
245-
organization_id=project.organization_id, version=uuid4().hex, new_groups=1
245+
organization_id=project.organization_id, version=uuid4().hex
246246
)
247247
release.add_project(project)
248248
commit_author = CommitAuthor.objects.create(
@@ -285,7 +285,7 @@ def test_select_user_from_appropriate_org(self):
285285
project = self.create_project()
286286
self.create_member(user=otheruser, organization=project.organization)
287287
release = Release.objects.create(
288-
organization_id=project.organization_id, version=uuid4().hex, new_groups=1
288+
organization_id=project.organization_id, version=uuid4().hex
289289
)
290290
release.add_project(project)
291291
commit_author = CommitAuthor.objects.create(
@@ -322,7 +322,7 @@ def test_no_commit_author(self):
322322
project = self.create_project()
323323
self.create_member(user=otheruser, organization=project.organization)
324324
release = Release.objects.create(
325-
organization_id=project.organization_id, version=uuid4().hex, new_groups=1
325+
organization_id=project.organization_id, version=uuid4().hex
326326
)
327327
release.add_project(project)
328328
commit = Commit.objects.create(
@@ -351,7 +351,7 @@ def test_deduplicate_users(self):
351351
project = self.create_project()
352352
self.create_member(user=user, organization=project.organization)
353353
release = Release.objects.create(
354-
organization_id=project.organization_id, version=uuid4().hex, new_groups=1
354+
organization_id=project.organization_id, version=uuid4().hex
355355
)
356356
release.add_project(project)
357357
commit_author1 = CommitAuthor.objects.create(
@@ -397,6 +397,7 @@ def test_deduplicate_users(self):
397397
result = serialize(release, user)
398398
assert len(result["authors"]) == 1
399399
assert result["authors"][0]["email"] == "[email protected]"
400+
assert result["newGroups"] == 1
400401

401402
def test_with_deploy(self):
402403
user = self.create_user()

0 commit comments

Comments
 (0)