diff --git a/README b/README index 176303870..e2c0ff4c9 100644 --- a/README +++ b/README @@ -849,3 +849,9 @@ built artifacts. Official Yubico software signing keys are listed on the https://developers.yubico.com/Software_Projects/Software_Signing.html[Yubico Developers site]. + + +[#development] +=== Development + +See the link:https://github.com/Yubico/java-webauthn-server/blob/main/doc/development.md[developer docs]. diff --git a/doc/development.md b/doc/development.md index 0acb00b5d..04d2de910 100644 --- a/doc/development.md +++ b/doc/development.md @@ -2,6 +2,35 @@ Developer docs === +JDK versions +--- + +The project's official build JDK version is the latest LTS JDK version, +although the project may lag behind the true latest release for a while +until we can upgrade the build definition to match this target. + +The official build JDK version currently in effect is encoded in the +["Reproducible binary"](https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml) +workflow, +as the JDK version is crucial for successfully reproducing released binaries. +This version is also enforced in the release process in +[`build.gradle`](https://github.com/Yubico/java-webauthn-server/blob/main/build.gradle). + +The [primary build workflow](https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/build.yml) +should run on all currently maintaned LTS JDK versions, +and ideally also the latest non-LTS JDK version if Gradle and other build dependencies are compatible. + +A list of JDK versions and maintenance status can be found [here](https://en.wikipedia.org/wiki/Java_version_history). + + +Code formatting +--- + +Use `./gradlew spotlessApply` to run the automatic code formatter. +You can also run it in continuous mode as `./gradlew --continuous spotlessApply` +to reformat whenever a file changes. + + Setup for publishing --- @@ -16,9 +45,7 @@ ossrhPassword=bmjuyWSIik8P3Nq/ZM2G0Xs0sHEKBg+4q4zTZ8JDDRCr ``` -Code formatting +Publishing a release --- -Use `./gradlew spotlessApply` to run the automatic code formatter. -You can also run it in continuous mode as `./gradlew --continuous spotlessApply` -to reformat whenever a file changes. +See the [release checklist](./releasing.md).