Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
cf830ff
feat(release): add changelog entry, GitHub Releases, lastPublished, a…
fabisev Aug 24, 2026
3bde5cb
Merge branch 'main' into fabisev/release-changelog-and-github-releases
fabisev Aug 25, 2026
555b3f5
build: centralize module versions in a parent POM
fabisev Aug 25, 2026
cff1683
Merge branch 'main' into fabisev/release-changelog-and-github-releases
fabisev Aug 26, 2026
45420b7
Merge branch 'main' into fabisev/release-changelog-and-github-releases
fabisev Aug 27, 2026
5d51046
refactor(release): address PR review on parent POM and workflow
fabisev Aug 31, 2026
ce9f80b
docs(release): shorten version-map comment
fabisev Aug 31, 2026
5a6a528
chore(release): set meaningful Central deploymentName (GAV)
fabisev Aug 31, 2026
f980a36
feat(release): attach signed jars + verify notes to GitHub Release
fabisev Sep 1, 2026
0d41205
Merge branch 'main' into fabisev/release-changelog-and-github-releases
fabisev Sep 1, 2026
fb9da27
refactor(release): split shared parent POM into a follow-up PR
fabisev Sep 1, 2026
9bc7a4a
Merge remote-tracking branch 'origin/fabisev/release-changelog-and-gi…
fabisev Sep 1, 2026
91ebbbc
feat(release): attach signed jars to GitHub Releases
fabisev Sep 1, 2026
e9d9111
Merge branch 'main' into fabisev/release-changelog-and-github-releases
fabisev Sep 1, 2026
7363371
fix(release): validate release version and keep GPG passphrase off argv
fabisev Sep 2, 2026
649ce7e
chore(release): squash post-release bump into one commit
fabisev Sep 2, 2026
b3d7b5b
Merge remote-tracking branch 'origin/fabisev/release-changelog-and-gi…
fabisev Sep 2, 2026
baa4cd5
refactor(release): centralize release tag in TAG_NAME
fabisev Sep 2, 2026
7d71c9f
fix(release): resolve artifact dir dynamically, extract tag/PR action…
fabisev Sep 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor(release): split shared parent POM into a follow-up PR
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
  • Loading branch information
fabisev committed Sep 1, 2026
commit fb9da27b44d97ac688ed682c1aa5b0e323524dda
39 changes: 12 additions & 27 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,9 +167,9 @@ jobs:

# Cross-module gate: serialization has no tests in its own build, so the
# `mvn verify` above exercises nothing. Its behavioral coverage lives in
# aws-lambda-java-tests, which depends on it via the parent version map.
# Install the just-built serialization and run that suite against it, so
# we never publish serialization the suite hasn't exercised.
# aws-lambda-java-tests, which depends on serialization via a version
# property. Install the just-built serialization and run that suite
# against it, so we never publish serialization the suite hasn't exercised.
- name: Run cross-module test gate
run: |
case "$MODULE" in
Expand All @@ -179,10 +179,8 @@ jobs:
echo "::group::Installing $MODULE $MOD_VER for the gate"
mvn install -DskipTests --file "$MODULE/pom.xml"
echo "::endgroup::"
echo "::notice::Gating $MODULE on aws-lambda-java-tests (lambda.serialization.version=$MOD_VER)"
# Override the map property so the suite runs against the
# just-built serialization, not the version pinned in the map.
mvn verify -Dlambda.serialization.version="$MOD_VER" --file aws-lambda-java-tests/pom.xml
echo "::notice::Gating $MODULE on aws-lambda-java-tests (aws-lambda-java-serialization.version=$MOD_VER)"
mvn verify -Daws-lambda-java-serialization.version="$MOD_VER" --file aws-lambda-java-tests/pom.xml
;;
*)
echo "::notice::No cross-module test gate for $MODULE"
Expand Down Expand Up @@ -263,38 +261,25 @@ jobs:
-Darguments="-gs $MAVEN_SETTINGS -Prelease -Dgpg.keyname=$GPG_KEYNAME -Dgpg.passphrase=$GPG_PASSPHRASE" \
--file "$MODULE/pom.xml"

