8000 Documentation: merge `quarkus/CONTRIBUING.md` into `quarkus/README.md` so that users find all relevant information at one place by michalvavrik · Pull Request #46033 · keycloak/keycloak · GitHub
[go: up one dir, main page]

Skip to content

Documentation: merge quarkus/CONTRIBUING.md into quarkus/README.md so that users find all relevant information at one place - #46033

Merged
vmuzikar merged 1 commit into
keycloak:mainfrom
michalvavrik:docs/merge-quarkus-readme-and-contributing-mds
Feb 9, 2026
Merged

vmuzikar merged 1 commit into
keycloak:mainfrom
michalvavrik:docs/merge-quarkus-readme-and-contributing-mds

Conversation

@michalvavrik
@michalvavrik michalvavrik commented Feb 4, 2026 •
Copy link
Copy Markdown
Member

Merging the two documents (README.md and CONTRIBUTING.md) should provide information like "How to debug Keycloak in Quarkus DEV mode?" or "How to include Keycloak as extension to my existing Quarkus app?" in the one document users read whether they intend to contribute to Keycloak project or not. The new README.md also contain information specific to contributing, which is fine as the document is not part of the official Keycloak documentation. The README.md is intended as a guide for developers.

This change is close to what the issue reporter suggested #45806 (comment), and is how we agreed to solve the issue when discussing this in Keycloak cloud native team.

Changes:

  • Before you start section newly mentions config-api sub-module and Quarkus word is capitalized
  • Activating the Module from the root directory section is dropped as it is not true:
    • Quarkus module is not enabled conditionally
    • Quarkus module compilation with JDK 11 fails as Quarkus baseline is JDK 17 and JDK version is enforced in Keycloak parent by enforce-java-version
  • Building the Keycloak Quarkus distribution section - capitalized Quarkus word
  • Running from the command line section contained link leading to unknown discussion https://github.com/keycloak/keycloak/discussions/categories/keycloak-x-quarkus-distribution, I replaced it with general GH discussion link. I could not verify the reload statement due to the issue described below, but judging by this discussion Quarkus' Dev Services/Live Reload while doing Keycloak extensions development #14351 explanation about reload limitations is still valid. I also dropped note about plans to improving the DEV mode per Vaclav request.
  • Running tests section used Keycloaks which I think was a typo, so I fixed it. And capitalized Quarkus word
  • Running tests from your IDE I changed statement about the @DistributionTest test being a blackbox, I think the build may happen in a JVM if it is container environment, otherwise it is just a different JVM process
  • Running container-based tests capitalized word Docker. I also dropped The container based tests are using Testcontainers to spin up the container image and can be considered tech preview. as 3 years seem long enough for container-based tests to mature
  • Running database tests, fixed few typos
  • Updating Expectations fixed command example and test class rendering
  • CONTRIBUTING.md is merged into README.md in following manner:
    • Keycloak Quarkus Extension section, renamed Resteasy to Quarkus REST and missing recorder method configSessionFactory with configSessionFactory
    • dropped Running the server in development mode section as it was dealing with the same topic as the Running from the command line README.md section. however I migrated few sentences
    • dropped Running tests as it deals with the same topic as Running tests section of the README and it contains everything the dropped section does, just in a different words
    • Before contributing the changes section content replaced the README Contributing section as it provides a better approach
    • Documentation fixed link to the server documentation guides
    • dropped Changing versions of Quarkiverse dependencies per Vaclav request

