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

   <!-- gofannon-issue-triage-bot v2 -->
   
   **Automated triage** — analyzed at `main@2da7807a`
   
   **Type:** `documentation`  •  **Classification:** `no_action`  •  
**Confidence:** `medium`
   **Application domain(s):** `announcement_publishing`, `release_lifecycle`
   
   ### Summary
   This issue requests updating external Apache Infrastructure documentation 
(infra.apache.org/release-download-pages.html) to reflect that ATR now 
automates the SVN dist release process. The documentation changes are needed on 
an external website (apache/infrastructure-website), not in this codebase. The 
ATR code that performs these SVN dist operations already exists and works 
correctly—the gap is in the external documentation that still describes the old 
manual process.
   
   ### Where this lives in the code today
   
   #### `atr/storage/writers/announce.py` — 
`CommitteeMember.__hard_link_downloads` (lines 263-284)
   _currently does this_
   This method publishes release files to the downloads directory (which is 
served as the SVN dist area), the behavior the external documentation needs to 
describe.
   
   ```python
       async def __hard_link_downloads(
           self,
           committee: sql.Committee,
           unfinished_path: safe.StatePath,
           download_path_suffix: safe.RelPath | None,
           dry_run: bool = False,
           preserve: bool = False,
       ) -> None:
           """Hard link the release files to the downloads directory."""
           downloads_path = paths.committee_downloads_dir(committee)
           if download_path_suffix is not None:
               downloads_path = downloads_path / download_path_suffix.as_path()
           # The "exist_ok" parameter means to overwrite files if True
           # We only overwrite if we're not preserving, so we supply "not 
preserve"
           # TODO: Add a test for this
           await util.create_hard_link_clone(
               unfinished_path,
               downloads_path,
               do_not_create_dest_dir=dry_run,
               exist_ok=not preserve,
               dry_run=dry_run,
           )
   ```
   
   #### `atr/storage/writers/announce.py` — `CommitteeMember.release` (lines 
103-115)
   _currently does this_
   The main release announcement method that orchestrates moving files to 
published state and updating the downloads directory (SVN dist), which is the 
ATR workflow the external docs should describe.
   
   ```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/svn/__init__.py` — `commit` (lines 94-115)
   _currently does this_
   SVN commit capability that ATR uses to write to SVN repositories, part of 
the automated process that replaces manual SVN dist management.
   
   ```python
   async def commit(path: pathlib.Path, url: str, username: str, revision: str, 
message: str) -> str:
       log.debug(f"running svn commit for user '{username}' to '{url}'")
       # The username here is the ASF UID of the committer
       svn_token = config.get().SVN_TOKEN
       if svn_token is None:
           raise ValueError("SVN_TOKEN must be set")
       return await _run_svnmucc_command(
           "put",
           str(path),
           url,
           "--username",
           username,
           "--password",
           svn_token,
           "--non-interactive",
           "--with-revprop",
           f"asf:tool={_ASF_TOOL}",
           "-r",
           revision,
           "-m",
           message,
       )
   ```
   
   ### Proposed approach
   This issue is about updating documentation on an external website 
(https://infra.apache.org/release-download-pages.html), which lives in the 
apache/infrastructure-website repository, not in this ATR repository. The ATR 
code itself already implements the SVN dist release automation correctly. The 
work required is to update the external Infrastructure docs to explain that 
projects using ATR no longer need to manually manage SVN dist—ATR handles 
publishing release artifacts to the downloads directory as part of its 
announce/publish workflow.
   
   No code changes are needed in this repository. The appropriate action is to 
file an issue or PR against the apache/infrastructure-website repository to 
update the 'Current and older releases' section of release-download-pages.html 
to mention ATR as an alternative workflow that automates SVN dist management.
   
   ### Open questions
   - Should this issue be transferred to the apache/infrastructure-website 
repository where the documentation actually lives?
   - Is there any in-repo documentation (e.g., a docs/ directory or README) 
that should also describe how ATR interacts with SVN dist?
   - Does ATR also handle the SVN commit to dist/release (not just the 
downloads hard-linking), or is there a separate sync process?
   
   _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/announce.py`
   - `atr/post/announce.py`
   - `atr/svn/__init__.py`
   - `atr/tasks/svn.py`
   - `atr/get/published.py`
   - `atr/svn/commits.py`
   - `atr/get/announce.py`
   - `atr/storage/writers/release.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