# Record the published version in the two places that track it, from the
# same EFFECTIVE_RELEASE_VERSION in one commit so they can't drift:
# (1) the module's lastPublished comment (informational, every module) and
# (2) the parent version map (functional, only for modules others depend
# on). Rides in the version-bump PR below (main is protected).
- name: Record released version (POM lastPublished + parent version map)
# Record the published version in the module's lastPublished comment so
# the POM reflects what's on Central. Rides in the version-bump PR below
# (main is protected).
- name: Record released version (POM lastPublished)
if: ${{ github.event.inputs.skip_publish != 'true' }}
run: |
# (1) Module's lastPublished annotation.
# Module's lastPublished annotation.
if grep -q "<!-- lastPublished:" "$MODULE/pom.xml"; then
sed -i "s|<!-- lastPublished:.*-->|<!-- lastPublished: ${EFFECTIVE_RELEASE_VERSION} (auto-updated by release.yml) -->|" "$MODULE/pom.xml"
git add "$MODULE/pom.xml"
else
echo "::notice::$MODULE has no lastPublished comment; skipping annotation"
fi

# (2) Parent version map. Update the module's entry only if the parent declares one
PROP="lambda.${MODULE#aws-lambda-java-}.version"
if grep -qF "<${PROP}>" pom.xml; then
PROP_RE="${PROP//./\\.}"
sed -i.bak -E "s|(<${PROP_RE}>)[^<]*(</${PROP_RE}>)|\1${EFFECTIVE_RELEASE_VERSION}\2|" pom.xml
rm -f pom.xml.bak
git add pom.xml
else
echo "::notice::$MODULE is not consumed by other modules (no ${PROP} in parent POM); version map unchanged"
fi

# One commit for both records, or nothing if neither changed.
# Commit the record, or nothing if it didn't change.
if git diff --cached --quiet; then
echo "::notice::$MODULE already recorded at ${EFFECTIVE_RELEASE_VERSION}; nothing to commit"
else
git commit -m "chore(release): record ${MODULE} ${EFFECTIVE_RELEASE_VERSION} (lastPublished + version map)"
git commit -m "chore(release): record ${MODULE} ${EFFECTIVE_RELEASE_VERSION} lastPublished"
fi

# Prepend the changelog entry so it ships in the version-bump PR. Passed
Expand Down
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,3 @@ experimental/aws-lambda-java-profiler/integration_tests/helloworld/bin
.kiro
build
mise.toml

# flatten-maven-plugin generates this self-contained POM at build time; it is
# published in place of the raw module POM and must never be committed.
.flattened-pom.xml
3 changes: 1 addition & 2 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@ Releasable modules: `aws-lambda-java-core`, `aws-lambda-java-events`,
2. Builds and tests the module.
3. Publishes to Maven Central and pushes the tag `<module>-<version>`.
4. Opens a **version-bump PR** into `main` with the next `-SNAPSHOT`, the updated
`lastPublished` comment, the parent POM's version-map entry (for modules other
modules depend on: core, events, serialization), and your changelog entry.
`lastPublished` comment, and your changelog entry.
5. Creates a GitHub Release on the tag from your changelog entry.

Merge the version-bump PR to return `main` to a clean `-SNAPSHOT` state.
Expand Down
7 changes: 0 additions & 7 deletions aws-lambda-java-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-libs</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>

<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.4.1-SNAPSHOT</version>
Expand Down
13 changes: 4 additions & 9 deletions aws-lambda-java-events-sdk-transformer/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-libs</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>

<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events-sdk-transformer</artifactId>
<version>3.1.2-SNAPSHOT</version>
<!-- lastPublished: 3.1.1 (auto-updated by release.yml) -->
Expand Down Expand Up @@ -48,6 +42,7 @@
<maven.compiler.target>1.8</maven.compiler.target>
<sdk.v1.version>1.11.914</sdk.v1.version>
<sdk.v2.version>2.15.40</sdk.v2.version>
<junit-jupiter.version>5.12.2</junit-jupiter.version>
<maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
</properties>

