feat(release): add changelog entry, GitHub Releases, lastPublished, a… - #640
feat(release): add changelog entry, GitHub Releases, lastPublished, a…#640fabisev wants to merge 14 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #640 +/- ##
=========================================
Coverage 65.79% 65.79%
Complexity 214 214
=========================================
Files 34 34
Lines 991 991
Branches 143 143
=========================================
Hits 652 652
Misses 287 287
Partials 52 52
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
| # (2) Parent version map — keyed only for modules other modules depend on. | ||
| case "$MODULE" in | ||
| aws-lambda-java-core) PROP=lambda.core.version ;; | ||
| aws-lambda-java-events) PROP=lambda.events.version ;; | ||
| aws-lambda-java-serialization) PROP=lambda.serialization.version ;; | ||
| *) PROP="" ;; |
There was a problem hiding this comment.
I don't like this hard mapping for different reasons.
- First are we assuming that we are can have multiple tags right? Is this a good experience?
- Why only those packages and not all the packages we are publishing on Maven.
- In the case we need a subset why don't you create a properties you can read from the pom that directly tells you if you need to read the version?
|
|
||
| <parent> | ||
| <groupId>com.amazonaws</groupId> | ||
| <artifactId>aws-lambda-java-libs-parent</artifactId> |
There was a problem hiding this comment.
I think you can just call it aws-java-libs, the "parentness" of that package is implied by the <parent/> tag.
| <properties> | ||
| <lambda.core.version>1.4.0</lambda.core.version> | ||
| <lambda.events.version>3.16.1</lambda.events.version> | ||
| <lambda.serialization.version>1.4.1</lambda.serialization.version> | ||
| </properties> |
There was a problem hiding this comment.
Why only those packages? Also double check their version.
| <dependencyManagement> | ||
| <dependencies> | ||
| <dependency> | ||
| <groupId>com.amazonaws</groupId> | ||
| <artifactId>aws-lambda-java-core</artifactId> | ||
| <version>${lambda.core.version}</version> | ||
| </dependency> | ||
| <dependency> | ||
| <groupId>com.amazonaws</groupId> | ||
| <artifactId>aws-lambda-java-events</artifactId> | ||
| <version>${lambda.events.version}</version> | ||
| </dependency> | ||
| <dependency> | ||
| <groupId>com.amazonaws</groupId> | ||
| <artifactId>aws-lambda-java-serialization</artifactId> | ||
| <version>${lambda.serialization.version}</version> | ||
| </dependency> | ||
| </dependencies> | ||
| </dependencyManagement> |
There was a problem hiding this comment.
I think in this file you can also define version number of transitive dependencies.
Move the shared parent POM and everything that depends on it out of this PR into a stacked follow-up, so this PR carries only the release-workflow features that stand on their own: - changelogEntry input, GitHub Release creation, signed-jar attachment and signature-verification notes - per-module lastPublished markers and Central deploymentName Removed here (returns in the follow-up PR): - root pom.xml (centralized version map + flatten plugin) - <parent> blocks and "version managed by parent" comments in modules - release.yml parent-version-map step and the version-map property in the cross-module test gate - the parent-version-map mention in RELEASING.md and the .flattened-pom.xml .gitignore entry
…thub-releases' into fabisev/release-changelog-and-github-releases
Add reusable setup-corretto8 and create-github-release composite actions; attach the signed jars + .asc signatures (same as Maven Central) with GPG verification notes, and add changelog + lastPublished to the RIC release.
Issue #, if available: N/A
Description of changes:
Adds changelog + release-visibility improvements to the Maven Central release
workflow, plus maintainer docs. No change to the build itself.
.github/workflows/release.ymlchangelogEntryinput. It's prepended to the module'sRELEASE.CHANGELOG.md(committed into the post-release version-bump PR) andreused as the GitHub Release notes. Passed via env, never interpolated into
the shell.
*.jar) and their detached PGP signatures(
*.jar.asc) (the exact same signatures published to Maven Central,made with the shared Lambda Java release signing key, no re-signing);
from a keyserver by fingerprint, then
gpg --verify). Only the public keyfingerprint crosses
$GITHUB_ENV; the GPG passphrase and Sonatype tokenstay in-shell and are scrubbed on exit.
lastPublishedmarker in the module POM (see below) oneach release.
deploymentName(
groupId:artifactId:version) so the Central Portal deployment is labeled byGAV instead of the default "DEPLOYMENT".
Module POMs (
core,events,events-sdk-transformer,log4j2,serialization,tests)<!-- lastPublished: X -->comment under<version>recording thelast version published to Central, seeded with each module's current latest.
Informational only (Maven ignores it); auto-updated by the release workflow.
<deploymentName>config to the central-publishing-maven-plugin(also added to
runtime-interface-client).RELEASING.mdand failure handling.
Note: the shared parent-POM / version-map change that was previously part of
this branch has been split into a separate follow-up PR and is not included
here.
Target (OCI, Managed Runtime, both): both