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]