arshilkxwork opened a new pull request, #828:
URL: https://github.com/apache/hugegraph-toolchain/pull/828

   ## Purpose of the PR
   
   - close #821
   
   Under `-Papache-release`, Maven merges this repository's release settings 
with the `apache-release` profile of Apache parent 23. Three local executions 
used ids or goals that differ from the parent's, so both copies ran:
   
   - Root and Loader declared `sign-artifacts` next to the parent's 
`sign-release-artifacts`. Every module ran `gpg:sign` twice, and the second run 
also signed the first run's signatures.
   - Tools declared `create-source-jar` and `create-javadoc-jar` next to the 
inherited `attach-sources` and `attach-javadocs`, so its sources and Javadoc 
jars were built twice.
   - Spark's `attach-sources` runs `jar` and the parent's runs `jar-no-fork`, 
and the merged execution ran both.
   
   On master, a smoke deploy of root, client, Loader, Spark connector and Tools 
to a local file repository, signed with a throwaway key, produced 40 
signatures, 20 of them `.asc.asc` files, and 23 "already attached, replace 
previous instance" warnings.
   
   ## Main Changes
   
   - Root `pom.xml` and Loader: the signing execution uses the parent's id, 
`sign-release-artifacts`, so the two merge into one. The `--pinentry-mode 
loopback` arguments are unchanged.
   - Tools: `create-source-jar` becomes `attach-sources` with `jar-no-fork` and 
`test-jar-no-fork`, which keeps the test sources jar, and `create-javadoc-jar` 
becomes `attach-javadocs` with `jar`. The `javadoc` goal, which only wrote the 
HTML report under `target/site`, is dropped. The `<source>` setting stays.
   - Spark: `attach-sources` uses the parent's `jar-no-fork`. Outside the 
release profile it still attaches the sources jar, without forking the 
lifecycle.
   - `.github/scripts/test_release_profile.py` runs `help:effective-pom 
-Papache-release` over the whole reactor and checks each module for one 
`gpg:sign` execution, one sources-jar producer using one of `jar` or 
`jar-no-fork`, one Javadoc-jar producer, and, for Tools, the test sources jar. 
Like `test_candidate_sdk.py` it is opt-in, through 
`RELEASE_PROFILE_MAVEN_TEST`, and a new `ci.yml` step runs it with Java 17 
after the Java setup.
   
   No dependency or plugin version changes.
   
   The source archive still contains `.github`, `.serena`, `.goal-task` and the 
generated `.flattened-pom.xml`, as it does on master, because the Apache 
source-release descriptor does not exclude them. That is left out of this 
change.
   
   ## Verifying these changes
   
   - [ ] Trivial rework / code cleanup without any test coverage. (No Need)
   - [ ] Already covered by existing tests, such as *(please modify tests 
here)*.
   - [x] Need tests and can be verified as follows:
       - `RELEASE_PROFILE_MAVEN_TEST=mvn python3 -m unittest discover -s 
.github/scripts -p 'test_release_profile.py'` on Java 17 passes. On master it 
fails for all 9 modules, with two `gpg:sign` executions in each.
       - Effective POM before and after: the plugin-level configuration of the 
gpg, source and Javadoc plugins is the same in every module.
       - Release smoke test with a temporary GPG key: `mvn -Papache-release 
-DskipTests -pl 
.,hugegraph-client,hugegraph-tools,hugegraph-spark-connector,hugegraph-loader 
deploy -DaltDeploymentRepository=smoke::default::file://...`. After the change 
there are 20 signatures, one per artifact, all passing `gpg --verify`, no 
`.asc.asc` files and no "already attached" warnings. The deployed files match 
master's apart from the `.asc.asc` files, and Tools still ships `-tests.jar` 
and `-test-sources.jar`. The one warning left is the Spark shade plugin 
replacing the main jar, which master shows as well.
       - The `-source-release.zip` from that run contains no `.git`. Extracted 
with `.github` removed, it builds the same five modules with `mvn -DskipTests 
package`.
       - `python3 -m unittest discover -s .github/scripts -p 'test_*.py'`: 97 
tests, 5 skipped.
       - Not covered: Hubble was not in the smoke deploy, since it needs the 
frontend build; its modules show the same single executions in the effective 
POM. No real Apache staging deploy was run.
   
   ## Does this PR potentially affect the following parts?
   
   - [ ]  Nope
   - [ ]  Dependencies (add/update license info)
   - [ ]  Modify configurations
   - [ ]  The public API
   - [x]  Other affects (typed here): the `apache-release` Maven profile used 
to build and sign releases
   
   ## Documentation Status
   
   - [ ]  `Doc - TODO`
   - [ ]  `Doc - Done`
   - [x]  `Doc - No Need`
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to