This is an automated email from the ASF dual-hosted git repository.
wave pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-docs.git
The following commit(s) were added to refs/heads/main by this push:
new 65dff34 Simplify phases and other improvements (#7)
65dff34 is described below
commit 65dff34b7c5f11eaf6eb6a4d799c236ade5fa916
Author: Dave Fisher <[email protected]>
AuthorDate: Mon Feb 3 10:40:46 2025 -0800
Simplify phases and other improvements (#7)
---
apache-trusted-release/cve-process.md | 7 +++
apache-trusted-release/data-model.md | 2 +-
apache-trusted-release/distributions.md | 4 +-
apache-trusted-release/github-build.md | 5 ++
apache-trusted-release/lifecycle.md | 80 ++++++++++++++--------------
apache-trusted-release/platform.md | 8 +--
apache-trusted-release/requirements.md | 1 +
apache-trusted-release/svn-dist.md | 9 ++++
apache-trusted-release/test-distributions.md | 35 ------------
9 files changed, 70 insertions(+), 81 deletions(-)
diff --git a/apache-trusted-release/cve-process.md
b/apache-trusted-release/cve-process.md
new file mode 100644
index 0000000..08b394c
--- /dev/null
+++ b/apache-trusted-release/cve-process.md
@@ -0,0 +1,7 @@
+# Update SBOMs - CVE Process "Phase"
+
+When CVEs are announced there needs to be co-ordination between Security's
cveprocess.apache.org and the ATR.
+
+For every impacted release with an SBOM the SBOMs will need to be updated.
+
+> Note where this is an explicit phase or not depends on integration
discussions with the security team.
diff --git a/apache-trusted-release/data-model.md
b/apache-trusted-release/data-model.md
index 9a3b3d2..0aab1df 100644
--- a/apache-trusted-release/data-model.md
+++ b/apache-trusted-release/data-model.md
@@ -32,7 +32,7 @@ One or more product lines with separate releases including
the main one. A produ
10. Release lists:
- Candidates
- Current
- - Revoked
+ - Archived
### Public Signing Keys
diff --git a/apache-trusted-release/distributions.md
b/apache-trusted-release/distributions.md
index 77d90ec..0ff9265 100644
--- a/apache-trusted-release/distributions.md
+++ b/apache-trusted-release/distributions.md
@@ -1,12 +1,12 @@
# Distribute Phase
-Support will be added to the ATR for distribution of release packages to third
parties in a priority order.
+Support will be added to the ATR for distribution of release and test packages
to package managers in a priority order.
## Package Managers
1. Maven Central
2. PyPi
-3. Artifactory
+3. jFrog
4. DockerHub
5. Node
6. NuGet
diff --git a/apache-trusted-release/github-build.md
b/apache-trusted-release/github-build.md
new file mode 100644
index 0000000..b55ce1a
--- /dev/null
+++ b/apache-trusted-release/github-build.md
@@ -0,0 +1,5 @@
+# GitHub Build
+
+The release candidate is created using a properly reviewed GHA workflow.
+
+We will need a GHA that creates the Release Candidate in the ATR.
diff --git a/apache-trusted-release/lifecycle.md
b/apache-trusted-release/lifecycle.md
index 1288129..b3548a4 100644
--- a/apache-trusted-release/lifecycle.md
+++ b/apache-trusted-release/lifecycle.md
@@ -2,17 +2,21 @@
A Release will go through a lifecycle of **stages** and **phases**.
-Stages include **Build**, **Candidate**, **Current**, and **Revoked**.
-The ATR does not manage build stage releases. It takes over on the transition
from the build to the candidate stage.
+Stages include **Build**, **Candidate**, **Current**, and **Archived**.
+The ATR does not manage build stage and legacy releases. It takes over on the
transition from the build to the candidate stage.
Stages control where on the **ATR** Website a release can be found.
Phases are states or activities during a Release's life cycle.
```mermaid
flowchart TD
+ subgraph Build Stage
+ A[GHA Secure Build]
+ end
+ subgraph Legacy
+ B[Legacy SVN Dist]
+ end
subgraph Apache Trusted Release
- A[GHA Secure Release Process]
- B[Current SVN Build Process]
C@{ shape: docs, label: "Release Candidate" }
A -->|automatically triggered| C
B -->|manually triggered| C
@@ -21,12 +25,13 @@ flowchart TD
C --> D
DD@{ shape: process, label: "Sign Candidate" }
D -->|pass| DD
- GG@{ shape: processes, label: "Distribute Test" }
+ GG@{ shape: processes, label: "Distribute (Test)" }
E@{ shape: sl-rect, label: "Release Vote" }
JJJ@{ shape: dbl-circ, label: "Passes" }
F@{ shape: dbl-circ, label: "Failed" }
E -->|pass| JJJ
E -->|fail| F
+ GG -->|fail| F
D -->|fail| F
F -->|new candidate| C
DD --> GG
@@ -36,51 +41,41 @@ flowchart TD
JJ@{ shape: docs, label: "Release" }
JJJ --> JJ
G@{ shape: processes, label: "Distribute" }
- H@{ shape: trap-t, label: "Manual Distribution" }
- G -->|optional| H
G --> I
- FF@{ shape: dbl-circ, label: "Distribution\nFailed" }
- G -->|failure| FF
I[Announce Release]
- FF -->|retry| G
- FF -->|abandon| K
- H -->|manually triggered| I
+ II[Migration]
+ L@{ shape: trap-t, label: "Update SBOMs" }
J@{ shape: dbl-circ, label: "Released" }
- JJ --> G
- I --> J
- K@{ shape: dbl-circ, label: "Revoked" }
- L@{ shape: trap-t, label: "Announce CVEs" }
- J -->|revoke| K
J -->|cves| L
L -->|record cves| J
+ JJ --> G
+ I --> J
+ B -->|migration| II
+ II -->|current| J
+ subgraph Archived Release Stage
+ K@{ shape: dbl-circ, label: "Archived" }
+ end
+ G -->|failure| K
+ II -->|archived| K
+ J -->|archive| K
end
end
```
## Phases
-**Announce CVEs**
-: At some moment as or after a release happens a project may announce CVEs
that either impact or are solved by a release. The security team and PMC manage
CVEs including announcements and publishing via cveprocess.apache.org The ATR
will update SBOMs with new CVEs.
-
-> Note where this is an explicit phase or not depends on integration
discussions with the security team.
-
**Announce Release**
: Send a compliant announcement of the release. This template will include
release metadata.
+**Archived**
+: A Release in this stage/phase has been archived, revoked, or abandoned.
+
**[ATR Platform](./platform.md)**
: Apache Trusted Release is a service with a web UI and restful API for
managing the lifecycle of project releases.
-**Current SVN Build Process**
-: This is our current SVN repository process for setting up a release
candidate. Trigger the ATR automation by including release metadata.
-
**[Distribute](./distributions.md)**
-: Release distribution will be automated for many channels.
-
-**[Distribute Test](./test-distributions.md)**
-: Release Candidates may be distributed to Test repositories.
-
-**Distribution Failed**
-: A Release may fail one or more of its Distribution Steps. This may be due to
a problem with the destination. The project will need to manually retry. The
distribute steps should include reasonable retry logic. The Release Manager
will need to decide the next phase.
+: Release and Test distributions will be automated for many channels. An email
will be sent about package managers need which need manual distribution.
+Once that is complete the Release Manager will need to move to the next Phase.
If all distributions automatically complete then moving to the next phase is
automatic,
**[Evaluate Candidate](./evaluate.md)**
: Report on the Candidate by performing numerous checks for policy compliance.
Fails if compliance minimums are unmet.
@@ -89,19 +84,22 @@ flowchart TD
: A Release Candidate may end in this state. The project can either abandon it
or update and resubmit it.
The Release Manager will need to decide the next phase.
-**GHA Secure Release Process**
+**[GHA Secure Build](./github-build.md)**
: In a GitHub workflow the release candidate is built and validated following
the Security Release Policy.
-**Manual Distribution**
-: Some channels either require manual steps, or they are yet to be automated.
An email will be sent to list which package managers need a manual ditribution.
Once that is complete the Release Manager will need to move to the next Phase.
+**[Legacy SVN Dist](./svn-dist.md)**
+: This is our current SVN repository process for setting up a release
candidate. Trigger the ATR automation by including release metadata.
+
+**[Migration](./svn-dist.md)**
+: We need a phase for migration of existing current and archived releases from
the legacy platform into the ATR data store.
**Passes**
: The Release Candidate has been accepted. Convert the candidate into a
Release and proceed to Distribute and Announce the Release.
-**Release**
+**[Release](./data-model.md)**
: The release is a folder of files including metadata, SBOMs, public keys,
signatures, and checksums.
-**Release Candidate**
+**[Release Candidate](./data-model.md)**
: A release candidate consists of a folder of release files including
metadata, SBOMs, public keys, signatures, and checksums.
**[Release Vote](./vote.md)**
@@ -110,8 +108,10 @@ flowchart TD
**Released**
: Once the Release is distributed and announced, this Release should remain in
this phase as long as it is available.
-**Revoked**
-: A Release in this stage/phase has been archived, revoked, or abandoned.
-
**[Sign Candidate](./digital-signatures.md)**
: Optionally sign packages using digital certificates through a service.
+
+**[Update SBOMs](./cve-process.md)**
+: At some moment as or after a release happens a project may announce CVEs
that either impact or are solved by a release. The security team and PMC manage
CVEs including announcements and publishing via cveprocess.apache.org The ATR
will update the releases SBOMs with new CVEs.
+
+> Note where this is an explicit phase or not depends on integration
discussions with the security team.
diff --git a/apache-trusted-release/platform.md
b/apache-trusted-release/platform.md
index 7f3c901..4409fbc 100644
--- a/apache-trusted-release/platform.md
+++ b/apache-trusted-release/platform.md
@@ -19,9 +19,10 @@ See [Data Model](./data-model.md) for a discussion of the
objects managed by the
### Release Stages
-1. Current Releases
+1. Build Releases - while not managed by the ATR there are bridges.
2. Candidate Releases
-3. Revoked / EOL / Attic Releases
+3. Current Releases
+4. Archived / Revoked / EOL / Atticked Releases
> “Nightlies” is for a later phase.
@@ -32,6 +33,7 @@ See [Release Lifecycle](./lifecycle.md) for how phases are
chained together to p
### Release CVEs
1. CVE metadata
+2. SBOM updates
3. Affected releases
4. Release that resolves CVE(s)
@@ -39,7 +41,7 @@ See [Release Lifecycle](./lifecycle.md) for how phases are
chained together to p
The co-ordinates make up the external path to objects. The metadata database
provides the map to the local path.
-1. Stage (Candidate, Current, Revoked, …)
+1. Stage (Candidate, Current, Archived, …)
2. Project (Responsible TLP)
3. Product (Main, Sub-projects)
4. Version (String, latest)
diff --git a/apache-trusted-release/requirements.md
b/apache-trusted-release/requirements.md
index b4bd76f..5998eda 100644
--- a/apache-trusted-release/requirements.md
+++ b/apache-trusted-release/requirements.md
@@ -26,6 +26,7 @@ While reading consider these Notes:
- Incorporate all Project Releases.
- Download page. (migrated/mirrored from dist/release)
- Release Candidate pages. (migrated/mirrored from dist/dev)
+ - Archived download page. (migrated from archives)
- Every project has a management interface.
- Current manual release practice is viewable.
- Automated release status.
diff --git a/apache-trusted-release/svn-dist.md
b/apache-trusted-release/svn-dist.md
new file mode 100644
index 0000000..2284fb5
--- /dev/null
+++ b/apache-trusted-release/svn-dist.md
@@ -0,0 +1,9 @@
+# Legacy Releases from SVN Dist
+
+We have three types of Releases to create using a "Pull from 'Dist'" process.
+
+1. Release Candidates from `dist/dev` as the Release Manager requests from
within the ATR Web UI.
+
+2. Current Releases from `dist/release` this will be used for the initial
migration and may be used from time to time as PMCs use the old methods.
+
+3. Archived Releases which are migrated from the archive if not present in the
Current Releases.
diff --git a/apache-trusted-release/test-distributions.md
b/apache-trusted-release/test-distributions.md
deleted file mode 100644
index 15ff78f..0000000
--- a/apache-trusted-release/test-distributions.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Test Distribute Phase
-
-Support will be added to the ATR for distribution of release candidate
packages in a priority order.
-
-## Package Managers
-
-1. Maven - repository.apache.org
-2. TEST PyPi
-3. Artifactory
-4. DockerHub
-5. Node
-6. NuGet - Test
-7. ...
-
-### Apache Maven Repository
-
-Use https://repository.apache.org/
-
-### TEST PyPi
-
-
-### Artifactory
-
-Labeled as `TEST` in our jfrog repository.
-
-### DockerHub
-
-Labeled as `TEST` in DockerHub
-
-### Node
-
-
-### NuGet
-
-Need some type of NuGet Test service.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]