From 0f90e58bcdcf219292ef847f4e51aeac73d8e8ff Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Fri, 22 May 2026 11:38:44 -0700 Subject: [PATCH 1/7] Update update_7.0.X --- .github/workflows/{placeholder.yml => stageReleaseSources.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{placeholder.yml => stageReleaseSources.yml} (100%) diff --git a/.github/workflows/placeholder.yml b/.github/workflows/stageReleaseSources.yml similarity index 100% rename from .github/workflows/placeholder.yml rename to .github/workflows/stageReleaseSources.yml From 2fcd07a6c8616116dbcc6d3385fc5a453dfaecc3 Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Fri, 22 May 2026 11:57:29 -0700 Subject: [PATCH 2/7] update update_workflows --- .github/workflows/{stageReleaseSources.yml => placeholder.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{stageReleaseSources.yml => placeholder.yml} (100%) diff --git a/.github/workflows/stageReleaseSources.yml b/.github/workflows/placeholder.yml similarity index 100% rename from .github/workflows/stageReleaseSources.yml rename to .github/workflows/placeholder.yml From 56a470056f2b868385a5eb55ca9d346d4805f644 Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Fri, 22 May 2026 14:49:29 -0700 Subject: [PATCH 3/7] Update with stageReleaseSources.yml --- .github/workflows/stageReleaseSources.yml | 92 +++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 .github/workflows/stageReleaseSources.yml diff --git a/.github/workflows/stageReleaseSources.yml b/.github/workflows/stageReleaseSources.yml new file mode 100644 index 00000000..c3d67f36 --- /dev/null +++ b/.github/workflows/stageReleaseSources.yml @@ -0,0 +1,92 @@ +name: Stage Release Candidate Source Assets (Manual Trigger) + +# file: placeholder.yml (temporary) +# This workflow acts as Phase 1 of your official Release Candidate process. +# It handles the clean compilation, license verification, and source packaging +# on a cloud runner, delivering a pristine ZIP for local signing. + +on: + workflow_dispatch: + +jobs: + assemble-source-candidate: + runs-on: ubuntu-22.04 + permissions: + contents: read + + steps: + # 1. Checkout the clean working workspace context + - name: 1. Checkout Branch Context + uses: actions/checkout@v5 + with: + ref: ${{ github.ref }} + fetch-depth: 0 + + # 2. Set up the foundational Java runtime environment + - name: 2. Provision JDK 25 for Build Execution + uses: actions/setup-java@v5 + with: + java-version: '25' + distribution: 'temurin' + java-package: jdk + architecture: x64 + cache: 'maven' + + # 3. Dynamically extract the project version from the root pom.xml + - name: 3. Extract POM Project Version + id: parse-version + run: | + POM_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) + echo "Target Release Version: $POM_VERSION" + echo "POM_VERSION=$POM_VERSION" >> $GITHUB_ENV + + # 4. Audit license headers across all source files and submodules + - name: 4. Execute Apache RAT License Audit + run: | + echo "Running corporate license header checks..." + mvn apache-rat:check -N + + # Diagnostic Step: Print the target report if the audit drops dead + - name: 4b. Diagnostic - Display RAT Failure Report + if: always() + run: | + echo "Checking for java11 submodule RAT report..." + if [ -f datasketches-memory-java11/target/rat.txt ]; then + echo "=== DATASKETCHES-MEMORY-JAVA11 RAT.TXT ===" + cat datasketches-memory-java11/target/rat.txt + else + echo "No submodule rat.txt report found." + fi + + # 5. Clean workspace and assemble the official source release container + - name: 5. Build Apache Source Release Archive + run: | + echo "Assembling project distribution ZIP..." + mvn clean assembly:single + + # 6. Relocate and calculate the SHA-512 cryptographic checksum string + - name: 6. Stage Deliverables and Compute Checksums + run: | + # Create a temporary staging area for the artifact collection + mkdir -p staging_dir + + # Define standard names based on the extracted POM version + SRC_ZIP="datasketches-memory-${{ env.POM_VERSION }}-src.zip" + + echo "Locating generated assembly asset..." + cp target/datasketches-memory-${{ env.POM_VERSION }}-source-release.zip staging_dir/$SRC_ZIP + + cd staging_dir + echo "Generating SHA-512 checksum signature file..." + sha512sum $SRC_ZIP > $SRC_ZIP.sha512 + + echo "Verification Checksum Content:" + cat $SRC_ZIP.sha512 + + # 7. Package and upload the staged bundle as a secure workflow archive + - name: 7. Upload Release Candidate Assets for Local Signing + uses: actions/upload-artifact@v4 + with: + name: datasketches-memory-RC-source-bundle + path: staging_dir/ + retention-days: 15 From 9a165f444e4c8ccf8009e66738de3971dadc285c Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Fri, 22 May 2026 16:35:57 -0700 Subject: [PATCH 4/7] fix typo in header --- .github/workflows/stageReleaseSources.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/stageReleaseSources.yml b/.github/workflows/stageReleaseSources.yml index c3d67f36..a0d4985c 100644 --- a/.github/workflows/stageReleaseSources.yml +++ b/.github/workflows/stageReleaseSources.yml @@ -1,6 +1,5 @@ name: Stage Release Candidate Source Assets (Manual Trigger) -# file: placeholder.yml (temporary) # This workflow acts as Phase 1 of your official Release Candidate process. # It handles the clean compilation, license verification, and source packaging # on a cloud runner, delivering a pristine ZIP for local signing. From 2570e25dc30ccf73e45a28e3684f5a42c468e907 Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Fri, 22 May 2026 17:16:04 -0700 Subject: [PATCH 5/7] update stageReleaseSources.yml --- .github/workflows/stageReleaseSources.yml | 93 +++-------------------- 1 file changed, 10 insertions(+), 83 deletions(-) diff --git a/.github/workflows/stageReleaseSources.yml b/.github/workflows/stageReleaseSources.yml index a0d4985c..0f34ef55 100644 --- a/.github/workflows/stageReleaseSources.yml +++ b/.github/workflows/stageReleaseSources.yml @@ -1,91 +1,18 @@ -name: Stage Release Candidate Source Assets (Manual Trigger) +name: Placeholder for Manual Trigger -# This workflow acts as Phase 1 of your official Release Candidate process. -# It handles the clean compilation, license verification, and source packaging -# on a cloud runner, delivering a pristine ZIP for local signing. +# Prototype skeleton to register the workflow name and manual dispatch +# switch with GitHub's UI on the default branch. +# This placeholder allows full testing inside development branches +# for this .github/workflows/. +# Once the developed WF is ready to push rename the developed WF to its real name. on: workflow_dispatch: jobs: - assemble-source-candidate: - runs-on: ubuntu-22.04 - permissions: - contents: read - + placeholder: + runs-on: ubuntu-latest steps: - # 1. Checkout the clean working workspace context - - name: 1. Checkout Branch Context - uses: actions/checkout@v5 - with: - ref: ${{ github.ref }} - fetch-depth: 0 - - # 2. Set up the foundational Java runtime environment - - name: 2. Provision JDK 25 for Build Execution - uses: actions/setup-java@v5 - with: - java-version: '25' - distribution: 'temurin' - java-package: jdk - architecture: x64 - cache: 'maven' - - # 3. Dynamically extract the project version from the root pom.xml - - name: 3. Extract POM Project Version - id: parse-version - run: | - POM_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) - echo "Target Release Version: $POM_VERSION" - echo "POM_VERSION=$POM_VERSION" >> $GITHUB_ENV - - # 4. Audit license headers across all source files and submodules - - name: 4. Execute Apache RAT License Audit - run: | - echo "Running corporate license header checks..." - mvn apache-rat:check -N - - # Diagnostic Step: Print the target report if the audit drops dead - - name: 4b. Diagnostic - Display RAT Failure Report - if: always() - run: | - echo "Checking for java11 submodule RAT report..." - if [ -f datasketches-memory-java11/target/rat.txt ]; then - echo "=== DATASKETCHES-MEMORY-JAVA11 RAT.TXT ===" - cat datasketches-memory-java11/target/rat.txt - else - echo "No submodule rat.txt report found." - fi - - # 5. Clean workspace and assemble the official source release container - - name: 5. Build Apache Source Release Archive - run: | - echo "Assembling project distribution ZIP..." - mvn clean assembly:single - - # 6. Relocate and calculate the SHA-512 cryptographic checksum string - - name: 6. Stage Deliverables and Compute Checksums - run: | - # Create a temporary staging area for the artifact collection - mkdir -p staging_dir - - # Define standard names based on the extracted POM version - SRC_ZIP="datasketches-memory-${{ env.POM_VERSION }}-src.zip" - - echo "Locating generated assembly asset..." - cp target/datasketches-memory-${{ env.POM_VERSION }}-source-release.zip staging_dir/$SRC_ZIP - - cd staging_dir - echo "Generating SHA-512 checksum signature file..." - sha512sum $SRC_ZIP > $SRC_ZIP.sha512 - - echo "Verification Checksum Content:" - cat $SRC_ZIP.sha512 + - name: Prototype Placeholder + run: echo "This is a placeholder. Run this workflow from your feature branch to execute the real deployment logic." - # 7. Package and upload the staged bundle as a secure workflow archive - - name: 7. Upload Release Candidate Assets for Local Signing - uses: actions/upload-artifact@v4 - with: - name: datasketches-memory-RC-source-bundle - path: staging_dir/ - retention-days: 15 From a146c5d435a12577a41836a7286915f137f777c3 Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Fri, 22 May 2026 17:17:25 -0700 Subject: [PATCH 6/7] Update update_workflows --- .github/workflows/placeholder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/placeholder.yml b/.github/workflows/placeholder.yml index 61e64aaf..f2e3ff21 100644 --- a/.github/workflows/placeholder.yml +++ b/.github/workflows/placeholder.yml @@ -14,4 +14,4 @@ jobs: runs-on: ubuntu-latest steps: - name: Prototype Placeholder - run: echo "This is a placeholder. Run this workflow from your feature branch to execute the real deployment logic." \ No newline at end of file + run: echo "This is a placeholder. Run this workflow from your feature branch to execute the real deployment logic." From 7db0f9a8a4db18473392be210c7fa5ae337aa49b Mon Sep 17 00:00:00 2001 From: Lee Rhodes Date: Fri, 22 May 2026 17:32:20 -0700 Subject: [PATCH 7/7] update temp workflows --- .github/workflows/placeholder.yml | 10 +++++++++- .github/workflows/stageReleaseSources.yml | 11 +++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/placeholder.yml b/.github/workflows/placeholder.yml index f2e3ff21..25b83780 100644 --- a/.github/workflows/placeholder.yml +++ b/.github/workflows/placeholder.yml @@ -4,7 +4,15 @@ name: Placeholder for Manual Trigger # switch with GitHub's UI on the default branch. # This placeholder allows full testing inside development branches # for this .github/workflows/. -# Once the developed WF is ready to push rename the developed WF to its real name. +# +# 1. Create a temporary branch off of /main/. +# 2. In that branch create a new file with the eventual target workflow filename. +# 3. Push a copy the contents of the placeholder.yml to the new file. +# 4. Create a PR to merge the contents of the temp file into /main/. +# 4. Develop the content of the target workflow in your development branch. +# Now you can use the worflow_dispatch in your development branch. +# 5. When you are done, create a PR to merge the new workflow into /main/. +# 6. Do not overwrite the placeholder.yml. It is there for the next workflow. on: workflow_dispatch: diff --git a/.github/workflows/stageReleaseSources.yml b/.github/workflows/stageReleaseSources.yml index 0f34ef55..856b3e32 100644 --- a/.github/workflows/stageReleaseSources.yml +++ b/.github/workflows/stageReleaseSources.yml @@ -4,7 +4,15 @@ name: Placeholder for Manual Trigger # switch with GitHub's UI on the default branch. # This placeholder allows full testing inside development branches # for this .github/workflows/. -# Once the developed WF is ready to push rename the developed WF to its real name. +# +# 1. Create a temporary branch off of /main/. +# 2. In that branch create a new file with the eventual target workflow filename. +# 3. Push a copy the contents of the placeholder.yml to the new file. +# 4. Create a PR to merge the contents of the temp file into /main/. +# 4. Develop the content of the target workflow in your development branch. +# Now you can use the worflow_dispatch in your development branch. +# 5. When you are done, create a PR to merge the new workflow into /main/. +# 6. Do not overwrite the placeholder.yml. It is there for the next workflow. on: workflow_dispatch: @@ -15,4 +23,3 @@ jobs: steps: - name: Prototype Placeholder run: echo "This is a placeholder. Run this workflow from your feature branch to execute the real deployment logic." -