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]