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

   <!-- gofannon-issue-triage-bot v2 -->
   
   **Automated triage** — analyzed at `main@2da7807a`
   
   **Type:** `new_feature`  •  **Classification:** `actionable`  •  
**Confidence:** `low`  •  ⚠️ **Possibly stale**
   **Application domain(s):** `announcement_publishing`, 
`project_committee_management`
   
   ### Summary
   This issue requests adding documentation and instructions for PMCs that use 
repository.apache.org (Apache's Nexus repository manager) to participate in the 
ATR announcement workflow. The current codebase has no mention of 
repository.apache.org — announcements reference download URLs based on 
dist.apache.org/downloads infrastructure. No prior discussion exists to clarify 
what form these 'instructions' should take (UI help text, template variables, 
docs pages, or distribution platform integration).
   
   ### Where this lives in the code today
   
   #### `atr/construct.py` — `announce_release_subject_and_body` (lines 83-102)
   _extension point_
   This function performs variable substitution in announcement emails; it 
currently generates DOWNLOAD_URL from the dist infrastructure but could be 
extended to include repository.apache.org links.
   
   ```python
   async def announce_release_subject_and_body(
       subject: str, body: str, options: AnnounceReleaseOptions
   ) -> tuple[str, str]:
       try:
           host = quart.request.host
       except RuntimeError:
           host = config.get().APP_HOST
   
       async with db.session() as data:
           release = await data.release(
               project_key=str(options.project_key),
               version=str(options.version_key),
               _project=True,
               _committee=True,
               phase=sql.ReleasePhase.RELEASE_PREVIEW,
           ).demand(RuntimeError(f"Release {options.project_key} 
{options.version_key} not found"))
           ...
       download_url = paths.committee_downloads_url(host, committee)
       ...
       body = body.replace("{{DOWNLOAD_URL}}", download_url)
   ```
   
   #### `atr/get/projects.py` — `_render_finish_form` (lines 396-415)
   _extension point_
   The project settings page where PMCs configure their announcement templates; 
documentation or guidance about repository.apache.org could be added here.
   
   ```python
   async def _render_finish_form(project: sql.Project) -> htm.Element:
       card = htm.Block(htm.div, classes=".card.mb-4")
       
card.div(".card-header.bg-light.d-flex.justify-content-between.align-items-center")[
           htm.h3(".mb-0")["Release policy - Finish options"]
       ]
   
       announce_release_subject_widget = _input_with_variables(
           field_name="announce_release_subject",
           default_value=project.policy_announce_release_subject or "",
           template_variables=construct.announce_subject_template_variables(),
           documentation="Subject line template for announcement emails.",
       )
   
       announce_release_template_widget = _textarea_with_variables(
           field_name="announce_release_template",
           default_value=project.policy_announce_release_template or "",
           template_variables=construct.announce_template_variables(),
           rows=18,
           documentation="Email template for messages to announce a finished 
release.",
       )
   ```
   
   #### `atr/get/announce.py` — `selected` (lines 40-50)
   _extension point_
   The announcement page GET handler where contextual help or documentation 
about repository.apache.org could be rendered.
   
   ```python
   @get.typed
   async def selected(
       session: web.Committer,
       _announce: Literal["announce"],
       project_key: safe.ProjectKey,
       version_key: safe.VersionKey,
   ) -> str | web.WerkzeugResponse:
       """
       URL: /announce/<project_key>/<version_key>
       Allow the user to announce a release preview.
       """
   ```
   
   ### Where new code would go
   - `atr/construct.py` — after symbol TEMPLATE_VARIABLES
     A new template variable (e.g. REPOSITORY_URL or STAGING_URL) could be 
added for PMCs using repository.apache.org.
   - `atr/get/announce.py` — after symbol _render_page
     Documentation or help text about repository.apache.org could be 
conditionally rendered in the announcement page for relevant PMCs.
   
   ### Proposed approach
   The issue is underspecified. PMCs using repository.apache.org (Apache's 
Nexus/Maven staging repository) have a different release workflow from those 
using dist.apache.org SVN. The ATR announcement system currently constructs 
DOWNLOAD_URL from the dist infrastructure. For Nexus-based PMCs, the 
announcement might need to reference a staging repository URL or a Maven 
Central URL. Possible approaches: (1) Add a new template variable like 
{{REPOSITORY_URL}} that PMCs can optionally include in their announcement 
templates; (2) Add project-level configuration for repository.apache.org 
staging URLs; (3) Add contextual help text in the UI for PMCs that use Nexus. 
Without further discussion from the issue author or maintainers, it's unclear 
which approach is intended.
   
   ### Open questions
   - What specific 'documentation and instructions' are needed — is this UI 
help text, template examples, a new template variable, or external 
documentation?
   - Should repository.apache.org be added as a tracked distribution platform 
(alongside PyPI, npm, etc.)?
   - Does 'Beta announcement' in the title refer to ATR's own beta status, or 
to a beta release workflow feature?
   - Should projects have a configuration option to specify their 
repository.apache.org staging URL for inclusion in vote/announce emails?
   - Is this blocked on ATR reaching a certain maturity level before inviting 
Nexus-based PMCs to participate?
   
   ### Staleness assessment
   
   _opened 199 days ago; no human comments since opening._
   
   The issue was created 199 days ago with zero human comments and no 
discussion. The last update (69 days ago) appears to be automated. The issue 
body is a single vague sentence with no specification of what changes are 
needed. No code has been added to address repository.apache.org integration 
since the issue was filed.
   
   ### Files examined
   - `atr/construct.py`
   - `atr/storage/writers/announce.py`
   - `atr/get/announce.py`
   - `atr/post/announce.py`
   - `atr/shared/announce.py`
   - `atr/tasks/svn.py`
   - `atr/svn/__init__.py`
   - `atr/get/projects.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