Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
39 changes: 27 additions & 12 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 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.
# 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.
- name: Run cross-module test gate
run: |
case "$MODULE" in
Expand All @@ -179,8 +179,10 @@ 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 (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::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::No cross-module test gate for $MODULE"
Expand Down Expand Up @@ -261,25 +263,38 @@ jobs:
-Darguments="-gs $MAVEN_SETTINGS -Prelease -Dgpg.keyname=$GPG_KEYNAME -Dgpg.passphrase=$GPG_PASSPHRASE" \
--file "$MODULE/pom.xml"

# 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)
# 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)
if: ${{ github.event.inputs.skip_publish != 'true' }}
run: |
# Module's lastPublished annotation.
# (1) 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

# Commit the record, or nothing if it didn't change.
# (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.
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"
git commit -m "chore(release): record ${MODULE} ${EFFECTIVE_RELEASE_VERSION} (lastPublished + version map)"
fi

# Prepend the changelog entry so it ships in the version-bump PR. Passed
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,7 @@ 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: 2 additions & 1 deletion RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ 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, and your changelog entry.
`lastPublished` comment, the parent POM's version-map entry (for modules other
modules depend on: core, events, serialization), 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: 7 additions & 0 deletions aws-lambda-java-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
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: 9 additions & 4 deletions aws-lambda-java-events-sdk-transformer/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,13 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

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

<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 @@ -42,7 +48,6 @@
<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 @@ -69,14 +74,14 @@
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>3.16.1</version>
<!-- version managed by parent -->
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<!-- version managed by parent -->
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
10 changes: 8 additions & 2 deletions aws-lambda-java-events/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
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 @@ -43,7 +50,6 @@
<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 @@ -100,7 +106,7 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<!-- version managed by parent -->
<scope>test</scope>
</dependency>
<dependency>
Expand Down
13 changes: 9 additions & 4 deletions aws-lambda-java-log4j2/pom.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
<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>

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

<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 @@ -37,7 +43,6 @@
<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 @@ -51,7 +56,7 @@
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.2.3</version>
<!-- version managed by parent (was 1.2.3) -->
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
Expand All @@ -72,7 +77,7 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<!-- version managed by parent -->
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
21 changes: 15 additions & 6 deletions aws-lambda-java-runtime-interface-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@
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>
<groupId>com.amazonaws</groupId>

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

<artifactId>aws-lambda-java-runtime-interface-client</artifactId>
<version>2.12.0-SNAPSHOT</version>
<packaging>jar</packaging>
Expand Down Expand Up @@ -40,7 +47,9 @@
<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>5.12.2</junit-jupiter.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). -->
<maven-checkstyle-plugin.version>3.4.0</maven-checkstyle-plugin.version>
<maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
<!--
Expand All @@ -65,12 +74,12 @@
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.4.0</version>
<!-- version managed by parent -->
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-serialization</artifactId>
<version>1.4.1</version>
<!-- version managed by parent -->
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
Expand All @@ -80,13 +89,13 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<!-- version managed by parent -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit-jupiter.version}</version>
<!-- version managed by parent -->
<scope>test</scope>
</dependency>
<dependency>
Expand Down
7 changes: 7 additions & 0 deletions aws-lambda-java-serialization/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
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: 8 additions & 5 deletions aws-lambda-java-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,13 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

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

<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 @@ -44,8 +50,7 @@
-->
<junit.version>5.9.2</junit.version>
<jacoco.maven.plugin.version>0.8.7</jacoco.maven.plugin.version>
<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>
<!-- serialization / events versions come from the parent version map. -->
<commons-lang3.version>3.18.0</commons-lang3.version>
<assertj-core.version>3.27.7</assertj-core.version>
</properties>
Expand All @@ -54,12 +59,10 @@
<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