What is not handled here:

  • Running from the command line section suggests command ../mvnw -f server/pom.xml compile quarkus:dev -Dkc.config.built=true -Dquarkus.args="start-dev", however running this command on my workstation leads to startup failure due to missing class java.lang.ClassNotFoundException: org.osgi.framework.FrameworkUtil (maybe related to [admin-api-v2] Remove GlassFish Expressly dependency for Hibernate Validator #44628 as it happens when some EL factory is created, I did not check)

@michalvavrik
michalvavrik requested review from a team as code owners February 4, 2026 20:17
@michalvavrik
michalvavrik force-pushed the docs/merge-quarkus-readme-and-contributing-mds branch from 3446c29 to 2c87527 Compare February 4, 2026 20:20
shawkins
shawkins previously approved these changes Feb 6, 2026
@shawkins shawkins left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, thanks @michalvavrik

@vmuzikar vmuzikar left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@michalvavrik Thank you. Looks good, added just some minor comments.

Comment thread quarkus/README.md Resolved
Comment thread quarkus/README.md Resolved
Comment thread quarkus/README.md Resolved
Comment thread quarkus/README.md Resolved
Merging the two documents (`README.md` and `CONTRIBUTING.md`) should provide information like "How to debug Keycloak in Quarkus DEV mode?" or "How to include Keycloak as extension to my existing Quarkus app?" in the one document users read whether they intend to contribute to Keycloak project or not. The new `README.md` also contain information specific to contributing, which is fine as the document is not part of the official Keycloak documentation. The `README.md` is intended as a guide for developers.

This change is close to what the issue reporter suggested keycloak#45806 (comment), and is how we agreed to solve the issue when discussing this in Keycloak cloud native team.

Closes: keycloak#45805

Supersedes: keycloak#45806

Changes:

- `Before you start` section newly mentions `config-api` sub-module and Quarkus word is capitalized
- `Activating the Module from the root directory` section is dropped as it is not true:
  - Quarkus module is not enabled conditionally
  - Quarkus module compilation with JDK 11 fails as Quarkus baseline is JDK 17 and JDK version is enforced in Keycloak parent by `enforce-java-version`
- `Building the Keycloak Quarkus distribution` section - capitalized Quarkus word
- `Running from the command line` section contained link leading to unknown discussion https://github.com/keycloak/keycloak/discussions/categories/keycloak-x-quarkus-distribution, I replaced it with general GH discussion link. I could not verify the reload statement due to the issue described below, but judging by this discussion keycloak#14351 explanation about reload limitations is still valid
- `Running tests` section used `Keycloaks` which I think was a typo, so I fixed it. And capitalized Quarkus word
- `Running tests from your IDE` I changed statement about the `@DistributionTest` test being a blackbox, I think the build may happen in a JVM if it is container environment, otherwise it is just a different JVM process
- `Running container-based tests` capitalized word `Docker`. I also dropped `The container based tests are using Testcontainers to spin up the container image and can be considered tech preview.` as 3 years seem long enough for container-based tests to mature
- `Running database tests`, fixed few typos
- `Updating Expectations` fixed command example and test class rendering
- `CONTRIBUTING.md` is merged into `README.md` in following manner:
  - `Keycloak Quarkus Extension` section, renamed `Resteasy` to `Quarkus REST` and missing recorder method `configSessionFactory` with `configSessionFactory`
  - dropped `Running the server in development mode` section as it was dealing with the same topic as the `Running from the command line` `README.md` section. however I migrated few sentences
  - dropped `Running tests` as it deals with the same topic as `Running tests` section of the README and it contains everything the dropped section does, just in a different words
  - `Before contributing the changes` section content replaced the README `Contributing` section as it provides a better approach
  - `Documentation` fixed link to the server documentation guides

What is not handled here:

- `Running from the command line` section suggests command `../mvnw -f server/pom.xml compile quarkus:dev -Dkc.config.built=true -Dquarkus.args="start-dev"`, however running this command on my workstation leads to startup failure due to missing class `java.lang.ClassNotFoundException: org.osgi.framework.FrameworkUtil`
- former `CONTRIBUTING.md` keeps stating that the bytecode is recorder during the runtime

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>
@michalvavrik
michalvavrik force-pushed the docs/merge-quarkus-readme-and-contributing-mds branch from 2c87527 to 1f89d35 Compare February 7, 2026 19:38
@vmuzikar vmuzikar left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, thank you.

@vmuzikar
vmuzikar merged commit 0d28b66 into keycloak:main Feb 9, 2026
60 checks passed
@michalvavrik
michalvavrik deleted the docs/merge-quarkus-readme-and-contributing-mds branch February 9, 2026 09:56
sashyo pushed a commit to tide-foundation/keycloak-IGA that referenced this pull request Jul 20, 2026
keycloak#46033)

Closes keycloak#45805

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update getting started documentation.

3 participants

0