typetools / typetools/checker-framework
Make JavaDoc respect JPMS module definitions
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.1k
- Forks
- 440
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 134
Description
With #4559, the checker-qual JAR provides a module-info.java description to be used by the Java platform module system (JPMS). However, its use is currently limited to the compiled .jar artifact. When generating JavaDoc for a module-aware, third-party project that uses checkerframework's annotations, the javadoc tool issues the following warning:
javadoc: warning - The code being documented uses modules but the packages defined in https://checkerframework.org/releases/3.48.3/api/ are in the unnamed module.
The problem is that the documentation is generated in a non-modular context ("java 8 mode") because the build process depends on some gradle-magic to resolve cyclic dependencies between checker-qual (at least in its documentation) and the checker implementation.
To resolve this issue, it should suffice to build the JavaDoc with a module-aware language level as well. However, this would require refactoring the documentation (and maybe more?) to resolve the cyclic dependencies which cannot exist between modules.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by examining the JavaDoc build process and the Gradle configuration that resolves the checker-qual and checker implementation dependency cycle. Compare the current Java 8-mode documentation setup with the module-aware JPMS requirements described in the issue. Done means JavaDoc generation uses module-aware settings without cyclic dependency failures and no longer emits the unnamed-module warning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, documentation
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100