asf-tooling commented on issue #829:
URL:
https://github.com/apache/tooling-trusted-releases/issues/829#issuecomment-4410086883
<!-- gofannon-issue-triage-bot v2 -->
**Automated triage** — analyzed at `main@2da7807a`
**Type:** `discussion` • **Classification:** `no_action` •
**Confidence:** `high`
**Application domain(s):** `artifact_upload`, `distribution_tracking`,
`project_committee_management`
### Summary
This is a research/planning issue about studying what would be needed to
replace repository.apache.org (RAO) with ATR functionality. It outlines areas
to investigate including snapshot/staging uploads and downloads, Maven Central
publishing, user credentials, and project coordinates. @sbp noted that this
work is planned for after going to beta, making it explicitly deferred. No code
changes are needed at this time.
### Where this lives in the code today
#### `atr/get/upload.py` — `selected` (lines 38-47)
_currently does this_
Current upload functionality handles file uploads via browser, SVN, rsync,
and GitHub workflows - relates to the 'uploading bundles/packages/files' aspect
of the issue.
```python
@get.typed
async def selected(
session: web.Committer,
_upload: Literal["upload"],
project_key: safe.ProjectKey,
version_key: safe.VersionKey,
) -> str:
"""
URL: /upload/<project_key>/<version_key>
"""
```
#### `atr/get/download.py` — `all_selected` (lines 42-52)
_currently does this_
Current download functionality for release files - relates to the
'downloading bundles/packages/files' aspect of the issue.
```python
@get.typed
async def all_selected(
session: web.Committer,
_download_all: Literal["download/all"],
project_key: safe.ProjectKey,
version_key: safe.VersionKey,
) -> web.WerkzeugResponse | str:
"""
URL: /download/all/<project_key>/<version_key>
Display download commands for a release.
"""
```
#### `atr/get/distribution.py` — `stage_automate` (lines 38-49)
_currently does this_
Existing staging distribution automation - relates to the 'pushing staging
to Maven Central' aspect of the issue.
```python
@get.typed
async def stage_automate(
session: web.Committer,
_distribution: Literal["distribution/stage/automate"],
project_key: safe.ProjectKey,
version_key: safe.VersionKey,
) -> str:
"""
URL: /distribution/stage/automate/<project_key>/<version_key>
"""
await session.prevent_confusing_ui_display(project_key)
return await _automate_form_page(project_key, version_key, staging=True)
```
#### `atr/storage/writers/distributions.py` — `CommitteeMember.automate`
(lines 95-108)
_currently does this_
Backend distribution automation logic that queues Maven Central publishing
tasks - directly relates to the 'pushing staging to Maven Central' requirement.
```python
async def automate(
self,
release_key: models.safe.ReleaseKey,
platform: models.sql.DistributionPlatform,
committee_key: str,
owner_namespace: models.safe.Alphanumeric | None,
project_key: models.safe.ProjectKey,
version_key: models.safe.VersionKey,
phase: str,
revision_number: str | None,
package: models.safe.Alphanumeric,
version: models.safe.VersionKey,
staging: bool,
) -> models.sql.Task:
```
### Proposed approach
This issue is explicitly deferred per @sbp's comment: 'We plan to do this
after going to beta.' No code changes should be proposed at this time. The
issue serves as a tracking/planning artifact for future work. When the time
comes, the existing upload, download, and distribution subsystems would serve
as extension points for implementing RAO replacement functionality, potentially
with new domains served from the same Hypercorn instance (as suggested in the
issue body).
### Open questions
- What constitutes 'going to beta' - is there a milestone or issue tracking
that?
- How much of the RAO functionality (snapshots, staging repos, proxying)
overlaps with existing ATR distribution management vs. requires entirely new
subsystems?
- Would replacing RAO require a Maven repository protocol implementation
(e.g., serving artifacts via Maven-compatible URL paths for tools like
mvn/gradle)?
- What are the current usage patterns of repository.apache.org that need to
be preserved?
_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/get/download.py`
- `atr/get/upload.py`
- `atr/post/upload.py`
- `atr/get/distribution.py`
- `atr/get/file.py`
- `atr/post/distribution.py`
- `atr/shared/upload.py`
- `atr/storage/writers/distributions.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]