Skip to content

Conversation

@luohoufu
Copy link

@luohoufu luohoufu commented Feb 6, 2026

No description provided.

Copilot AI review requested due to automatic review settings February 6, 2026 02:31
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds multiplatform build support for ARM64 architectures to the Tongsuo-Java-SDK project. The changes enable building native libraries for Linux ARM64 and Windows ARM64 platforms, expanding the project's platform coverage beyond x86_64.

Changes:

  • Added WINDOWS_AARCH64 and LINUX_AARCH64 platform definitions to the NativeBuildInfo enum
  • Configured GCC toolchain for linux_aarch64 target platform
  • Added ubuntu-24.04-arm to CI and release workflows for ARM64 Linux builds

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

File Description
openjdk/build.gradle Adds WINDOWS_AARCH64 and LINUX_AARCH64 enum entries to support ARM64 platforms in the native build configuration
build.gradle Configures GCC toolchain with explicit compiler path for linux_aarch64 target
.github/workflows/release.yml Adds ubuntu-24.04-arm platform with linux-arm64 target to the build matrix
.github/workflows/ci.yml Adds ubuntu-24.04-arm to the CI build matrix for continuous integration testing

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

},
{
os: ubuntu-24.04-arm,
target: linux-arm64
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The target name "linux-arm64" is inconsistent with the architecture naming convention used in the NativeBuildInfo enum. According to openjdk/build.gradle line 26, the Linux ARM64 platform uses "aarch_64" as the architecture identifier, which would make the Maven classifier "linux-aarch_64" (see mavenClassifier() method on line 55-56). This target value appears to be used by Tongsuo's Configure script, so verify whether "linux-arm64" is the correct target for the OpenSSL-based Tongsuo build system, or if it should align with the naming in NativeBuildInfo.

Suggested change
target: linux-arm64
target: linux-aarch_64

Copilot uses AI. Check for mistakes.
luohf-infinilabs and others added 26 commits February 6, 2026 10:39
chore: add multiplatform build
Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

---------

Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

---------

Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

---------

Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

---------

Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

---------

Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

---------

Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

* chore: add check for jar file

* chore: add the info and stack for build

---------

Co-authored-by: hardy <luohf@infinilabs.com>
luohf-infinilabs and others added 30 commits February 10, 2026 09:31
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

* chore: add check for jar file

* chore: add the info and stack for build

* chore: update the job

* chore: refactor the ci build

* fix: upload 409 error

* chore: add permission for build

* chore: add permission for build

* fix: the ci target

* fix: windows platform build

* fix: gh archive download failture

* chore: update the step name

* fix: windows arm64 build

* chore: use deafult gradle download url

* chore: update the ci actions version

* chore: update check step for cross compile

* chore: use qemu for macos x86_64

* fix: windows arm64 and macos x86_64

* fix: release build for windows dynamic

* fix: use ubuntu for windows arm64 cross build

* fix: ci set up error

* chore: update the ci and release for arm64 build

* chore: typo the darwin

* chore: revert change for darwin

* chore: update the windows arm64 build

* fix: update the windows arm64 build

* fix: windows build error

* fix: resource comiler error

* fix: windows arm64 build

* fix: windows arm64 build with config

* fix: windows arm64 build

* fix: windows arm64 build dynamic

* fix: macos arm64 build

* fix: windows arm64 check

* fix: gradle check

* fix: make error

* fix: make error windows arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: windows arm64 not support

---------

Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

* chore: add check for jar file

* chore: add the info and stack for build

* chore: update the job

* chore: refactor the ci build

* fix: upload 409 error

* chore: add permission for build

* chore: add permission for build

* fix: the ci target

* fix: windows platform build

* fix: gh archive download failture

* chore: update the step name

* fix: windows arm64 build

* chore: use deafult gradle download url

* chore: update the ci actions version

* chore: update check step for cross compile

* chore: use qemu for macos x86_64

* fix: windows arm64 and macos x86_64

* fix: release build for windows dynamic

* fix: use ubuntu for windows arm64 cross build

* fix: ci set up error

* chore: update the ci and release for arm64 build

* chore: typo the darwin

* chore: revert change for darwin

* chore: update the windows arm64 build

* fix: update the windows arm64 build

* fix: windows build error

* fix: resource comiler error

* fix: windows arm64 build

* fix: windows arm64 build with config

* fix: windows arm64 build

* fix: windows arm64 build dynamic

* fix: macos arm64 build

* fix: windows arm64 check

* fix: gradle check

* fix: make error

* fix: make error windows arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: uber jar for release

---------

Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

* chore: add check for jar file

* chore: add the info and stack for build

* chore: update the job

* chore: refactor the ci build

* fix: upload 409 error

* chore: add permission for build

* chore: add permission for build

* fix: the ci target

* fix: windows platform build

* fix: gh archive download failture

* chore: update the step name

* fix: windows arm64 build

* chore: use deafult gradle download url

* chore: update the ci actions version

* chore: update check step for cross compile

* chore: use qemu for macos x86_64

* fix: windows arm64 and macos x86_64

* fix: release build for windows dynamic

* fix: use ubuntu for windows arm64 cross build

* fix: ci set up error

* chore: update the ci and release for arm64 build

* chore: typo the darwin

* chore: revert change for darwin

* chore: update the windows arm64 build

* fix: update the windows arm64 build

* fix: windows build error

* fix: resource comiler error

* fix: windows arm64 build

* fix: windows arm64 build with config

* fix: windows arm64 build

* fix: windows arm64 build dynamic

* fix: macos arm64 build

* fix: windows arm64 check

* fix: gradle check

* fix: make error

* fix: make error windows arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: uber jar for release

* chore: add static uber jar build

---------

Co-authored-by: hardy <luohf@infinilabs.com>
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

* chore: add check for jar file

* chore: add the info and stack for build

* chore: update the job

* chore: refactor the ci build

* fix: upload 409 error

* chore: add permission for build

* chore: add permission for build

* fix: the ci target

* fix: windows platform build

* fix: gh archive download failture

* chore: update the step name

* fix: windows arm64 build

* chore: use deafult gradle download url

* chore: update the ci actions version

* chore: update check step for cross compile

* chore: use qemu for macos x86_64

* fix: windows arm64 and macos x86_64

* fix: release build for windows dynamic

* fix: use ubuntu for windows arm64 cross build

* fix: ci set up error

* chore: update the ci and release for arm64 build

* chore: typo the darwin

* chore: revert change for darwin

* chore: update the windows arm64 build

* fix: update the windows arm64 build

* fix: windows build error

* fix: resource comiler error

* fix: windows arm64 build

* fix: windows arm64 build with config

* fix: windows arm64 build

* fix: windows arm64 build dynamic

* fix: macos arm64 build

* fix: windows arm64 check

* fix: gradle check

* fix: make error

* fix: make error windows arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: uber jar for release

* chore: add static uber jar build

* chore: update test example for uber jar

* chore: add test scripts

---------

Co-authored-by: hardy <luohf@infinilabs.com>
- Add Git commit, branch, build time to MANIFEST.MF
- Copy Tongsuo shared libraries (libssl, libcrypto) into dynamic JARs
- Add rpath fix tasks in Gradle build before copying to JAR
- macOS: Change absolute paths to @rpath and add @loader_path
- Linux: Set rpath to $ORIGIN for relative library loading
- This allows dynamic uber JAR to work without installing Tongsuo
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

* chore: add check for jar file

* chore: add the info and stack for build

* chore: update the job

* chore: refactor the ci build

* fix: upload 409 error

* chore: add permission for build

* chore: add permission for build

* fix: the ci target

* fix: windows platform build

* fix: gh archive download failture

* chore: update the step name

* fix: windows arm64 build

* chore: use deafult gradle download url

* chore: update the ci actions version

* chore: update check step for cross compile

* chore: use qemu for macos x86_64

* fix: windows arm64 and macos x86_64

* fix: release build for windows dynamic

* fix: use ubuntu for windows arm64 cross build

* fix: ci set up error

* chore: update the ci and release for arm64 build

* chore: typo the darwin

* chore: revert change for darwin

* chore: update the windows arm64 build

* fix: update the windows arm64 build

* fix: windows build error

* fix: resource comiler error

* fix: windows arm64 build

* fix: windows arm64 build with config

* fix: windows arm64 build

* fix: windows arm64 build dynamic

* fix: macos arm64 build

* fix: windows arm64 check

* fix: gradle check

* fix: make error

* fix: make error windows arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: uber jar for release

* chore: add static uber jar build

* chore: update test example for uber jar

* chore: add test scripts

* Fix dynamic uber JAR: bundle Tongsuo libraries and add manifest info

- Add Git commit, branch, build time to MANIFEST.MF
- Copy Tongsuo shared libraries (libssl, libcrypto) into dynamic JARs
- Add rpath fix tasks in Gradle build before copying to JAR
- macOS: Change absolute paths to @rpath and add @loader_path
- Linux: Set rpath to $ORIGIN for relative library loading
- This allows dynamic uber JAR to work without installing Tongsuo

---------

Co-authored-by: hardy <luohf@infinilabs.com>
Replace buildType check with hasTongsuoSharedLibs flag that detects
whether Tongsuo shared libraries exist in TONGSUO_HOME. This avoids
the 'No such property: buildType' error.
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

* chore: add check for jar file

* chore: add the info and stack for build

* chore: update the job

* chore: refactor the ci build

* fix: upload 409 error

* chore: add permission for build

* chore: add permission for build

* fix: the ci target

* fix: windows platform build

* fix: gh archive download failture

* chore: update the step name

* fix: windows arm64 build

* chore: use deafult gradle download url

* chore: update the ci actions version

* chore: update check step for cross compile

* chore: use qemu for macos x86_64

* fix: windows arm64 and macos x86_64

* fix: release build for windows dynamic

* fix: use ubuntu for windows arm64 cross build

* fix: ci set up error

* chore: update the ci and release for arm64 build

* chore: typo the darwin

* chore: revert change for darwin

* chore: update the windows arm64 build

* fix: update the windows arm64 build

* fix: windows build error

* fix: resource comiler error

* fix: windows arm64 build

* fix: windows arm64 build with config

* fix: windows arm64 build

* fix: windows arm64 build dynamic

* fix: macos arm64 build

* fix: windows arm64 check

* fix: gradle check

* fix: make error

* fix: make error windows arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: uber jar for release

* chore: add static uber jar build

* chore: update test example for uber jar

* chore: add test scripts

* Fix dynamic uber JAR: bundle Tongsuo libraries and add manifest info

- Add Git commit, branch, build time to MANIFEST.MF
- Copy Tongsuo shared libraries (libssl, libcrypto) into dynamic JARs
- Add rpath fix tasks in Gradle build before copying to JAR
- macOS: Change absolute paths to @rpath and add @loader_path
- Linux: Set rpath to $ORIGIN for relative library loading
- This allows dynamic uber JAR to work without installing Tongsuo

* Fix: detect dynamic build by checking for Tongsuo shared libs

Replace buildType check with hasTongsuoSharedLibs flag that detects
whether Tongsuo shared libraries exist in TONGSUO_HOME. This avoids
the 'No such property: buildType' error.

---------

Co-authored-by: hardy <luohf@infinilabs.com>
Changed fixRpath tasks from Exec type to regular tasks with doLast
and project.exec calls to avoid 'execCommand == null' error.
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

* chore: add check for jar file

* chore: add the info and stack for build

* chore: update the job

* chore: refactor the ci build

* fix: upload 409 error

* chore: add permission for build

* chore: add permission for build

* fix: the ci target

* fix: windows platform build

* fix: gh archive download failture

* chore: update the step name

* fix: windows arm64 build

* chore: use deafult gradle download url

* chore: update the ci actions version

* chore: update check step for cross compile

* chore: use qemu for macos x86_64

* fix: windows arm64 and macos x86_64

* fix: release build for windows dynamic

* fix: use ubuntu for windows arm64 cross build

* fix: ci set up error

* chore: update the ci and release for arm64 build

* chore: typo the darwin

* chore: revert change for darwin

* chore: update the windows arm64 build

* fix: update the windows arm64 build

* fix: windows build error

* fix: resource comiler error

* fix: windows arm64 build

* fix: windows arm64 build with config

* fix: windows arm64 build

* fix: windows arm64 build dynamic

* fix: macos arm64 build

* fix: windows arm64 check

* fix: gradle check

* fix: make error

* fix: make error windows arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: uber jar for release

* chore: add static uber jar build

* chore: update test example for uber jar

* chore: add test scripts

* Fix dynamic uber JAR: bundle Tongsuo libraries and add manifest info

- Add Git commit, branch, build time to MANIFEST.MF
- Copy Tongsuo shared libraries (libssl, libcrypto) into dynamic JARs
- Add rpath fix tasks in Gradle build before copying to JAR
- macOS: Change absolute paths to @rpath and add @loader_path
- Linux: Set rpath to $ORIGIN for relative library loading
- This allows dynamic uber JAR to work without installing Tongsuo

* Fix: detect dynamic build by checking for Tongsuo shared libs

Replace buildType check with hasTongsuoSharedLibs flag that detects
whether Tongsuo shared libraries exist in TONGSUO_HOME. This avoids
the 'No such property: buildType' error.

* Fix: remove duplicate tongsuoHome variable definition

* Fix: use regular tasks instead of Exec for rpath fixing

Changed fixRpath tasks from Exec type to regular tasks with doLast
and project.exec calls to avoid 'execCommand == null' error.

---------

Co-authored-by: hardy <luohf@infinilabs.com>
Both static and dynamic uber JARs now include:
- Implementation-Title, Version, Vendor
- Git-Commit, Git-Branch
- Build-Time, Build-Jdk
- Jar-Type (uber-static or uber-dynamic)
- Platforms list

Use 'jar cfm' with custom MANIFEST.MF to preserve metadata.
…gsuo

Changes:
- Removed logic to bundle Tongsuo shared libraries into dynamic JARs
- Dynamic uber JAR now requires users to install Tongsuo on their system
- Static uber JAR remains self-contained with all dependencies
- Kept rpath fixes so dynamic JARs work with system-installed Tongsuo
- Updated README with clear distinction between static and dynamic JARs
- Added installation instructions for Tongsuo

Reasoning:
- Simpler implementation - no need to extract multiple libraries
- Follows dynamic linking principles
- Users choosing dynamic linking likely already have Tongsuo installed
- Reduces complexity in library loading logic
* chore: update platform lable

* fix: update platform lable

* fix: update platform lable with ubuntu 24.04

* fix: build errror on arm64

* chore: add VC-WIN64-ARM for build

* chore: add check for jar file

* chore: add the info and stack for build

* chore: update the job

* chore: refactor the ci build

* fix: upload 409 error

* chore: add permission for build

* chore: add permission for build

* fix: the ci target

* fix: windows platform build

* fix: gh archive download failture

* chore: update the step name

* fix: windows arm64 build

* chore: use deafult gradle download url

* chore: update the ci actions version

* chore: update check step for cross compile

* chore: use qemu for macos x86_64

* fix: windows arm64 and macos x86_64

* fix: release build for windows dynamic

* fix: use ubuntu for windows arm64 cross build

* fix: ci set up error

* chore: update the ci and release for arm64 build

* chore: typo the darwin

* chore: revert change for darwin

* chore: update the windows arm64 build

* fix: update the windows arm64 build

* fix: windows build error

* fix: resource comiler error

* fix: windows arm64 build

* fix: windows arm64 build with config

* fix: windows arm64 build

* fix: windows arm64 build dynamic

* fix: macos arm64 build

* fix: windows arm64 check

* fix: gradle check

* fix: make error

* fix: make error windows arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows arm64 and macos arm64

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: make error windows gredle check path

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: windows arm64 not support

* fix: uber jar for release

* chore: add static uber jar build

* chore: update test example for uber jar

* chore: add test scripts

* Fix dynamic uber JAR: bundle Tongsuo libraries and add manifest info

- Add Git commit, branch, build time to MANIFEST.MF
- Copy Tongsuo shared libraries (libssl, libcrypto) into dynamic JARs
- Add rpath fix tasks in Gradle build before copying to JAR
- macOS: Change absolute paths to @rpath and add @loader_path
- Linux: Set rpath to $ORIGIN for relative library loading
- This allows dynamic uber JAR to work without installing Tongsuo

* Fix: detect dynamic build by checking for Tongsuo shared libs

Replace buildType check with hasTongsuoSharedLibs flag that detects
whether Tongsuo shared libraries exist in TONGSUO_HOME. This avoids
the 'No such property: buildType' error.

* Fix: remove duplicate tongsuoHome variable definition

* Fix: use regular tasks instead of Exec for rpath fixing

Changed fixRpath tasks from Exec type to regular tasks with doLast
and project.exec calls to avoid 'execCommand == null' error.

* Add Git and version info to uber JAR manifests

Both static and dynamic uber JARs now include:
- Implementation-Title, Version, Vendor
- Git-Commit, Git-Branch
- Build-Time, Build-Jdk
- Jar-Type (uber-static or uber-dynamic)
- Platforms list

Use 'jar cfm' with custom MANIFEST.MF to preserve metadata.

* Revert Tongsuo library bundling - dynamic JARs now require system Tongsuo

Changes:
- Removed logic to bundle Tongsuo shared libraries into dynamic JARs
- Dynamic uber JAR now requires users to install Tongsuo on their system
- Static uber JAR remains self-contained with all dependencies
- Kept rpath fixes so dynamic JARs work with system-installed Tongsuo
- Updated README with clear distinction between static and dynamic JARs
- Added installation instructions for Tongsuo

Reasoning:
- Simpler implementation - no need to extract multiple libraries
- Follows dynamic linking principles
- Users choosing dynamic linking likely already have Tongsuo installed
- Reduces complexity in library loading logic

---------

Co-authored-by: hardy <luohf@infinilabs.com>
- Split heredoc into two parts: static content with single quotes, dynamic with double quotes
- Remove invalid matrix.java-version reference (no matrix in uber JAR jobs)
- Use hardcoded '11.0.30' for Build-Jdk in MANIFEST
- Removed split heredoc approach (caused syntax error)
- Use single 'cat << EOF' (without quotes) to allow both GitHub Actions and shell variable expansion
- ${{ inputs.version }} expands by GitHub Actions
- ${BUILD_TIME} expands by shell
- Use multiple echo statements instead of heredoc
- Avoids YAML parsing issues with ${{ }} inside heredoc
- Simpler and more reliable approach
Static Uber JAR:
- Clear feature highlights and use cases
- Platform support table
- Quick start examples with Maven/Gradle
- Verification commands
- When to use guidelines

Dynamic Uber JAR:
- System requirements and installation steps
- Troubleshooting section
- Clear recommendation to use static JAR for most users
- Library path configuration examples

Both:
- Enhanced MANIFEST info mentioned
- Links to examples documentation
- Professional formatting with emojis and tables
- Update group ID in build.gradle
- Update POM metadata in publishing.gradle
- Change organization to INFINI Labs
- Update repository URLs to infinilabs org

This allows publishing to Maven Central under com.infinilabs namespace.
Changes:
- Make Group ID configurable via mavenGroupId property (default: net.tongsuo)
- Make all POM metadata configurable via properties
- Add PUBLISHING.md with complete guide for custom publishing
- Add gradle.properties.example with all available properties
- Keep original project settings as defaults

This allows forks to publish under their own Maven Group ID without
modifying the original code. Simply copy gradle.properties.example
to gradle.properties and customize.

Usage:
  ./gradlew publish -PmavenGroupId=com.infinilabs

Or via gradle.properties:
  mavenGroupId=com.infinilabs
  mavenOrganization=INFINI Labs
  ...
Reverts:
- Add configurable Maven publishing for forks (4c3f1c2)
- Change Maven Group ID from net.tongsuo to com.infinilabs (2b5701b)

Publishing will be handled by the official Tongsuo repository.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants