Skip to content

Commit a4f43f8

Browse files
adekoderfricklerhandwerk
authored andcommitted
refactor: rename MaintainersEdit to MaintainerOverlay, PackageEdit to PackageOverlay
1 parent 1cfc89b commit a4f43f8

File tree

8 files changed

+179
-99
lines changed

8 files changed

+179
-99
lines changed

src/shared/listeners/cache_suggestions.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
from shared.models.cve import AffectedProduct, Metric, Reference, Version
1717
from shared.models.linkage import (
1818
CVEDerivationClusterProposal,
19-
MaintainersEdit,
20-
PackageEdit,
19+
MaintainerOverlay,
20+
PackageOverlay,
2121
ReferenceOverlay,
2222
)
2323
from shared.models.nix_evaluation import get_major_channel
@@ -112,8 +112,8 @@ class Reference(BaseModel):
112112
categorized_references: CategorizedReferences
113113

114114

115-
def apply_package_edits(
116-
packages: dict, edits: list[PackageEdit]
115+
def apply_package_overlays(
116+
packages: dict, edits: list[PackageOverlay]
117117
) -> dict[str, CachedSuggestion.Package]:
118118
"""
119119
Returns the packages dict with user-supplied package edits applied.
@@ -122,7 +122,7 @@ def apply_package_edits(
122122
to_skip = {
123123
edit.package_attribute
124124
for edit in edits
125-
if edit.edit_type == PackageEdit.EditType.REMOVE
125+
if edit.edit_type == MaintainerOverlay.Type.REMOVE
126126
}
127127

128128
return {attr: data for attr, data in packages.items() if attr not in to_skip}
@@ -214,11 +214,11 @@ def cache_new_suggestions(suggestion: CVEDerivationClusterProposal) -> None:
214214

215215
prefetched_metrics = Metric.objects.filter(container__cve=suggestion.cve)
216216
original_packages = channel_structure(all_versions, derivations)
217-
maintainers_edits = list(
218-
suggestion.maintainers_edits.select_related("maintainer").all()
217+
maintainer_overlays = list(
218+
suggestion.maintainer_overlays.select_related("maintainer").all()
219219
)
220-
package_edits = list(suggestion.package_edits.all())
221-
packages = apply_package_edits(original_packages, package_edits)
220+
package_overlays = list(suggestion.package_overlays.all())
221+
packages = apply_package_overlays(original_packages, package_overlays)
222222

223223
only_relevant_data = CachedSuggestion(
224224
pk=suggestion.pk,
@@ -231,7 +231,7 @@ def cache_new_suggestions(suggestion: CVEDerivationClusterProposal) -> None:
231231
original_packages=packages,
232232
packages=packages,
233233
metrics=[to_dict(m) for m in prefetched_metrics],
234-
categorized_maintainers=categorize_maintainers(packages, maintainers_edits),
234+
categorized_maintainers=categorize_maintainers(packages, maintainer_overlays),
235235
categorized_references=categorize_references(
236236
suggestion.references, list(suggestion.reference_overlays.all())
237237
),
@@ -397,7 +397,7 @@ def parse_drv_name(name: str) -> tuple[str, str]:
397397

398398

399399
def maintainers_list(
400-
packages: dict, edits: list[MaintainersEdit]
400+
packages: dict, edits: list[MaintainerOverlay]
401401
) -> list[CachedSuggestion.Maintainer]:
402402
"""
403403
Returns a deduplicated list (by GitHub ID) of all the maintainers, as dicts,
@@ -411,12 +411,12 @@ def maintainers_list(
411411
to_skip_or_seen: set[int] = {
412412
m.maintainer.github_id
413413
for m in edits
414-
if m.edit_type == MaintainersEdit.EditType.REMOVE
414+
if m.edit_type == MaintainerOverlay.Type.REMOVE
415415
}
416416
to_add: list[CachedSuggestion.Maintainer] = [
417417
CachedSuggestion.Maintainer.model_validate(to_dict(m.maintainer))
418418
for m in edits
419-
if m.edit_type == MaintainersEdit.EditType.ADD
419+
if m.edit_type == MaintainerOverlay.Type.ADD
420420
]
421421

422422
maintainers: list[CachedSuggestion.Maintainer] = list()
@@ -473,7 +473,7 @@ def categorize_references(
473473

474474
def categorize_maintainers(
475475
packages: dict[str, CachedSuggestion.Package],
476-
maintainers_edits: list[MaintainersEdit],
476+
maintainer_overlays: list[MaintainerOverlay],
477477
) -> CachedSuggestion.CategorizedMaintainers:
478478
"""
479479
Categorize maintainers associated to the packages of a suggestion.
@@ -490,10 +490,10 @@ def categorize_maintainers(
490490
removed_github_ids = set()
491491
added_maintainers = []
492492

493-
for edit in maintainers_edits:
494-
if edit.edit_type == MaintainersEdit.EditType.REMOVE:
493+
for edit in maintainer_overlays:
494+
if edit.edit_type == MaintainerOverlay.Type.REMOVE:
495495
removed_github_ids.add(edit.maintainer.github_id)
496-
elif edit.edit_type == MaintainersEdit.EditType.ADD:
496+
elif edit.edit_type == MaintainerOverlay.Type.ADD:
497497
added_maintainers.append(
498498
CachedSuggestion.Maintainer.model_validate(to_dict(edit.maintainer))
499499
)

src/shared/logs/fetchers.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
)
2626
from shared.models import (
2727
CVEDerivationClusterProposalStatusEvent, # type: ignore
28-
MaintainersEditEvent, # type: ignore
29-
PackageEditEvent, # type: ignore
28+
MaintainerOverlayEvent, # type: ignore
29+
PackageOverlayEvent, # type: ignore
3030
ReferenceOverlayEvent, # type: ignore
3131
)
3232
from shared.models.linkage import CVEDerivationClusterProposal
@@ -87,7 +87,7 @@ def fetch_suggestion_events(
8787
)
8888

8989
package_qs = _annotate_username(
90-
PackageEditEvent.objects.select_related("pgh_context").filter(
90+
PackageOverlayEvent.objects.select_related("pgh_context").filter(
9191
suggestion_id__in=suggestion_ids
9292
)
9393
)
@@ -103,9 +103,9 @@ def fetch_suggestion_events(
103103
)
104104

105105
maintainer_qs = _annotate_username(
106-
MaintainersEditEvent.objects.select_related("pgh_context", "maintainer").filter(
107-
suggestion_id__in=suggestion_ids
108-
)
106+
MaintainerOverlayEvent.objects.select_related(
107+
"pgh_context", "maintainer"
108+
).filter(suggestion_id__in=suggestion_ids)
109109
)
110110
for m_event in maintainer_qs.iterator():
111111
result[m_event.suggestion_id].append(
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Generated by Django 5.2.9 on 2026-03-25 19:03
2+
3+
import pgtrigger.compiler
4+
import pgtrigger.migrations
5+
import django.db.models.deletion
6+
from django.db import migrations, models
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
dependencies = [
12+
('pghistory', '0007_auto_20250421_0444'),
13+
('shared', '0076_referenceoverlay_referenceoverlayevent_and_more'),
14+
]
15+
16+
operations = [
17+
migrations.RenameModel(
18+
old_name='MaintainersEdit',
19+
new_name='MaintainerOverlay',
20+
),
21+
migrations.RenameModel(
22+
old_name='PackageEdit',
23+
new_name='PackageOverlay',
24+
),
25+
migrations.AlterField(
26+
model_name='maintaineroverlay',
27+
name='suggestion',
28+
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='maintainer_overlays', to='shared.cvederivationclusterproposal'),
29+
),
30+
migrations.AlterField(
31+
model_name='packageoverlay',
32+
name='suggestion',
33+
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='package_overlays', to='shared.cvederivationclusterproposal'),
34+
),
35+
migrations.RenameModel(
36+
old_name='MaintainersEditEvent',
37+
new_name='MaintainerOverlayEvent',
38+
),
39+
migrations.RenameModel(
40+
old_name='PackageEditEvent',
41+
new_name='PackageOverlayEvent',
42+
),
43+
pgtrigger.migrations.RemoveTrigger(
44+
model_name='maintaineroverlayevent',
45+
name='append_only',
46+
),
47+
pgtrigger.migrations.RemoveTrigger(
48+
model_name='packageoverlayevent',
49+
name='append_only',
50+
),
51+
pgtrigger.migrations.AddTrigger(
52+
model_name='maintaineroverlayevent',
53+
trigger=pgtrigger.compiler.Trigger(name='append_only', sql=pgtrigger.compiler.UpsertTriggerSql(func="RAISE EXCEPTION 'pgtrigger: Cannot update or delete rows from % table', TG_TABLE_NAME;", hash='14c983337ff6aba25adee63596ad595ebc7addc0', operation='UPDATE OR DELETE', pgid='pgtrigger_append_only_57b9c', table='shared_maintaineroverlayevent', when='BEFORE')),
54+
),
55+
pgtrigger.migrations.AddTrigger(
56+
model_name='packageoverlayevent',
57+
trigger=pgtrigger.compiler.Trigger(name='append_only', sql=pgtrigger.compiler.UpsertTriggerSql(func="RAISE EXCEPTION 'pgtrigger: Cannot update or delete rows from % table', TG_TABLE_NAME;", hash='f805545d1a2028c9aa53955c61c9f2df72d9e44b', operation='UPDATE OR DELETE', pgid='pgtrigger_append_only_c0ffc', table='shared_packageoverlayevent', when='BEFORE')),
58+
),
59+
60+
migrations.RemoveConstraint(
61+
model_name='maintaineroverlay',
62+
name='unique_maintainer_edit_per_suggestion',
63+
),
64+
migrations.RemoveConstraint(
65+
model_name='packageoverlay',
66+
name='unique_package_edit_per_suggestion',
67+
),
68+
migrations.AddConstraint(
69+
model_name='maintaineroverlay',
70+
constraint=models.UniqueConstraint(fields=('suggestion', 'maintainer'), name='unique_maintainer_overlay_per_suggestion'),
71+
),
72+
migrations.AddConstraint(
73+
model_name='packageoverlay',
74+
constraint=models.UniqueConstraint(fields=('suggestion', 'package_attribute'), name='unique_package_overlay_per_suggestion'),
75+
),
76+
]

src/shared/models/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
from .linkage import (
55
CVEDerivationClusterProposal,
66
DerivationClusterProposalLink,
7-
MaintainersEdit,
8-
PackageEdit,
7+
MaintainerOverlay,
8+
PackageOverlay,
99
ProvenanceFlags,
1010
)
1111
from .nix_evaluation import *
1212

1313
__all__ = [
1414
"CVEDerivationClusterProposal",
15-
"MaintainersEdit",
16-
"PackageEdit",
15+
"MaintainerOverlay",
16+
"PackageOverlay",
1717
"ProvenanceFlags",
1818
"DerivationClusterProposalLink",
1919
]

0 commit comments

Comments
 (0)