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]