Open
Description
PRs to address build and pipeline concerns
The PRs are initial proposals and may not all be integrated as they are.
Best Practices
- Gradle Best Practices build: introduce convention plugins and use Kotlin DSL #21
New build features
- Add signing: part of build: introduce convention plugins and use Kotlin DSL #21
- Add Maven Central publish: build: add Maven Central publishing #23
Add multi-JDK build support: build: support for JDK backport releases jjohannes/sava#1
New build features (optional)
- Add dependency analysis: part of Introduce java-module-dependencies and remove build.gradle files #24
- Get dependencies directly from module-info / use BOM instead of Catalog: Introduce java-module-dependencies and remove build.gradle files #24
- Shared Gradle configuration: publish gradle/plugins and use it in all other repositories (https://.com/sava-software/sava-build)
- Add Gradle convention plugins sava-build#1
- Use Gradle convention plugins from 'sava-build' json-iterator#2
- Use Gradle convention plugins from 'sava-build' #25
- Use Gradle convention plugins from 'sava-build' solana-programs#1
- Use Gradle plugins from 'sava-build' and structure for publishing solana-version-catalog#2
Changes necessary in
Add the following org secrets.
MAVEN_CENTRAL_USERNAME
username you get from generate-portal-tokenMAVEN_CENTRAL_PASSWORD
password you get from generate-portal-tokenSIGNING_KEY
your signing key (ascii-armored)SIGNING_PASSPHRASE
passphrase for the key
Open Points
- Publish a platform (BOM) together or instead of a version catalog --> Publish BOM together with catalog solana-version-catalog#1
- Add Develocity build scans (e.g. https://scans.gradle.com/s/s2hgmksw5dmim)
-
Add style auto-formatting and checking (https://.com/diffplug/spotless)?--> no - How to publish for different JDK versions --> will be done via branches and GH actions
-
Remove Packages publishing altogether? Use Maven Central SNAPSHOTS (configure in CI pipeline)?--> no - Check how/if to improve passing the
javaVersion
into Gradle from GH Actions now that everything in the build relies on the toolchain configuration.