asf-tooling commented on issue #934:
URL: 
https://github.com/apache/tooling-trusted-releases/issues/934#issuecomment-4409978623

   <!-- gofannon-issue-triage-bot v2 -->
   
   **Automated triage** — analyzed at `main@2da7807a`
   
   **Type:** `discussion`  •  **Classification:** `no_action`  •  
**Confidence:** `medium`
   **Application domain(s):** `release_lifecycle`
   
   ### Summary
   Issue #934 is a tracking/punch list issue for completing the Finish phase, 
but the issue body contains no enumerated items — it simply states 'Punch list 
to complete the Finish phase.' There is no prior discussion. From the code, I 
can identify several areas of incompleteness: distribution automation is 
explicitly marked as under development, and the overall announce/publish 
workflow may need further work. However, without a concrete list of desired 
changes or any discussion, this remains an open-ended tracking issue.
   
   ### Where this lives in the code today
   
   #### `atr/get/finish.py` — `_render_dist_warning` (lines 209-217)
   _currently does this_
   Explicitly states that automatic distribution tools are still being 
developed — a clear indicator of incomplete functionality in the Finish phase.
   
   ```python
   def _render_dist_warning() -> htm.Element:
       """Render the alert about distribution tools."""
       return htm.div(".alert.alert-warning.mb-4", role="alert")[
           htm.p(".fw-semibold.mb-1")["NOTE:"],
           htm.p(".mb-1")[
               "Tools to distribute automatically are still being developed, "
               "you must do this manually at present. Please use the manual 
record function below to do so.",
           ],
       ]
   ```
   
   #### `atr/get/finish.py` — `selected` (lines 60-70)
   _currently does this_
   Main GET handler for the Finish page, rendering distribution, tidy-up, and 
announce sections.
   
   ```python
   @get.typed
   async def selected(
       session: web.Committer,
       _finish: Literal["finish"],
       project_key: safe.ProjectKey,
       version_key: safe.VersionKey,
   ) -> tuple[web.QuartResponse, int] | web.WerkzeugResponse | str:
       """
       URL: /finish/<project_key>/<version_key>
       Finish a release preview.
       """
   ```
   
   #### `atr/post/finish.py` — `selected` (lines 32-49)
   _currently does this_
   POST handler currently supports only two operations (delete empty directory, 
remove RC tags). Additional finish operations may need to be added here.
   
   ```python
   @post.typed
   async def selected(
       session: web.Committer,
       _finish: Literal["finish"],
       project_key: safe.ProjectKey,
       version_key: safe.VersionKey,
       finish_form: shared.finish.FinishForm,
   ) -> tuple[web.QuartResponse, int] | web.WerkzeugResponse:
       """
       URL: /finish/<project_key>/<version_key>
       """
       respond = _respond_helper(session, project_key, version_key)
   
       match finish_form:
           case shared.finish.DeleteEmptyDirectoryForm() as delete_form:
               return await _delete_empty_directory(delete_form, session, 
project_key, version_key, respond)
           case shared.finish.RemoveRCTagsForm():
               return await _remove_rc_tags(session, project_key, version_key, 
respond)
   ```
   
   #### `atr/storage/writers/release.py` — 
`CommitteeParticipant.remove_rc_tags` (lines 585-607)
   _currently does this_
   Storage-layer implementation of RC tag removal, restricted to 
RELEASE_PREVIEW phase — one of the existing Finish operations.
   
   ```python
       async def remove_rc_tags(
           self, project_key: safe.ProjectKey, version_key: safe.VersionKey
       ) -> tuple[str | None, int, list[str]]:
           description = "Remove RC tags from paths via web interface"
           error_messages: list[str] = []
           renamed_count = 0
   
           async def modify(path: safe.StatePath, _old_rev: sql.Revision | 
None) -> None:
               nonlocal renamed_count
               renamed_count = await self.__remove_rc_tags_revision(path, 
error_messages)
   
           try:
               await self.__write_as.revision.create_revision_with_quarantine(
                   project_key,
                   version_key,
                   self.__asf_uid,
                   allowed_phases=frozenset({sql.ReleasePhase.RELEASE_PREVIEW}),
                   description=description,
                   modify=modify,
               )
           except types.FailedError as e:
               return str(e), renamed_count, error_messages
           return None, renamed_count, error_messages
   ```
   
   ### Proposed approach
   This issue is a tracking/punch list issue with no enumerated items in the 
body and no prior discussion. From the code, identifiable areas of 
incompleteness in the Finish phase include: (1) distribution automation 
(explicitly marked as under development in _render_dist_warning), (2) potential 
additional tidy-up operations beyond the two currently supported, and (3) the 
announce/publish workflow that transitions RELEASE_PREVIEW to RELEASE. Without 
a concrete list from the issue author or team discussion, it's not possible to 
produce targeted patches. The issue likely serves as a reminder to the 
maintainers to enumerate and track remaining work items.
   
   ### Open questions
   - What specific items are on the punch list? The issue body doesn't 
enumerate them.
   - Is the announce/publish workflow (linked via atr/get/announce.py) already 
complete or does it need work?
   - Are there additional tidy-up operations planned beyond 
delete-empty-directory and remove-RC-tags?
   - What is the status of automatic distribution tooling — is it being tracked 
in separate issues?
   - Does the RELEASE_PREVIEW → RELEASE phase transition have all necessary 
validation and side effects implemented?
   
   _The agent reviewed this issue and is not proposing patches in this run. 
Review the existing-code citations and open questions above before deciding 
next steps._
   
   ### Files examined
   - `atr/get/finish.py`
   - `atr/post/finish.py`
   - `atr/shared/finish.py`
   - `atr/storage/writers/release.py`
   - `atr/post/revisions.py`
   - `atr/storage/readers/releases.py`
   - `atr/storage/writers/revision.py`
   - `atr/get/release.py`
   
   ---
   *Draft from a triage agent. A human reviewer should validate before merging 
any change. The agent did not run tests or verify diffs apply.*


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to