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]