We will iterate on these during implementation.
- Release Storage. A large filesystem with folders for each release's files.
- Metadata Database. A database on the server with the metadata schema.
See Data Model for a discussion of the objects managed by the ATR.
asfquart
based asynchronous python web service.- Fronted by
httpd
. - Static content may be served without going through
asfquart
. - Monolithic.
- Fronted by a CDN. The caching policies need to be properly defined.
- These domains continue to work in the same way:
- archive.apache.org
- downloads.apache.org and dlcdn.apache.org
- dist.apache.org
- See Legacy Releases from SVN Dist. In this development phase we prefer to be at transition 2.
- Build Releases
- Candidate Releases
- Current Releases
- Archived / Revoked / EOL / Atticked Releases
“Nightlies” a particular build type is for a later phase.
See Release Lifecycle for how phases are chained together to perform a Release.
The co-ordinates make up the external path to objects. The metadata database provides the map to the local path.
- Stage (Candidate, Current, Archived, …)
- PMC (Responsible TLP or Incubator PPMC)
- Product Line (Main, Sub-projects)
- Version (String, latest)
- Files, Metadata (A release is a folder of one or more files or sub-folders)
The following are examples. We will iterate during implementation.
- Latest main product release:
/<stage>/<pmc>/latest/<file>
- Main product by version:
/<stage>/<pmc>/<version>/<file>
- Latest product release:
/<stage>/<pmc>/<product>/latest/<file>
- Product release by version:
/<stage>/<pmc>/<product>/<version>/<file>
-
GET
- Metadata
- Release
- Package files including SBOMs
- Signing keys
-
CRUD on
- Releases - Delete is not removal. It is a stage.
- Artifacts - Managed with a Release. Infra can do targeted full CRUD on artifacts if required.
- Public Signing Keys - Delete only if unused.
- Votes - Store each vote in metadata.
- SBOMs - Special files stored in the release folder.
-
POST Phases - Transitions, Activities, and Communication
- Transition into Phase.
- Perform Phase activity.
- Optionally email phase status.
See Release Lifecycle for how phases are chained together to perform a Release.
-
POST Templated Emails
- Announcements
- Votes
- Status
- Transitions
Note: this section is a flexible outline of what we intend for the UI, and may change during implementation.
-
Directory Pages
- PMC directory (main page) - excludes podlings and atticked PMCs
- PMC release directory (also PPMC)
- Incubator podling directory
- Atticked PMC directory
-
Release Page
- Download page requirements
- Release level metadata
- PMC Information and webspage links
- Download package from directory of release
- Maintenance actions
- History of events
-
PMC Management Page
- PMC level metadata and releases
- Product level metadata and releases
- Manage releases
- PMC lifecycle transitions - podling, TLP, attic.
-
System Admin Page
- Manage Distribution Channels
- Perform Migration Tasks
- Enable GHA Builds
- Manage PMC Transitions
- Watch Operations
-
Audit Page
- ASF event history
- PMC event history
- Product event history
-
Page Template
- Responsive with Header(Hamburger)/Content/Footer.
- Include Search in Header(Hamburger)