asf-tooling commented on issue #184:
URL:
https://github.com/apache/tooling-trusted-releases/issues/184#issuecomment-4410435323
<!-- gofannon-issue-triage-bot v2 -->
**Automated triage** — analyzed at `main@2da7807a`
**Type:** `unclear` • **Classification:** `no_action` • **Confidence:**
`medium` • ⚠️ **Stale — consider closing**
**Application domain(s):** `distribution_tracking`, `announcement_publishing`
### Summary
Issue #184 requests 'Update catalog during ATR releases' but has no body
text, no comments, and no definition of what 'catalog' means. The term
'catalog' does not appear in any of the provided source files. The most likely
interpretation is that some kind of public release index/catalog should be
updated as part of the release announcement workflow in
`atr/storage/writers/announce.py`, but without clarification from the reporter,
this is not actionable.
### Where this lives in the code today
#### `atr/storage/writers/announce.py` — `CommitteeMember.release` (lines
103-115)
_extension point_
This is the release announcement method where a catalog update would most
logically be added - after promoting the release and before/after sending the
announcement email.
```python
async def release( # noqa: C901
self,
project_key: safe.ProjectKey,
version_key: safe.VersionKey,
preview_revision_number: safe.RevisionNumber,
email_to: str,
body: str,
download_path_suffix: safe.RelPath | None,
fullname: str,
subject_template_hash: str | None = None,
email_cc: list[str] | None = None,
email_bcc: list[str] | None = None,
) -> None:
```
#### `atr/storage/writers/announce.py` —
`CommitteeMember.__promote_in_database` (lines 294-317)
_currently does this_
The database promotion step during release - a catalog update task could be
enqueued alongside the email send task.
```python
async def __promote_in_database(
self, release: sql.Release, preview_revision_number:
safe.RevisionNumber, release_date: datetime.datetime
) -> None:
"""Promote a release preview to a release and delete its old
revisions."""
via = sql.validate_instrumented_attribute
update_stmt = (
sqlmodel.update(sql.Release)
.where(
via(sql.Release.key) == release.key,
via(sql.Release.phase) == sql.ReleasePhase.RELEASE_PREVIEW,
sql.latest_revision_number_query() ==
str(preview_revision_number),
)
.values(
phase=sql.ReleasePhase.RELEASE,
released=release_date,
)
)
update_result = await self.__data.execute_query(update_stmt)
# Avoid a type error with update_result.rowcount
# Could not find another way to do it, other than using a Protocol
rowcount: int = getattr(update_result, "rowcount", 0)
if rowcount != 1:
raise RuntimeError("A newer revision appeared, please refresh
and try again.")
```
### Proposed approach
Cannot determine an approach without knowing what 'catalog' refers to.
Possible interpretations include: (1) A public JSON/HTML index of all ATR
releases, (2) An SVN-based release catalog at dist.apache.org, (3) A metadata
file tracking released versions for a project. The reporter needs to clarify
what catalog should be updated, where it lives, and what format it uses.
### Open questions
- What does 'catalog' refer to in this context? Is it a public index, an SVN
file, a database view, or something else?
- Where is this catalog hosted/stored?
- What format should the catalog be in (JSON, HTML, XML)?
- Should the catalog update be synchronous (blocking the release) or
asynchronous (a background task)?
- Is there an existing catalog that needs to be kept in sync, or does one
need to be created from scratch?
### Staleness assessment
_opened 323 days ago; no human comments since opening._
Issue was opened 323 days ago with no body text and has had zero human
comments. Last activity was 217 days ago. The issue lacks sufficient detail to
be actionable - 'catalog' is not defined anywhere in the provided codebase.
While the release announcement code (announce.py) still exists and is clearly
the extension point, the issue itself has been abandoned without clarification.
**Recommendation: consider closing this issue.** If the maintainer agrees,
the agent's assessment above provides the rationale to include in a closing
comment.
_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/storage/writers/distributions.py`
- `atr/storage/writers/announce.py`
- `atr/tasks/distribution.py`
- `atr/attestable.py`
- `atr/post/distribution.py`
- `atr/shared/distribution.py`
- `atr/get/distribution.py`
- `atr/models/attestable.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]