Expand All @@ -74,14 +69,14 @@
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<!-- version managed by parent -->
<version>3.16.1</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<!-- version managed by parent -->
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
10 changes: 2 additions & 8 deletions aws-lambda-java-events/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-libs</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>

<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>3.16.2-SNAPSHOT</version>
Expand Down Expand Up @@ -50,6 +43,7 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<jackson.version>2.20.1</jackson.version>
<json.unit>2.40.1</json.unit>
<junit-jupiter.version>5.12.2</junit-jupiter.version>
</properties>

<build>
Expand Down Expand Up @@ -106,7 +100,7 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<!-- version managed by parent -->
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down
13 changes: 4 additions & 9 deletions aws-lambda-java-log4j2/pom.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-libs</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>

<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-log4j2</artifactId>
<version>1.6.6-SNAPSHOT</version>
<!-- lastPublished: 1.6.5 (auto-updated by release.yml) -->
Expand Down Expand Up @@ -43,6 +37,7 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<log4j.version>2.25.5</log4j.version>
<junit-jupiter.version>5.12.2</junit-jupiter.version>
</properties>

<distributionManagement>
Expand All @@ -56,7 +51,7 @@
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<!-- version managed by parent (was 1.2.3) -->
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
Expand All @@ -77,7 +72,7 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<!-- version managed by parent -->
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
21 changes: 6 additions & 15 deletions aws-lambda-java-runtime-interface-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-libs</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>

<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-runtime-interface-client</artifactId>
<version>2.12.0-SNAPSHOT</version>
<packaging>jar</packaging>
Expand Down Expand Up @@ -47,9 +40,7 @@
<jacoco.maven.plugin.version>0.8.12</jacoco.maven.plugin.version>
<maven-install-plugin.version>2.4</maven-install-plugin.version>
<maven-deploy-plugin.version>3.1.1</maven-deploy-plugin.version>
<!-- junit-jupiter.version inherited from parent; still referenced by the
surefire plugin dependency below, which dependencyManagement can't
manage (it only governs project dependencies, not plugin ones). -->
<junit-jupiter.version>5.12.2</junit-jupiter.version>
<maven-checkstyle-plugin.version>3.4.0</maven-checkstyle-plugin.version>
<maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
<!--
Expand All @@ -74,12 +65,12 @@
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<!-- version managed by parent -->
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-serialization</artifactId>
<!-- version managed by parent -->
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
Expand All @@ -89,13 +80,13 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<!-- version managed by parent -->
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<!-- version managed by parent -->
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down
7 changes: 0 additions & 7 deletions aws-lambda-java-serialization/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,6 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-libs</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>

<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-serialization</artifactId>
<version>1.4.2-SNAPSHOT</version>
Expand Down
13 changes: 5 additions & 8 deletions aws-lambda-java-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-libs</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>

<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-tests</artifactId>
<version>1.1.3-SNAPSHOT</version>
<!-- lastPublished: 1.1.2 (auto-updated by release.yml) -->
Expand Down Expand Up @@ -50,7 +44,8 @@
-->
<junit.version>5.9.2</junit.version>
<jacoco.maven.plugin.version>0.8.7</jacoco.maven.plugin.version>
<!-- serialization / events versions come from the parent version map. -->
<aws-lambda-java-serialization.version>1.4.1</aws-lambda-java-serialization.version>
<aws-lambda-java-events.version>3.16.1</aws-lambda-java-events.version>
<commons-lang3.version>3.18.0</commons-lang3.version>
<assertj-core.version>3.27.7</assertj-core.version>
</properties>
Expand All @@ -59,10 +54,12 @@
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-serialization</artifactId>
<version>${aws-lambda-java-serialization.version}</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>${aws-lambda-java-events.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
Expand Down
Loading