Skip to content

Commit f70a64b

Browse files
committed
Add platform page
1 parent 119a135 commit f70a64b

File tree

2 files changed

+133
-3
lines changed

2 files changed

+133
-3
lines changed

content/pages/platform.md

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
Title: Apache Trusted Release Platform Services
2+
license: https://www.apache.org/licenses/LICENSE-2.0
3+
4+
5+
_This is a discussion and the actual implementation will diverge._
6+
7+
https://releases.apache.org
8+
9+
## Datastore
10+
11+
> We will iterate on these during implementation.
12+
13+
1. Release Storage. A large filesystem with folders for each release's files.
14+
2. Metadata Database. A database on the server with the metadata schema.
15+
16+
See [Data Model](https://github.com/apache/tooling-docs/blob/main/apache-trusted-release/data-model.md) for a discussion of the objects managed by the ATR.
17+
18+
## Web Service
19+
20+
1. `asfquart` based asynchronous python web service.
21+
2. Fronted by `httpd`.
22+
3. Static content may be served without going through `asfquart`.
23+
4. Monolithic.
24+
5. Fronted by a CDN. The caching policies need to be properly defined.
25+
26+
## Legacy
27+
28+
1. These domains continue to work in the same way:
29+
- archive.apache.org
30+
- downloads.apache.org and dlcdn.apache.org
31+
- dist.apache.org
32+
2. See [Legacy Releases from SVN Dist](https://github.com/apache/tooling-docs/blob/main/apache-trusted-release/svn-dist.md). In this development phase we prefer to be at _transition 2_.
33+
34+
### Release Stages
35+
36+
1. Build Releases
37+
2. Candidate Releases
38+
3. Current Releases
39+
4. Archived / Revoked / EOL / Atticked Releases
40+
41+
> “Nightlies” a particular build type is for a later phase.
42+
43+
### Release Phases
44+
45+
See [Release Lifecycle](https://github.com/apache/tooling-docs/blob/main/apache-trusted-release/lifecycle.md) for how phases are chained together to perform a Release.
46+
47+
### Release co-ordinates
48+
49+
The co-ordinates make up the external path to objects. The metadata database provides the map to the local path.
50+
51+
1. Stage (Candidate, Current, Archived, …)
52+
2. PMC (Responsible TLP or Incubator PPMC)
53+
3. Product Line (Main, Sub-projects)
54+
4. Version (String, latest)
55+
5. Files, Metadata (A release is a folder of one or more files or sub-folders)
56+
57+
> The following are examples. We will iterate during implementation.
58+
59+
- Latest main product release: `/<stage>/<pmc>/latest/<file>`
60+
- Main product by version: `/<stage>/<pmc>/<version>/<file>`
61+
- Latest product release: `/<stage>/<pmc>/<product>/latest/<file>`
62+
- Product release by version: `/<stage>/<pmc>/<product>/<version>/<file>`
63+
64+
### Restful API
65+
66+
1. GET
67+
- Metadata
68+
- Release
69+
- Package files including SBOMs
70+
- Signing keys
71+
72+
2. CRUD on
73+
- Releases - Delete is not removal. It is a stage.
74+
- Artifacts - Managed with a Release. Infra can do targeted full CRUD on artifacts if required.
75+
- Public Signing Keys - Delete only if unused.
76+
- Votes - Store each vote in metadata.
77+
- SBOMs - Special files stored in the release folder.
78+
79+
3. POST Phases - Transitions, Activities, and Communication
80+
- Transition into Phase.
81+
- Perform Phase activity.
82+
- Optionally email phase status.
83+
84+
See [Release Lifecycle](https://github.com/apache/tooling-docs/blob/main/apache-trusted-release/lifecycle.md) for how phases are chained together to perform a Release.
85+
86+
4. POST Templated Emails
87+
- Announcements
88+
- Votes
89+
- Status
90+
- Transitions
91+
92+
### Web UI
93+
94+
Note: this section is a flexible outline of what we intend for the UI, and may change during implementation.
95+
96+
1. Directory Pages
97+
- PMC directory (_main page_) - excludes podlings and atticked PMCs
98+
- PMC release directory (also PPMC)
99+
- Incubator podling directory
100+
- Atticked PMC directory
101+
102+
2. Release Page
103+
- [Download page requirements](https://infra.apache.org/release-download-pages.html)
104+
- Release level metadata
105+
- PMC Information and webspage links
106+
- Download package from directory of release
107+
- Maintenance actions
108+
- History of events
109+
110+
4. PMC Management Page
111+
- PMC level metadata and releases
112+
- Product level metadata and releases
113+
- Manage releases
114+
- PMC lifecycle transitions - podling, TLP, attic.
115+
116+
5. System Admin Page
117+
- Manage Distribution Channels
118+
- Perform Migration Tasks
119+
- Enable GHA Builds
120+
- Manage PMC Transitions
121+
- Watch Operations
122+
123+
5. Audit Page
124+
- ASF event history
125+
- PMC event history
126+
- Product event history
127+
128+
6. Page Template
129+
- Responsive with Header(Hamburger)/Content/Footer.
130+
- Include Search in Header(Hamburger)
131+
132+

content/pages/trusted-release.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
Title: Apache Trusted Release Platform
22
license: https://www.apache.org/licenses/LICENSE-2.0
33

4-
# Apache Trusted Release
5-
64
The main project is the Apache Trusted Release Platform.
75

86
## 1. Automate the Release Process
@@ -43,7 +41,7 @@ The main project is the Apache Trusted Release Platform.
4341
- Provide operational status to help Infra monitor ATR operations through the Infra Reporting Dashboard (IRD).
4442
- Develop the platform with consideration about reusability outside of the ASF ecosystem, where feasible with regards to development costs.
4543

46-
See [Platform Services](https://github.com/apache/tooling-docs/blob/main/apache-trusted-release/platform.md) for detailed requirements for the **ATR**.
44+
See [Platform Services](platform.md) for detailed requirements for the **ATR**.
4745

4846
## 4. Automate Release Process around Compliance
4947

0 commit comments

Comments
 (0)