Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve developer docs #361

Merged
merged 4 commits into from
Jun 4, 2024
Merged
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
6 changes: 6 additions & 0 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -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].
35 changes: 31 additions & 4 deletions doc/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
---

Expand All @@ -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).