Skip to content

chore: update javadoc internal API tags#6391

Merged
adangel merged 4 commits into
pmd:mainfrom
adangel:chore/javadoc-internal-api
Jan 29, 2026
Merged

chore: update javadoc internal API tags#6391
adangel merged 4 commits into
pmd:mainfrom
adangel:chore/javadoc-internal-api

Conversation

@adangel

@adangel adangel commented Jan 8, 2026

Copy link
Copy Markdown
Member

Describe the PR

This PR consistently adds the new custom javadoc tag "internalApi", where it is missing.
Essentially, it proposes the following template:

/**
 * @internalApi None of this is published API, and compatibility can be broken anytime! Use this only at your own risk.
 */
@InternalApi
public ...

The InternalApi annotation is only needed for public/protected members. For package-private members or types in "internal" packages, it's not needed (and we don't generally use it there).

Note, we could extend the template to contain a warning, like we do for the InternalApiBridge classes:

/**
 * Internal API.
 *
 * <p>Acts as a bridge between outer parts of PMD and the restricted access
 * internal API of this package.
 *
 * <p><b>None of this is published API, and compatibility can be broken anytime!</b>
 * Use this only at your own risk.
 *
 * @internalApi None of this is published API, and compatibility can be broken anytime! Use this only at your own risk.
 */

Related issues

  • Fix #

Ready?

  • Added unit tests for fixed bug/feature
  • Passing all unit tests
  • Complete build ./mvnw clean verify passes (checked automatically by github actions)
  • Added (in-code) documentation (if needed)

@adangel adangel added this to the 7.21.0 milestone Jan 8, 2026
@adangel adangel added the in:documentation Affects the documentation [doc] label Jan 8, 2026
@pmd-actions-helper

pmd-actions-helper Bot commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Documentation Preview

Compared to main:
This changeset changes 0 violations,
introduces 0 new violations, 0 new errors and 0 new configuration errors,
removes 0 violations, 0 errors and 0 configuration errors.

Regression Tester Report

(comment created at 2026-01-29 16:40:57+00:00 for 7dcfeea)

@adangel adangel mentioned this pull request Jan 8, 2026
4 tasks
@oowekyala

Copy link
Copy Markdown
Member

Could we have a custom javadoc tag @internalApi instead of using the more generic @apiNote?
We could add it here

pmd/pom.xml

Lines 438 to 442 in 3b995c3

<tag>
<name>experimental</name>
<placement>a</placement>
<head>Experimental Status:</head>
</tag>
and have consistent rendering with less effort when adding this annotation. This would also be more consistent with @experimental I think.

@adangel

adangel commented Jan 29, 2026

Copy link
Copy Markdown
Member Author

Could we have a custom javadoc tag @internalApi instead of using the more generic @apiNote?

Yes, that makes sense. Thanks for the suggestion.

@adangel adangel force-pushed the chore/javadoc-internal-api branch from 27ff3b5 to 6751d43 Compare January 29, 2026 15:32
@adangel adangel merged commit 840a29f into pmd:main Jan 29, 2026
19 of 20 checks passed
@adangel adangel deleted the chore/javadoc-internal-api branch January 29, 2026 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in:documentation Affects the documentation [doc]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants