This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-dist-tool.git


The following commit(s) were added to refs/heads/master by this push:
     new 3702c0c  clarify edit/publish/download workflow
3702c0c is described below

commit 3702c0c969b5b47f0918151795e9ad6eb24c2586
Author: Hervé Boutemy <hbout...@apache.org>
AuthorDate: Sat Mar 8 21:16:11 2025 +0100

    clarify edit/publish/download workflow
---
 .../maven/dist/tools/pgp/CheckPgpKeysReport.java   | 124 ++++++++++++++-------
 1 file changed, 84 insertions(+), 40 deletions(-)

diff --git 
a/src/main/java/org/apache/maven/dist/tools/pgp/CheckPgpKeysReport.java 
b/src/main/java/org/apache/maven/dist/tools/pgp/CheckPgpKeysReport.java
index a26342a..a82fd39 100644
--- a/src/main/java/org/apache/maven/dist/tools/pgp/CheckPgpKeysReport.java
+++ b/src/main/java/org/apache/maven/dist/tools/pgp/CheckPgpKeysReport.java
@@ -40,19 +40,28 @@ import org.apache.maven.reporting.MavenReportException;
 import static 
org.apache.maven.doxia.sink.impl.SinkEventAttributeSet.Semantics.BOLD;
 
 /**
- * Check PGP KEYS files.
+ * Check PGP public KEYS files.
  */
 @Mojo(name = "check-pgp-keys", requiresProject = false)
 public class CheckPgpKeysReport extends AbstractDistCheckReport {
     /** Constant <code>FAILURES_FILENAME="check-pgp-keys.log"</code> */
     public static final String FAILURES_FILENAME = "check-pgp-keys.log";
 
-    /** Constant <code>PROJECT_KEYS_URL="<a 
href="https://raw.githubusercontent.com/apache/maven-parent/refs/heads/master/KEYS";>...</a>"{trunked}</code>
 */
-    public static final String PROJECT_KEYS_URL =
+    public static final String EDIT_AREA_1_URL = 
"https://github.com/apache/maven-parent/";;
+
+    /** Constant <code>EDIT_KEYS_1_URL="<a 
href="https://raw.githubusercontent.com/apache/maven-parent/refs/heads/master/KEYS";>...</a>"{trunked}</code>
 */
+    public static final String EDIT_KEYS_1_URL =
             
"https://raw.githubusercontent.com/apache/maven-parent/refs/heads/master/KEYS";;
 
-    /** Constant <code>DIST_KEYS_URL="<a 
href="https://dist.apache.org/repos/dist/rele";>...</a>"{trunked}</code> */
-    public static final String DIST_KEYS_URL = 
"https://dist.apache.org/repos/dist/release/maven/KEYS";;
+    public static final String PUBLISH_AREA_2_URL = 
"https://dist.apache.org/repos/dist/release/maven";;
+
+    /** Constant <code>PUBLISH_KEYS_2_URL="<a 
href="https://dist.apache.org/repos/dist/rele";>...</a>"{trunked}</code> */
+    public static final String PUBLISH_KEYS_2_URL = PUBLISH_AREA_2_URL + 
"/KEYS";
+
+    public static final String DOWNLOAD_AREA_3_URL = 
"https://dlcdn.apache.org/maven";;
+
+    /** Constant <code>DOWNLOAD_KEYS_3_URL="<a 
href="https://dlcdn.apache.org/maven/KEYS";>...</a>"{trunked}</code> */
+    public static final String DOWNLOAD_KEYS_3_URL = DOWNLOAD_AREA_3_URL + 
"/KEYS";
 
     /**
      * Check PGP Keys report.
@@ -86,13 +95,14 @@ public class CheckPgpKeysReport extends 
AbstractDistCheckReport {
     /** {@inheritDoc} */
     @Override
     protected void executeReport(Locale locale) throws MavenReportException {
-        String projectKeys = fetchUrl(PROJECT_KEYS_URL);
-        String distKeys = fetchUrl(DIST_KEYS_URL);
+        String editKeys1 = fetchUrl(EDIT_KEYS_1_URL);
+        String publishKeys2 = fetchUrl(PUBLISH_KEYS_2_URL);
+        String downloadKeys3 = fetchUrl(DOWNLOAD_KEYS_3_URL);
 
-        if (!projectKeys.equals(distKeys)) {
+        if (!editKeys1.equals(publishKeys2)) {
             File failure = new File(failuresDirectory, FAILURES_FILENAME);
             try (PrintWriter output = new PrintWriter(new 
FileWriter(failure))) {
-                output.println("PGP KEYS files content is different: " + 
DIST_KEYS_URL + " vs " + PROJECT_KEYS_URL);
+                output.println("PGP KEYS files content is different: " + 
PUBLISH_KEYS_2_URL + " vs " + EDIT_KEYS_1_URL);
             } catch (Exception e) {
                 getLog().error("Cannot append to " + getFailuresFilename());
             }
@@ -101,61 +111,95 @@ public class CheckPgpKeysReport extends 
AbstractDistCheckReport {
         Sink sink = getSink();
         sink.head();
         sink.title();
-        sink.text("Check PGP KEYS files");
+        sink.text("Check PGP public KEYS files");
         sink.title_();
         sink.head_();
 
         sink.body();
         sink.section1();
         sink.paragraph();
-        sink.rawText("Check that:");
+        sink.rawText("Check that PGP public KEYS workflow is ok:");
         sink.paragraph_();
-        sink.list();
-        sink.listItem();
-        sink.rawText("official Maven PGP KEYS file from distribution area 
origin (<b>PMC write only</b>) ");
-        sink.link(DIST_KEYS_URL);
-        sink.rawText(DIST_KEYS_URL);
+        sink.numberedList(Sink.NUMBERING_DECIMAL);
+
+        // 1. committer edit
+        sink.numberedListItem();
+        sink.rawText("committer edits <code>KEYS</code> in <a href='" + 
EDIT_AREA_1_URL
+                + "'><code>maven-parent.git</code></a>: ");
+        sink.link(EDIT_KEYS_1_URL);
+        sink.rawText(EDIT_KEYS_1_URL);
         sink.link_();
-        sink.listItem_();
-        sink.listItem();
-        sink.rawText(
-                "match <b>committer write</b> one in <a 
href='https://github.com/apache/maven-parent/'><code>maven-parent</code> 
Git</a> ");
-        sink.link(PROJECT_KEYS_URL);
-        sink.rawText(PROJECT_KEYS_URL);
+        sink.numberedListItem_();
+
+        // 2. PMC publish
+        sink.numberedListItem();
+        sink.rawText("PMC publishes to <a href='" + PUBLISH_AREA_2_URL + 
"'>distribution area</a>: ");
+        sink.link(PUBLISH_KEYS_2_URL);
+        sink.rawText(PUBLISH_KEYS_2_URL);
         sink.link_();
-        sink.listItem_();
-        sink.list_();
+        sink.numberedListItem_();
+
+        // 3. INFRA distribute
+        sink.numberedListItem();
+        sink.rawText("INFRA syncs to <a href='" + DOWNLOAD_AREA_3_URL + 
"'>download area</a>: ");
+        sink.link(DOWNLOAD_KEYS_3_URL);
+        sink.rawText(DOWNLOAD_KEYS_3_URL);
+        sink.link_();
+        sink.numberedListItem_();
+
+        sink.numberedList_();
+
+        sink.paragraph();
+        sink.rawText(
+                "Committers are supposed to edit 
<code>maven-parent.git</code>'s <code>KEYS</code>, then ask PMC for 
publication, but sometimes PMC"
+                        + " members directly add in distribution area, then 
future publication is not trivial any more.");
+        sink.paragraph_();
+
         sink.paragraph();
-        sink.rawText("Committers are supposed to write to project's KEYS then 
ask PMC for sync, but sometimes PMC"
-                + " members directly add in distribution area, then future 
sync is not trivial any more.");
+        sink.rawText("INFRA distribution is then sync'ed (once per hour?).");
         sink.paragraph_();
+
         sink.paragraph();
-        sink.rawText("match: ");
-        if (projectKeys.equals(distKeys)) {
+        sink.paragraph_();
+
+        sink.list();
+        sink.listItem();
+        sink.rawText("KEYS 2 == KEYS 1: ");
+        if (publishKeys2.equals(editKeys1)) {
             iconSuccess(sink);
         } else {
             iconError(sink);
         }
-        sink.paragraph_();
+        sink.listItem_();
+
+        sink.listItem();
+        sink.rawText("KEYS 3 == KEYS 2: ");
+        if (downloadKeys3.equals(publishKeys2)) {
+            iconSuccess(sink);
+        } else {
+            iconError(sink);
+        }
+        sink.listItem_();
+        sink.list_();
 
-        sink.numberedList(0);
-        KeysIterator distIterator = new KeysIterator(distKeys);
-        KeysIterator projectIterator = new KeysIterator(projectKeys);
-        while (distIterator.hasNext() || projectIterator.hasNext()) {
-            String distKey = distIterator.hasNext() ? distIterator.next() : "";
-            String projectKey = projectIterator.hasNext() ? 
projectIterator.next() : "";
+        sink.numberedList(Sink.NUMBERING_DECIMAL);
+        KeysIterator edit1Iterator = new KeysIterator(editKeys1);
+        KeysIterator publish2Iterator = new KeysIterator(publishKeys2);
+        while (edit1Iterator.hasNext() || publish2Iterator.hasNext()) {
+            String editKey1 = edit1Iterator.hasNext() ? edit1Iterator.next() : 
"";
+            String publishKey2 = publish2Iterator.hasNext() ? 
publish2Iterator.next() : "";
 
             sink.numberedListItem();
             sink.verbatim(BOLD);
-            sink.rawText(distKey);
+            sink.rawText(editKey1);
             sink.verbatim_();
-            if (!projectKey.equals(distKey)) {
-                sink.rawText("dist target (PMC) ");
+            if (!publishKey2.equals(editKey1)) {
+                sink.rawText("edit (committer) ");
                 iconError(sink);
-                sink.rawText(" project (committers)");
+                sink.rawText(" publish (PMC)");
 
                 sink.verbatim(BOLD);
-                sink.rawText(projectKey);
+                sink.rawText(publishKey2);
                 sink.verbatim_();
             }
             sink.numberedListItem_();

Reply via email to