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]

Reply via email to