This is an automated email from the ASF dual-hosted git repository.
bchapuis pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
The following commit(s) were added to refs/heads/main by this push:
new 28c41ecb Release automation (#844)
28c41ecb is described below
commit 28c41ecbabe7b55d44da277b088dfa78bdeb6dfa
Author: Bertil Chapuis <[email protected]>
AuthorDate: Tue Sep 10 00:00:50 2024 +0200
Release automation (#844)
* Improve release workflow
* Automate some of the tasks (build, sign, hash)
* Fix environment variables and secrets
* Publish snapshot on apache nexus
* Revise release instructions
---
.github/workflows/analyze.yml | 4 +-
.github/workflows/build.yml | 6 +-
.github/workflows/candidate.yml | 78 ++++++++++++
.github/workflows/codeql.yml | 4 +-
.../{deploy-snapshot.yml => snapshot.yml} | 7 +-
RELEASE.md | 140 +++++++++++++--------
baremaps-cli/pom.xml | 3 -
baremaps-cli/src/assembly/bin.xml | 2 +-
baremaps-cli/src/assembly/src.xml | 2 +-
baremaps-cli/src/license/override.properties | 5 +
baremaps-server/pom.xml | 24 ++++
pom.xml | 62 +++++++--
12 files changed, 256 insertions(+), 81 deletions(-)
diff --git a/.github/workflows/analyze.yml b/.github/workflows/analyze.yml
index f3c9f8e9..48e99a92 100644
--- a/.github/workflows/analyze.yml
+++ b/.github/workflows/analyze.yml
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set up Java 17
uses: actions/setup-java@v3
with:
@@ -29,7 +29,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set up Java 17
uses: actions/setup-java@v3
with:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 51cdba2b..76de7735 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set up Java 17
uses: actions/setup-java@v3
with:
@@ -29,7 +29,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set up Java 17
uses: actions/setup-java@v3
with:
@@ -44,7 +44,7 @@ jobs:
runs-on: windows-latest
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set up Java 17
uses: actions/setup-java@v3
with:
diff --git a/.github/workflows/candidate.yml b/.github/workflows/candidate.yml
new file mode 100644
index 00000000..c1c656bd
--- /dev/null
+++ b/.github/workflows/candidate.yml
@@ -0,0 +1,78 @@
+name: Publish candidate
+
+on:
+ push:
+ tags:
+ - 'v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+'
+
+jobs:
+ publish-candidate:
+ name: Publish candidate
+ runs-on: ubuntu-latest
+ steps:
+
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Set up Java 17
+ uses: actions/setup-java@v3
+ with:
+ java-version: 17
+ distribution: temurin
+ cache: maven
+ server-username: NEXUS_USER
+ server-password: NEXUS_PW
+ gpg-private-key: ${{ secrets.BAREMAPS_GPG_SECRET_KEY }}
+
+ - name: Extract variables
+ id: variables
+ shell: bash
+ run: |
+ echo "git_tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
+ echo "git_version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
+ echo "mvn_version=$(mvn -q -Dexec.executable=echo
-Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_OUTPUT
+
+ - name: Build candidate
+ shell: bash
+ run: mvn install -DskipTests -Dmaven.javadoc.skip=true -B -V
+
+ - name: Set up GPG
+ shell: bash
+ run: |
+ echo "${{ secrets.BAREMAPS_GPG_SECRET_KEY }}" | gpg --batch --import
+ gpg --list-keys
+ env:
+ GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
+
+ - name: Sign and hash candidate
+ shell: bash
+ run: |
+ cd ./baremaps-cli/target
+ mv apache-baremaps-${{ steps.variables.outputs.mvn_version
}}-incubating-src.tar.gz apache-baremaps-${{
steps.variables.outputs.git_version }}-incubating-src.tar.gz
+ shasum -a 512 "./apache-baremaps-${{
steps.variables.outputs.git_version }}-incubating-src.tar.gz" >
"./apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-src.tar.gz.sha512"
+ gpg --no-tty --quiet --pinentry-mode loopback --default-key "${{
secrets.GPG_KEY_ID }}" --batch --yes --output "./apache-baremaps-${{
steps.variables.outputs.git_version }}-incubating-src.tar.gz.asc" --detach-sign
--armor "./apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-src.tar.gz"
+ mv apache-baremaps-${{ steps.variables.outputs.mvn_version
}}-incubating-bin.tar.gz apache-baremaps-${{
steps.variables.outputs.git_version }}-incubating-bin.tar.gz
+ shasum -a 512 "./apache-baremaps-${{
steps.variables.outputs.git_version }}-incubating-bin.tar.gz" >
"./apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-bin.tar.gz.sha512"
+ gpg --no-tty --quiet --pinentry-mode loopback --default-key "${{
secrets.GPG_KEY_ID }}" --batch --yes --output "./apache-baremaps-${{
steps.variables.outputs.git_version }}-incubating-bin.tar.gz.asc" --detach-sign
--armor "./apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-bin.tar.gz"
+ cd -
+
+ - name: Publish release candidate on GitHub
+ shell: bash
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ gh release create "${{ steps.variables.outputs.git_tag }}" --draft
--prerelease --title "Apache Baremaps ${{ steps.variables.outputs.git_version
}} (incubating)" --repo ${{ github.repository }} --generate-notes
+ gh release upload --clobber "${{ steps.variables.outputs.git_tag }}"
./baremaps-cli/target/apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-src.tar.gz
+ gh release upload --clobber "${{ steps.variables.outputs.git_tag }}"
./baremaps-cli/target/apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-src.tar.gz.sha512
+ gh release upload --clobber "${{ steps.variables.outputs.git_tag }}"
./baremaps-cli/target/apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-src.tar.gz.asc
+ gh release upload --clobber "${{ steps.variables.outputs.git_tag }}"
./baremaps-cli/target/apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-bin.tar.gz
+ gh release upload --clobber "${{ steps.variables.outputs.git_tag }}"
./baremaps-cli/target/apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-bin.tar.gz.sha512
+ gh release upload --clobber "${{ steps.variables.outputs.git_tag }}"
./baremaps-cli/target/apache-baremaps-${{ steps.variables.outputs.git_version
}}-incubating-bin.tar.gz.asc
+
+ - name: Publish release candidate on Apache SVN
+ shell: bash
+ run: |
+ mkdir -p ${{ steps.variables.outputs.git_version }}
+ cp ./baremaps-cli/target/apache-baremaps-${{
steps.variables.outputs.git_version }}-* ${{
steps.variables.outputs.git_version }}
+ svn --username "${{ secrets.INCUBATOR_SVN_DEV_USERNAME }}"
--password "${{ secrets.INCUBATOR_SVN_DEV_PASSWORD }}" import -m "Apache
Baremaps ${{ steps.variables.outputs.git_version }} (incubating)" ${{
steps.variables.outputs.git_version }}
https://dist.apache.org/repos/dist/dev/incubator/baremaps/${{
steps.variables.outputs.git_version }}
+ rm -rf ${{ steps.variables.outputs.git_version }}
\ No newline at end of file
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 55f324af..ac8f4e60 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -21,13 +21,13 @@ jobs:
strategy:
fail-fast: false
matrix:
- language: [ 'java', 'javascript' ]
+ language: [ 'java' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript',
'python', 'ruby' ]
# Learn more about CodeQL language support at
https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set up Java 17
uses: actions/setup-java@v3
diff --git a/.github/workflows/deploy-snapshot.yml
b/.github/workflows/snapshot.yml
similarity index 88%
rename from .github/workflows/deploy-snapshot.yml
rename to .github/workflows/snapshot.yml
index 59b3da8f..47e76e7f 100644
--- a/.github/workflows/deploy-snapshot.yml
+++ b/.github/workflows/snapshot.yml
@@ -1,4 +1,4 @@
-name: Deploy snapshot
+name: Publish candidate
on:
push:
@@ -21,19 +21,20 @@ jobs:
java-version: 17
distribution: temurin
cache: maven
- server-id: apache.snapshots.https
server-username: NEXUS_USER
server-password: NEXUS_PW
gpg-private-key: ${{ secrets.BAREMAPS_GPG_SECRET_KEY }}
- name: Set up GPG
+ shell: bash
run: |
echo "${{ secrets.BAREMAPS_GPG_SECRET_KEY }}" | gpg --batch --import
gpg --list-keys
env:
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
- - name: Publish snapshots on Apache Nexus
+ - name: Publish candidate snapshots on Apache Nexus
+ shell: bash
env:
NEXUS_USER: ${{ secrets.NEXUS_USER }}
NEXUS_PW: ${{ secrets.NEXUS_PW }}
diff --git a/RELEASE.md b/RELEASE.md
index 76b8144b..4548fe23 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -17,122 +17,148 @@ limitations under the License.
# Release instructions
+The following instructions assume that the release candidate version has been
set in an environment variable:
+
+```bash
+export RELEASE_VERSION=<release_version> # e.g. 0.7.1
+export NEXT_VERSION=<next_version> # e.g. 0.7.2
+export CANDIDATE_NUMBER=<candidate_number> # e.g. 1
+export RELEASE_MANAGER_NAME=<release_manager_name> # e.g. John Doe
+export COMMIT_HASH=<commit_hash> # e.g. 1234567890
+```
+
In order to release a new version of Apache Baremaps, follow these steps:
- [ ] Notify the mailing list and ask everyone to pause commits on the main
branch
-- [ ] Create a new issue on GitHub with the title "Release Baremaps <version>"
-- [ ] Create a new branch for the release (e.g. `release-<version>`)
+- [ ] Create a new issue on GitHub with the title "Release Baremaps
$RELEASE_VERSION"
+- [ ] Create a new branch for the release (e.g. `release-$RELEASE_VERSION`)
```bash
cd baremaps
-git checkout -b release-<version>
-git push --set-upstream origin release-<version>
+git checkout -b release-$RELEASE_VERSION
```
- [ ] Set the release version and commit the changes:
```bash
-./mvnw versions:set -DnewVersion=<version>
-git commit -a -m "Release Baremaps <version>"
+./mvnw versions:set -DnewVersion=$RELEASE_VERSION
+git commit -a -m "Release Baremaps $RELEASE_VERSION"
+git push --set-upstream origin release-$RELEASE_VERSION
```
- [ ] Tag the last commit with the release candidate version:
```bash
-git tag v<version>-rc<number>
+git tag v$RELEASE_VERSION-rc$CANDIDATE_NUMBER
```
-- [ ] Push the tag to the remote repository:
+- [ ] Push the tag to the remote repository (this will trigger GitHub Action
to build the release candidate, publish the artifacts to the [dev
directory](https://dist.apache.org/repos/dist/dev/incubator/baremaps/) of
dist.apache.org repository, and draft a release on GitHub):
```bash
-git push origin v<version>-rc<number>
+git push origin v$RELEASE_VERSION-rc$CANDIDATE_NUMBER
```
-- [ ] Generate the release notes for this tag on GitHub with release ticked in
order to generate a release notes.
-- [ ] Generate the artifacts:
+- [ ] Edit the release notes for this tag on GitHub.
+- [ ] Ask the community to vote for the release candidate.
+- [ ] If the release candidate is not approved by the community, commit the
necessary changes, clean the git history, create a new release candidate, and
repeat the process.
-```bash
-./scripts/generate-artifacts.sh
-```
+> TODO: The following step is not yet fully automated. We need to add secrets
and steps to publish the artifacts to the [dev
directory](https://dist.apache.org/repos/dist/dev/incubator/baremaps/)
(APACHE_USERNAME, APACHE_PASSWORD) and to the maven repository (NEXUS_USERNAME,
NEXUS_PASSWORD).
-- [ ] Publish the artifacts:
+- [ ] If the release candidate is approved by the community, tag the release
commit with the release version (this will trigger the same GitHub Action as
before):
```bash
-cd ..
-svn co https://dist.apache.org/repos/dist/dev/incubator/baremaps/ baremaps-dev
-mkdir baremaps-dev/<version>-rc<number>
-cp ./baremaps/baremaps-cli/target/apache-baremaps-<version>-incubating-*
baremaps-dev/<version>-rc<number>/.
-svn commit -m "Baremaps <version>-rc<number>"
+git tag -a v$RELEASE_VERSION
+git push origin v$RELEASE_VERSION
```
-- [ ] Ask the community to vote for the release candidate.
-- [ ] If the release candidate is not approved by the community, commit the
necessary changes, clean the git history,
- and go back to step 5.
-- [ ] If the release candidate is approved by the community, tag the release
commit with the release version:
+- [ ] Register the release on
[reporter.apache.org](https://reporter.apache.org/addrelease.html?incubator-baremaps).
+- [ ] Rebase the release branch into the main branch.
+- [ ] Clean up all the release candidate branches and tags.
+- [ ] Publish the release on GitHub.
+- [ ] Copy the release artifacts from the [dev
directory](https://dist.apache.org/repos/dist/dev/incubator/baremaps/) to the
[release
directory](https://dist.apache.org/repos/dist/release/incubator/baremaps/).
```bash
-git tag -a v<version>
-git push origin v<version>
+svn cp
https://dist.apache.org/repos/dist/dev/incubator/baremaps/$RELEASE_VERSION-rc$CANDIDATE_NUMBER
https://dist.apache.org/repos/dist/release/incubator/baremaps/$RELEASE_VERSION
-m "Release Apache Baremaps (incubating) $RELEASE_VERSION"
```
-- [ ] Move the artifacts into the release directory with svn:
+- [ ] Publish the release artifacts to the maven repository.
```bash
-svn mv -m "Baremaps <version>" \
-
https://dist.apache.org/repos/dist/dev/incubator/baremaps/<version>-rc<number>/
\
- https://dist.apache.org/repos/dist/release/incubator/baremaps/<version>/
+./mvnw clean deploy -Papache-release
```
- [ ] Set the version of the next iteration and commit the changes:
```bash
-./mvnw versions:set -DnewVersion=<next_version>-SNAPSHOT
+./mvnw versions:set -DnewVersion=$NEXT_VERSION-SNAPSHOT
git commit -a -m "Prepare for next development iteration"
git push origin
```
-- [ ] Rebase the release branch into the main branch.
+```bash
+./mvnw clean deploy
+```
+
- [ ] Notify the community of the release by sending a message to the mailing
list.
-- [ ] Clean up all the release candidate branches and tags.
+
+## Reproducing the build
+
+The release artifacts are bit-by-bit reproducible if the following conditions
are met:
+- The build is run with the same version of the JDK (e.g. OpenJDK 17 temurin)
+- The build is run with the maven wrapper (e.g. `./mvnw`)
+
+The procedure has been tested on different operating systems (e.g. Linux and
MacOS).
+For convenience, we suggest to build the release artifacts on a clean
environment (e.g. a fresh Docker container).
+
+```bash
+git checkout v$RELEASE_VERSION-rc$CANDIDATE_NUMBER
+docker run \
+ -v $(pwd):/baremaps \
+ -w /baremaps \
+ eclipse-temurin:17-jdk \
+ ./mvnw clean install -DskipTests
+```
## Verifying the release artifacts
Verify the GPG signature of the release artifacts:
```bash
-gpg --verify apache-baremaps-<version>-incubating-bin.tar.gz.asc
-gpg --verify apache-baremaps-<version>-incubating-src.tar.gz.asc
+gpg --verify apache-baremaps-$RELEASE_VERSION-incubating-bin.tar.gz.asc
+gpg --verify apache-baremaps-$RELEASE_VERSION-incubating-src.tar.gz.asc
```
Verify the SHA512 checksum of the release artifacts:
```bash
-shasum -a 512 -c apache-baremaps-<version>-incubating-bin.tar.gz.sha512
-shasum -a 512 -c apache-baremaps-<version>-incubating-src.tar.gz.sha512
+shasum -a 512 -c apache-baremaps-$RELEASE_VERSION-incubating-bin.tar.gz.sha512
+shasum -a 512 -c apache-baremaps-$RELEASE_VERSION-incubating-src.tar.gz.sha512
```
## Vote template
-subject: [VOTE] Release Apache Baremaps <version>-rc<number> (incubating)
+```bash
+cat << EOF
+subject: [VOTE] Release Apache Baremaps $RELEASE_VERSION-rc$CANDIDATE_NUMBER
(incubating)
Hello Everyone,
-I have created a build for Apache Baremaps (incubating) <version>, release
candidate <number>.
+I have created a build for Apache Baremaps (incubating) $RELEASE_VERSION,
release candidate $CANDIDATE_NUMBER.
Thanks to everyone who has contributed to this release.
You can read the release notes here:
-https://github.com/apache/incubator-baremaps/releases/tag/v<version>-rc<number>
+https://github.com/apache/incubator-baremaps/releases/tag/v$RELEASE_VERSION-rc$CANDIDATE_NUMBER
The commit to be voted upon:
-https://github.com/apache/incubator-baremaps/tree/v<version>-rc<number>
+https://github.com/apache/incubator-baremaps/tree/v$RELEASE_VERSION-rc$CANDIDATE_NUMBER
-Its hash is <hash>.
+Its hash is $COMMIT_HASH.
-Its tag is v<version>-rc<number>.
+Its tag is v$RELEASE_VERSION-rc$CANDIDATE_NUMBER.
The artifacts to be voted on are located here:
-https://dist.apache.org/repos/dist/dev/incubator/baremaps/<version>-rc<number>/
+https://dist.apache.org/repos/dist/dev/incubator/baremaps/$RELEASE_VERSION-rc$CANDIDATE_NUMBER/
The hashes of the artifacts are as follows:
<src>
@@ -144,11 +170,11 @@ https://downloads.apache.org/incubator/baremaps/KEYS
The README file for the src distribution contains instructions for building
and testing the release.
-Please vote on releasing this package as Apache Baremaps <version>.
+Please vote on releasing this package as Apache Baremaps $RELEASE_VERSION.
The vote is open for the next 72 hours and passes if a majority of at least
three +1 PMC votes are cast.
-[ ] +1 Release this package as Apache Baremaps <version>
+[ ] +1 Release this package as Apache Baremaps $RELEASE_VERSION
[ ] 0 I don't feel strongly about it, but I'm okay with the release
[ ] -1 Do not release this package because...
@@ -156,25 +182,27 @@ Here is my vote:
+1 (binding)
-<release_manager_name>
+$RELEASE_MANAGER_NAME
+EOF
+```
## Announce template
-subject: [ANNOUNCE] Apache Baremaps <version> (incubating) released
+```bash
+cat << EOF
+subject: [ANNOUNCE] Apache Baremaps $RELEASE_VERSION (incubating) released
Hello Everyone,
-The Apache Baremaps community is pleased to announce the release of Apache
Baremaps <version> (incubating).
-Thank you to everyone who contributed to this release.
-
+The Apache Baremaps community is pleased to announce the release of Apache
Baremaps $RELEASE_VERSION (incubating).
Apache Baremaps is a toolkit and a set of infrastructure components for
creating, publishing, and operating online maps.
<short description of the release which should include release highlights>
The release notes are available here:
-https://github.com/apache/incubator-baremaps/releases/tag/v<version>
+https://github.com/apache/incubator-baremaps/releases/tag/v$RELEASE_VERSION
-The download page is located here:
-https://baremaps.apache.org/download/release-<version>
+The artifacts are available here:
+https://dist.apache.org/repos/dist/release/incubator/baremaps/$RELEASE_VERSION
We are looking to grow our community and welcome new contributors.
If you are interested in contributing to the project, please contact us on the
mailing list or on GitHub.
@@ -194,5 +222,7 @@ https://github.com/apache/incubator-baremaps/issues
Best regards,
-<release_manager_name>
+$RELEASE_MANAGER_NAME
+EOF
+```
diff --git a/baremaps-cli/pom.xml b/baremaps-cli/pom.xml
index 0700e000..7003b2c6 100644
--- a/baremaps-cli/pom.xml
+++ b/baremaps-cli/pom.xml
@@ -162,9 +162,6 @@ limitations under the License.
<version>${version.lib.picocli}</version>
</path>
</annotationProcessorPaths>
- <compilerArgs>
- <arg>-Aproject=${project.groupId}/${project.artifactId}</arg>
- </compilerArgs>
</configuration>
</plugin>
<plugin>
diff --git a/baremaps-cli/src/assembly/bin.xml
b/baremaps-cli/src/assembly/bin.xml
index d26d822f..3a010b29 100644
--- a/baremaps-cli/src/assembly/bin.xml
+++ b/baremaps-cli/src/assembly/bin.xml
@@ -18,7 +18,7 @@ limitations under the License.
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2
http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>zip</id>
+ <id>bin</id>
<includeBaseDirectory>true</includeBaseDirectory>
<formats>
<format>tar.gz</format>
diff --git a/baremaps-cli/src/assembly/src.xml
b/baremaps-cli/src/assembly/src.xml
index c2d2a5a0..e90c16ac 100644
--- a/baremaps-cli/src/assembly/src.xml
+++ b/baremaps-cli/src/assembly/src.xml
@@ -18,7 +18,7 @@ limitations under the License.
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2
http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>zip</id>
+ <id>src</id>
<includeBaseDirectory>true</includeBaseDirectory>
<formats>
<format>tar.gz</format>
diff --git a/baremaps-cli/src/license/override.properties
b/baremaps-cli/src/license/override.properties
index 9f5075e3..aac04ba7 100644
--- a/baremaps-cli/src/license/override.properties
+++ b/baremaps-cli/src/license/override.properties
@@ -17,7 +17,12 @@ ch.qos.logback--logback-classic--1.2.10=Eclipse Public
License 1.0; GNU Lesser G
ch.qos.logback--logback-core--1.2.10=Eclipse Public License 1.0; GNU Lesser
General Public License
ch.qos.reload4j--reload4j--1.2.22=Apache License 2.0
com.aayushatharva.brotli4j--brotli4j--1.16.0=Apache License 2.0
+com.aayushatharva.brotli4j--native-linux-aarch64--1.16.0=Apache License 2.0
+com.aayushatharva.brotli4j--native-linux-x86_64--1.16.0=Apache License 2.0
com.aayushatharva.brotli4j--native-osx-aarch64--1.16.0=Apache License 2.0
+com.aayushatharva.brotli4j--native-osx-x86_64--1.16.0=Apache License 2.0
+com.aayushatharva.brotli4j--native-windows-aarch64--1.16.0=Apache License 2.0
+com.aayushatharva.brotli4j--native-windows-x86_64--1.16.0=Apache License 2.0
com.aayushatharva.brotli4j--service--1.16.0=Apache License 2.0
com.fasterxml.jackson.core--jackson-annotations--2.17.2=Apache License 2.0
com.fasterxml.jackson.core--jackson-core--2.17.2=Apache License 2.0
diff --git a/baremaps-server/pom.xml b/baremaps-server/pom.xml
index 869404fc..7eede192 100644
--- a/baremaps-server/pom.xml
+++ b/baremaps-server/pom.xml
@@ -26,6 +26,30 @@ limitations under the License.
<artifactId>baremaps-server</artifactId>
<dependencies>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-linux-aarch64</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-linux-x86_64</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-osx-aarch64</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-osx-x86_64</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-windows-aarch64</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-windows-x86_64</artifactId>
+ </dependency>
<dependency>
<groupId>com.linecorp.armeria</groupId>
<artifactId>armeria</artifactId>
diff --git a/pom.xml b/pom.xml
index f56e703d..d60471ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,8 +66,10 @@ limitations under the License.
</scm>
<properties>
+ <maven.compiler.release>17</maven.compiler.release>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
+
<project.build.outputTimestamp>2024-03-18T11:01:08Z</project.build.outputTimestamp>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<sonar.moduleKey>${project.groupId}:${project.artifactId}</sonar.moduleKey>
@@ -76,6 +78,7 @@ limitations under the License.
<version.lib.armeria>1.30.0</version.lib.armeria>
<version.lib.awaitability>4.2.2</version.lib.awaitability>
<version.lib.awssdk>2.27.17</version.lib.awssdk>
+ <version.lib.brotli4j>1.16.0</version.lib.brotli4j>
<version.lib.caffeine>3.1.8</version.lib.caffeine>
<version.lib.calcite>1.37.0</version.lib.calcite>
<version.lib.commons-compress>1.27.1</version.lib.commons-compress>
@@ -124,6 +127,36 @@ limitations under the License.
<dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-linux-aarch64</artifactId>
+ <version>${version.lib.brotli4j}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-linux-x86_64</artifactId>
+ <version>${version.lib.brotli4j}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-osx-aarch64</artifactId>
+ <version>${version.lib.brotli4j}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-osx-x86_64</artifactId>
+ <version>${version.lib.brotli4j}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-windows-aarch64</artifactId>
+ <version>${version.lib.brotli4j}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.aayushatharva.brotli4j</groupId>
+ <artifactId>native-windows-x86_64</artifactId>
+ <version>${version.lib.brotli4j}</version>
+ </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
@@ -568,6 +601,17 @@ limitations under the License.
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${version.plugin.maven-compiler-plugin}</version>
+ <configuration>
+ <release>17</release>
+ <compilerArgs>
+ <arg>-Aproject=${project.groupId}/${project.artifactId}</arg>
+ </compilerArgs>
+ </configuration>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
@@ -577,6 +621,13 @@ limitations under the License.
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${version.plugin.maven-jar-plugin}</version>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <Build-Date>${project.build.outputTimestamp}</Build-Date>
+ </manifestEntries>
+ </archive>
+ </configuration>
<executions>
<execution>
<goals>
@@ -745,17 +796,6 @@ limitations under the License.
</execution>
</executions>
</plugin>
- <plugin>
- <groupId>org.sonatype.plugins</groupId>
- <artifactId>nexus-staging-maven-plugin</artifactId>
- <version>${version.plugin.nexus-staging-maven-plugin}</version>
- <extensions>true</extensions>
- <configuration>
- <serverId>maven</serverId>
- <nexusUrl>https://oss.sonatype.org/</nexusUrl>
- <autoReleaseAfterClose>false</autoReleaseAfterClose>
- </configuration>
- </plugin>
</plugins>
</build>
</profile>