From 4f581efab46da01f61fdbe61ac39e9a0ecd31c1c Mon Sep 17 00:00:00 2001 From: Rudi Matz Date: Mon, 8 Jun 2026 09:53:16 -0400 Subject: [PATCH] Revert "feat: add task to backfill final_review start dates (#1333)" This reverts commit 667d51579ad5ce10275f13693b214233dfa1a66d. --- rpc/lifecycle/final_review.py | 105 ---------------------------------- rpc/tasks.py | 44 -------------- 2 files changed, 149 deletions(-) delete mode 100644 rpc/lifecycle/final_review.py diff --git a/rpc/lifecycle/final_review.py b/rpc/lifecycle/final_review.py deleted file mode 100644 index 3c840246..00000000 --- a/rpc/lifecycle/final_review.py +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright The IETF Trust 2026, All Rights Reserved - -import datetime -import logging - -logger = logging.getLogger(__name__) - -# (draft_name, start_date, assignment_pk) — assignment_pk is the PK of the first -# final_review_editor Assignment for that draft; start_date is when it was created -FINAL_REVIEW_START_DATES = [ - ("draft-ietf-tls-rfc8446bis", "2025-12-15", 154), - ("draft-ietf-tls-keylogfile", "2025-12-16", 114), - ("draft-ietf-tls-tls12-frozen", "2026-01-05", 120), - ("draft-ietf-uta-require-tls13", "2026-01-06", 126), - ("draft-ietf-stir-servprovider-oob", "2025-10-21", 144), - ("draft-ietf-pce-pceps-tls13", "2026-01-16", 30), - ("draft-ietf-netconf-over-tls13", "2026-01-16", 36), - ("draft-ietf-lamps-rfc5019bis", "2026-01-16", 88), - ("draft-ietf-pce-sid-algo", "2026-02-19", 193), - ("draft-ietf-cose-merkle-tree-proofs", "2026-03-06", 170), - ("draft-ietf-scitt-architecture", "2026-03-06", 182), - ("draft-ietf-tls-hybrid-design", "2026-04-03", 175), - ("draft-ietf-pquip-hybrid-signature-spectrums", "2026-04-03", 3), - ("draft-ietf-pquip-pqc-engineers", "2026-04-27", 137), - ("draft-ietf-emu-bootstrapped-tls", "2026-04-27", 188), - ("draft-ietf-stir-rfc4916-update", "2026-05-01", 213), - ("draft-ietf-bmwg-mlrsearch", "2026-05-13", 218), - ("draft-ietf-tls-8773bis", "2026-04-06", 162), - ("draft-ietf-bier-oam-requirements", "2026-05-04", 51), - ("draft-ietf-dnsop-cds-consistency", "2026-05-06", 256), - ("draft-ietf-opsawg-prefix-lengths", "2026-05-06", 262), - ("draft-ietf-bfd-stability", "2026-05-07", 234), - ("draft-ietf-mailmaint-messageflag-mailboxattribute", "2026-05-07", 268), - ("draft-ietf-openpgp-pqc", "2026-05-08", 200), - ("draft-ietf-sidrops-manifest-numbers", "2026-05-08", 311), - ("draft-ietf-calext-jscontact-uid", "2026-05-12", 305), - ("draft-ietf-netconf-udp-client-server", "2026-05-13", 275), - ("draft-ietf-bfd-optimizing-authentication", "2026-05-19", 241), - ("draft-ietf-sshm-ssh-agent", "2026-05-14", 373), - ("draft-ietf-avtcore-rtp-haptics", "2026-05-18", 317), -] - - -def backfill_final_review_history(dry_run: bool = False) -> tuple[int, int]: - """Backfill missing history creation entries for final_review_editor assignments. - - Returns (added, skipped). - """ - from rpc.models import Assignment - - HistoricalAssignment = Assignment.history.model - added = 0 - skipped = 0 - - for draft_name, date_str, assignment_pk in FINAL_REVIEW_START_DATES: - start_date = datetime.datetime.strptime(date_str, "%Y-%m-%d").replace( - hour=12, tzinfo=datetime.UTC - ) - - existing_qs = HistoricalAssignment.objects.filter( - id=assignment_pk, - history_type="+", - rfc_to_be__draft__name=draft_name, - ) - count = existing_qs.count() - if count != 1: - logger.warning( - "backfill_final_review_history: expected 1 history entry for %s " - "assignment #%d, found %d, skipping", - draft_name, - assignment_pk, - count, - ) - skipped += 1 - continue - existing = existing_qs.get() - - if existing.history_date == start_date: - logger.info( - "backfill_final_review_history: %s assignment #%d already has " - "correct date %s, skipping", - draft_name, - assignment_pk, - date_str, - ) - skipped += 1 - continue - if not dry_run: - existing.history_date = start_date - existing.history_change_reason = ( - "Added (Backfilled final review start date)" - ) - existing.save(update_fields=["history_date", "history_change_reason"]) - prefix = "[DRY RUN] " if dry_run else "" - logger.info( - "backfill_final_review_history: %supdated history_date for %s " - "assignment #%d → %s", - prefix, - draft_name, - assignment_pk, - date_str, - ) - added += 1 - - return added, skipped diff --git a/rpc/tasks.py b/rpc/tasks.py index d88cab7a..63474ba0 100644 --- a/rpc/tasks.py +++ b/rpc/tasks.py @@ -37,50 +37,6 @@ RPC_PERSON_NAME_MAP_CACHE_TTL = 20 * 60 # seconds -@shared_task -def backfill_final_review_history_task(dry_run: bool = False): - """One-time backfill of missing history creation entries for - final_review_editor assignments. - - Guards against re-runs via TaskRun — subsequent calls are no-ops. - Pass dry_run=True to log what would be done without writing anything. - """ - from django.db import transaction - from django.utils import timezone - - from rpc.lifecycle.final_review import backfill_final_review_history - from rpc.models import TaskRun - - TASK_NAME = "backfill_final_review_history" - - if dry_run: - logger.info("%s: dry run — no changes will be saved", TASK_NAME) - added, skipped = backfill_final_review_history(dry_run=True) - logger.info("%s complete: %d would add, %d skipped", TASK_NAME, added, skipped) - return - - with transaction.atomic(): - task_run, created = TaskRun.objects.get_or_create( - task_name=TASK_NAME, - defaults={"last_run_at": timezone.now(), "is_running": False}, - ) - if not created: - logger.info( - "%s already ran on %s, skipping", TASK_NAME, task_run.last_run_at - ) - return - task_run.is_running = True - task_run.save() - - try: - added, skipped = backfill_final_review_history() - logger.info("%s complete: %d added, %d skipped", TASK_NAME, added, skipped) - task_run.last_run_at = timezone.now() - finally: - task_run.is_running = False - task_run.save() - - @shared_task def set_stream_manager_task(rfc_to_be_id: int): """Resolve and persist the stream_manager FK for a RfcToBe."""