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

   <!-- gofannon-issue-triage-bot v2 -->
   
   **Automated triage** — analyzed at `main@2da7807a`
   
   **Type:** `unclear`  •  **Classification:** `no_action`  •  **Confidence:** 
`medium`
   **Application domain(s):** `shared_infrastructure`, `release_lifecycle`
   
   ### Summary
   Issue #937 is titled 'Committee release catalog schema and model complete' 
but the body contains only a single sentence: 'Punchlist for Committee release 
catalog and related features.' No actual punchlist items, acceptance criteria, 
or specific tasks are listed. The related schema elements (LifecycleEvent, 
ProjectCycle, CLE generator) already exist in the codebase, but without 
concrete tasks it's impossible to determine what 'complete' means or what 
changes are needed.
   
   ### Where this lives in the code today
   
   #### `atr/models/sql.py` — `LifecycleEventType` (lines 262-268)
   _currently does this_
   Existing lifecycle event types that likely relate to the release catalog 
schema.
   
   ```python
   class LifecycleEventType(enum.StrEnum):
       RELEASE = "release"
       ARCHIVE = "archive"
       WITHDRAW = "withdraw"
       EOD = "eod"
       EOS = "eos"
       EOL = "eol"
   ```
   
   #### `atr/models/sql.py` — `Project` (lines 714-724)
   _currently does this_
   The Project model already has releases and cycles relationships that form 
part of a release catalog.
   
   ```python
   class Project(sqlmodel.SQLModel, table=True):
       key: str = sqlmodel.Field(primary_key=True, unique=True, 
**example("example"))
       name: str | None = sqlmodel.Field(default=None, **example("Apache 
Example"))
       status: ProjectStatus = sqlmodel.Field(default=ProjectStatus.ACTIVE, 
**example(ProjectStatus.ACTIVE))
       ...
       releases: list["Release"] = 
sqlmodel.Relationship(back_populates="project")
       cycles: list["ProjectCycle"] = sqlmodel.Relationship(
           back_populates="project",
           cascade_delete=True,
           sa_relationship_kwargs={"cascade": "all, delete-orphan"},
       )
   ```
   
   #### `atr/cle.py` — `project_document` (lines 62-75)
   _currently does this_
   Existing CLE document generator that renders lifecycle events per project - 
likely part of the catalog output.
   
   ```python
   def project_document(
       project: sql.Project,
       events: Iterable[sql.LifecycleEvent],
       releases: Iterable[sql.Release],
       *,
       now: datetime.datetime,
   ) -> dict[str, Any]:
       """Generate a CLE document covering every event for a project.
   
       This is the canonical form per ECMA-428: one document per component.
       `releases` are needed to resolve version strings and cycle release sets
       at render time.
       """
       return _document(project, list(events), list(releases), now=now)
   ```
   
   #### `atr/db/__init__.py` — `Session.project_cycle` (lines 432-447)
   _currently does this_
   Existing query builder for ProjectCycle which is part of the catalog model 
infrastructure.
   
   ```python
       def project_cycle(
           self,
           cycle_key: Opt[str] = NOT_SET,
           project_key: Opt[str] = NOT_SET,
           cycle: Opt[str] = NOT_SET,
           _project: bool = False,
           _releases: bool = False,
       ) -> Query[sql.ProjectCycle]:
           query = sqlmodel.select(sql.ProjectCycle)
   
           if is_defined(cycle_key):
               query = query.where(sql.ProjectCycle.cycle_key == cycle_key)
           if is_defined(project_key):
               query = query.where(sql.ProjectCycle.project_key == project_key)
           if is_defined(cycle):
               query = query.where(sql.ProjectCycle.cycle == cycle)
   ```
   
   ### Proposed approach
   Cannot propose an approach because the issue body contains no actual 
punchlist items. The issue appears to be a tracking/umbrella issue that either 
links to sub-issues, was meant to be elaborated on later, or tracks work that 
was discussed outside this repository. The existing codebase already has 
LifecycleEvent types, ProjectCycle, CLE document generation, and release 
management models. Without knowing which specific schema additions or model 
changes are needed, no actionable work can be identified.
   
   ### Open questions
   - What specific items are on the punchlist? The issue body only says 
'Punchlist for Committee release catalog and related features' with no 
enumerated tasks.
   - Is this issue tracking work defined in sub-issues, a project board, or 
external documentation?
   - What does 'complete' mean - are there missing fields on existing models, 
new models needed, new API endpoints, or UI pages?
   - Does 'Committee release catalog' refer to a new public-facing view/API 
that lists all releases for a committee, or to internal schema changes?
   
   _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/models/sql.py`
   - `atr/cle.py`
   - `tests/unit/datasources/testdata/committees.json`
   - `atr/db/__init__.py`
   - `atr/storage/writers/release.py`
   - `atr/storage/writers/revision.py`
   - `tests/unit/datasources/test_apache.py`
   - `tests/unit/test_admin_delete_committee_keys.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