Skip to content

Generate full Polaris configuration reference docs#3838

Merged
adutra merged 7 commits intoapache:mainfrom
adutra:configuration-page-generation
Feb 24, 2026
Merged

Generate full Polaris configuration reference docs#3838
adutra merged 7 commits intoapache:mainfrom
adutra:configuration-page-generation

Conversation

@adutra
Copy link
Contributor

@adutra adutra commented Feb 19, 2026

This PR leverages the existing docs generator tool to expose a comprehensive configuration reference documentation for the Polaris site including feature flags.

This extends the existing config-docs generator to support two types of configuration sources:

  1. SmallRye Config properties (from @ConfigMapping annotated interfaces)
  2. PolarisConfiguration static fields (both FeatureConfiguration and BehaviorChangeConfiguration)

Key changes:

  • Modified DocGenDoclet to extract configuration metadata from FeatureConfiguration and BehaviorChangeConfiguration static fields using reflection and javadoc processing.
  • Add new Gradle task to copy generated docs to the site content directory with proper Hugo front matter
  • Reorganize site configuration documentation into a dedicated section with separate pages for configuration overview and reference
  • Add CI workflow step to verify generated configuration docs are up-to-date

The generated documentation includes property names, descriptions, default values, types, and catalog config mappings where applicable.

Checklist

  • 🛡️ Don't disclose security issues! (contact [email protected])
  • 🔗 Clearly explained why the changes are needed, or linked related issues: Fixes #
  • 🧪 Added/updated tests with good coverage, or manually tested (and explained how)
  • 💡 Added comments for complex logic
  • 🧾 Updated CHANGELOG.md (if needed)
  • 📚 Updated documentation in site/content/in-dev/unreleased (if needed)

@adutra
Copy link
Contributor Author

adutra commented Feb 19, 2026

Note to reviewers: all files in the site/content/in-dev/unreleased/configuration/config-sections are automatically generated with ./gradlew :polaris-config-docs-site:copyConfigSectionsToSite.

@adutra
Copy link
Contributor Author

adutra commented Feb 19, 2026

Screenshot of the new configuration reference page:

image

The tables are sometimes too wide, I'm thinking about how to improve this.

@adutra adutra force-pushed the configuration-page-generation branch from 8d2b927 to 48b4553 Compare February 19, 2026 16:36
@adutra
Copy link
Contributor Author

adutra commented Feb 19, 2026

Updated layout for feature flags:

image

@adutra
Copy link
Contributor Author

adutra commented Feb 19, 2026

Screenshot of the table layout for "regular" (Smallrye) config properties:

image


{{% include-config-section "flags-polaris_features" %}}

### ``polaris.behavior-changes``
Copy link
Contributor Author

Choose a reason for hiding this comment

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

FYI there is debate about whether or not this section should be exposed to users:

https://lists.apache.org/thread/8fgszl9jw9718dstlh3dxn0o1g8wkrh4

But for now, I'm including everything.

@adutra adutra force-pushed the configuration-page-generation branch 3 times, most recently from 4e61c72 to 8f0ed02 Compare February 19, 2026 17:01
* polaris.service-identity.aws-iam.access-key-id=<access-key-id>
* polaris.service-identity.aws-iam.secret-access-key=<secret-access-key>
* polaris.service-identity.aws-iam.session-token=<optional-session-token>
*
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This extra line messes up the rendered content – I gave up on investigating why 😅

@adutra adutra force-pushed the configuration-page-generation branch 2 times, most recently from d1dd7ba to b79acf7 Compare February 19, 2026 17:30
Copy link
Member

@snazy snazy left a comment

Choose a reason for hiding this comment

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

This is great!

Just a few comments, the code changes and site changes LGTM!


## Quarkus Configuration Options

There are many Quarkus configuration properties that can be useful, for example:
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
There are many Quarkus configuration properties that can be useful, for example:
Some often useful Quarkus configuration properties are listed below.
Please refer to the [Quarkus documentation](https://quarkus.io/guides/) for more details.

| `GC_METASPACE_SIZE` | The initial metaspace size. There is no default (example: "20"). |
| `GC_MAX_METASPACE_SIZE` | The maximum metaspace size. There is no default (example: "100"). |
| `GC_CONTAINER_OPTIONS` | Specify Java GC to use. The value of this variable should contain the necessary JRE command-line options to specify the required GC, which will override the default of `-XX:+UseParallelGC` (example: `-XX:+UseG1GC`). |
Here are some examples:
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Here are some examples:
Here are some examples:

(newline to separate the paragraph from the table above)


dependencies {
implementation(project(":polaris-config-docs-annotations"))
implementation(project(":polaris-core"))
Copy link
Member

Choose a reason for hiding this comment

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

A bit sad that this is needed as an implementation dependency.

Suggested change
implementation(project(":polaris-core"))
implementation(project(":polaris-core")) {
isTransitive = false
}

snazy
snazy previously approved these changes Feb 20, 2026
Copy link

@flyingImer flyingImer left a comment

Choose a reason for hiding this comment

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

this is cool! I wonder if we can have folders for auto gen docs and manually curated docs by straightforward names? This can help avoid accidentally changing doc files supposed to be auto generated, also making it obvious for new comers rather than an untold knowledge by the community

Choose a reason for hiding this comment

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

[main Helm chart documentation](../../helm/) needs to be updated to [main Helm chart documentation](../configuration/helm/)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You were right that the link is broken, but it seems the right link is [main Helm chart documentation](../../../helm).

FYI this page will go away with #3812.

Choose a reason for hiding this comment

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

Suggested change
The [Polaris Evolution](../configuration/evolution) page discusses backward compatibility and

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't agree with your suggestion: this link is correct.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh sorry, you were right, I was looking at my other PR #3812

@adutra
Copy link
Contributor Author

adutra commented Feb 24, 2026

I wonder if we can have folders for auto gen docs and manually curated docs by straightforward names?

Thanks for the suggestion! Do you have an example of the layout you have in mind?

@adutra adutra force-pushed the configuration-page-generation branch from 11d4c11 to 12f631c Compare February 24, 2026 10:16
snazy
snazy previously approved these changes Feb 24, 2026
…hensive configuration reference documentation for the Polaris site.

This extends the existing `config-docs` generator to support two types of configuration sources:

1. SmallRye Config properties (from `@ConfigMapping` annotated interfaces)
2. `PolarisConfiguration` static fields (both `FeatureConfiguration` and `BehaviorChangeConfiguration`)

Key changes:

- Modified `DocGenDoclet` to extract configuration metadata from `FeatureConfiguration` and `BehaviorChangeConfiguration` static fields using reflection and javadoc processing.
- Add new Gradle task to copy generated docs to the site content directory with proper Hugo front matter
- Reorganize site configuration documentation into a dedicated section with separate pages for configuration overview and reference
- Add CI workflow step to verify generated configuration docs are up-to-date

The generated documentation includes property names, descriptions, default values, types, and catalog config mappings where applicable.
@adutra
Copy link
Contributor Author

adutra commented Feb 24, 2026

FYI: rebased on top of #3812

@adutra adutra merged commit a6ca7cb into apache:main Feb 24, 2026
17 checks passed
@adutra adutra deleted the configuration-page-generation branch February 24, 2026 11:21
@github-project-automation github-project-automation bot moved this from Ready to merge to Done in Basic Kanban Board Feb 24, 2026
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.

3 participants