Skip to content

Link from the developer manual to "building from source" in the manual#7385

Merged
smillst merged 3 commits intotypetools:masterfrom
mernst:building
Dec 1, 2025
Merged

Link from the developer manual to "building from source" in the manual#7385
smillst merged 3 commits intotypetools:masterfrom
mernst:building

Conversation

@mernst
Copy link
Member

@mernst mernst commented Nov 19, 2025

No description provided.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 19, 2025

📝 Walkthrough

Walkthrough

This pull request modifies Docker container build files and documentation. Across 24 Dockerfile variants spanning multiple JDK versions and configurations, apt package installation commands are updated to use the -qqy flag instead of -y, suppressing progress output during builds. Additionally, the Dockerfile-ubuntu-jdk21 file adds new packages to its installation list. Documentation updates include a new cross-reference in the developer manual for building from source, and an expansion of the troubleshooting prerequisites section to reference newer JDK versions (Java 25), add supplementary build tools and utilities, and update associated environment variable configurations.

Pre-merge checks and finishing touches

✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 81360e1 and db04566.

📒 Files selected for processing (24)
  • checker/bin-devel/Dockerfile-contents-ubuntu-base.m4 (2 hunks)
  • checker/bin-devel/Dockerfile-contents-ubuntu-plus.m4 (3 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk11 (3 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk11-plus (6 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk11-plus.m4 (1 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk11.m4 (1 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk17 (3 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk17-plus (6 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk17-plus.m4 (1 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk17.m4 (1 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk21 (3 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk21-plus (6 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk21-plus.m4 (1 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk21.m4 (1 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk25 (3 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk25-plus (1 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk25-plus.m4 (1 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdk25.m4 (1 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdkbase (2 hunks)
  • checker/bin-devel/Dockerfile-ubuntu-jdkplus (5 hunks)
  • checker/bin-devel/Dockerfile-ubunturolling-jdkbase (2 hunks)
  • checker/bin-devel/Dockerfile-ubunturolling-jdkplus (5 hunks)
  • docs/developer/developer-manual.html (2 hunks)
  • docs/manual/troubleshooting.tex (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: typetools.checker-framework (typecheck_part2_jdk25)
  • GitHub Check: typetools.checker-framework (misc_jdk25)
  • GitHub Check: typetools.checker-framework (nonjunit_jdk25)
  • GitHub Check: typetools.checker-framework (inference_part2_jdk25)
  • GitHub Check: typetools.checker-framework (inference_part1_jdk25)
  • GitHub Check: typetools.checker-framework (junit_jdk25)
  • GitHub Check: typetools.checker-framework (typecheck_part1_jdk25)
🔇 Additional comments (23)
checker/bin-devel/Dockerfile-contents-ubuntu-plus.m4 (1)

3-3: LGTM: Quieter apt installations.

The change from -y to -qqy correctly reduces Docker build output verbosity while maintaining non-interactive behavior. This is applied consistently across all three RUN blocks.

Also applies to: 31-31, 41-41

checker/bin-devel/Dockerfile-ubunturolling-jdkbase (1)

15-15: LGTM: Consistent quiet installation pattern.

The -qqy flag changes are applied correctly across all three package installation blocks, matching the pattern used in related Dockerfiles.

Also applies to: 25-25, 33-33

checker/bin-devel/Dockerfile-ubuntu-jdk11-plus.m4 (1)

13-13: LGTM: Quieter apt installation.

Correctly applies the -qqy flag pattern for JDK 11 installation.

checker/bin-devel/Dockerfile-ubuntu-jdk25.m4 (1)

11-11: LGTM: Quieter apt installation.

Correctly applies the -qqy flag pattern for JDK 25 installation.

checker/bin-devel/Dockerfile-ubuntu-jdk21-plus (1)

16-16: LGTM: Comprehensive quiet installation updates.

All seven apt installation invocations are consistently updated to use -qqy, reducing build output noise across all RUN blocks in this comprehensive JDK 21 image.

Also applies to: 26-26, 34-34, 51-51, 79-79, 89-89, 98-98

checker/bin-devel/Dockerfile-ubuntu-jdk17-plus.m4 (1)

13-13: LGTM: Quieter apt installation.

Correctly applies the -qqy flag pattern for JDK 17 installation.

checker/bin-devel/Dockerfile-ubuntu-jdkbase (1)

15-15: LGTM: Consistent quiet installation pattern.

The -qqy flag changes are correctly applied across all three package installation blocks in the base Ubuntu image.

Also applies to: 25-25, 33-33

checker/bin-devel/Dockerfile-ubuntu-jdk11.m4 (1)

11-11: LGTM: Quieter apt installation.

Correctly applies the -qqy flag pattern for JDK 11 installation.

checker/bin-devel/Dockerfile-ubuntu-jdk21.m4 (1)

9-13: Quieter apt install while preserving non-interactive behavior looks correct

Using apt -qqy install aligns with the existing apt -qqy update and keeps the build non-interactive; only verbosity changes, not behavior.

You can rely on CI/docker builds of this image to verify that apt -qqy install openjdk-21-jdk still succeeds as expected.

checker/bin-devel/Dockerfile-ubuntu-jdk17-plus (1)

16-16: Consistent use of apt -qqy install across all RUN blocks

All install steps now use apt -qqy install, matching apt -qqy update and keeping builds non-interactive while reducing log noise; package sets and control flow remain the same.

If desired, run a local docker build -f checker/bin-devel/Dockerfile-ubuntu-jdk17-plus . to confirm all apt invocations still succeed with the quieter flags.

Also applies to: 26-26, 34-34, 51-51, 79-79, 89-89, 98-98

checker/bin-devel/Dockerfile-ubuntu-jdk21-plus.m4 (1)

11-15: JDK 21 install uses the new quiet apt pattern consistently

Switching the JDK 21 installation to apt -qqy install is consistent with the included ubuntu base contents and keeps semantics identical aside from reduced verbosity.

A quick docker build using this m4-expanded Dockerfile will validate that the quieter install still resolves openjdk-21-jdk correctly.

checker/bin-devel/Dockerfile-ubuntu-jdkplus (1)

15-15: Foundation image now uses quiet installs for all apt install steps

Updating each apt install to apt -qqy install across locales, JDK, tools, and pipx/npm keeps the layer behavior the same while cutting log noise for downstream images.

It may be worth running at least one downstream Dockerfile that FROM this image to confirm no regressions in tool availability after the flag change.

Also applies to: 25-25, 33-33, 50-50, 78-78, 88-88

checker/bin-devel/Dockerfile-ubuntu-jdk17.m4 (1)

9-13: Quiet JDK 17 install matches other JDK-specific m4 snippets

Using apt -qqy install for openjdk-17-jdk keeps this m4 fragment consistent with the base and other JDK Dockerfiles, with no functional change.

Confirm via the generated Dockerfile that update-java-alternatives still finds java-1.17.0-openjdk-amd64 after the quiet install.

checker/bin-devel/Dockerfile-ubuntu-jdk11-plus (1)

16-16: JDK 11 “plus” image adopts the same quiet install pattern

All apt installations (locales, JDK 21, build tools, pipx, npm, and JDK 11) now use apt -qqy install, aligning this Dockerfile with the 17/21 variants while preserving non-interactive semantics.

Building this Dockerfile alongside the JDK 17/21 variants is a good smoke test that the shared quiet-install pattern works uniformly.

Also applies to: 26-26, 34-34, 51-51, 79-79, 89-89, 98-98

checker/bin-devel/Dockerfile-ubuntu-jdk17 (1)

16-16: Main JDK 17 image now fully aligned with quiet install convention

All apt install sites in this Dockerfile use apt -qqy install, consistent with the shared base and “plus” images; behavior is preserved while logs get quieter.

A full docker build of this Dockerfile will confirm JTReg, JDK 21, and JDK 17 tooling still install correctly under the quieter apt mode.

Also applies to: 26-26, 34-34, 51-51

checker/bin-devel/Dockerfile-contents-ubuntu-base.m4 (1)

8-12: Base ubuntu template consistently uses apt -qqy install

Quieting the three core apt install calls in this shared template ensures that all images including it inherit the same non-interactive and low-verbosity behavior without changing installed packages.

Because this file is included by multiple Dockerfiles, running a representative subset of those builds is a good sanity check for the updated apt options.

Also applies to: 18-22, 26-40

docs/developer/developer-manual.html (1)

26-26: LGTM! Helpful cross-reference added.

The new table of contents entry and section appropriately direct developers to the detailed building instructions in the Checker Framework manual. The anchor ID building-from-source is correctly referenced in both the TOC link and the section heading.

Also applies to: 65-70

checker/bin-devel/Dockerfile-ubunturolling-jdkplus (1)

15-15: LGTM! Consistent quieter apt installations.

All apt install commands have been consistently updated to use -qqy instead of -y, which reduces build output verbosity without changing functionality. This aligns with the PR's goal of suppressing progress output during Docker builds.

Also applies to: 25-25, 33-33, 50-50, 78-78, 88-88

checker/bin-devel/Dockerfile-ubuntu-jdk21 (1)

16-16: LGTM! Consistent quieter apt installations.

All apt install commands have been consistently updated to use -qqy instead of -y, reducing build output verbosity. The package list includes necessary build tools for the JDK 21 environment.

Also applies to: 26-26, 34-34, 51-51

checker/bin-devel/Dockerfile-ubuntu-jdk11 (1)

16-16: LGTM! Consistent quieter apt installations.

All apt install commands have been consistently updated to use -qqy instead of -y. This matches the pattern applied across other Dockerfile variants in this PR.

Also applies to: 26-26, 34-34, 51-51

checker/bin-devel/Dockerfile-ubuntu-jdk25-plus.m4 (1)

13-13: LGTM! Quieter apt installation for JDK 25.

The apt install command for openjdk-25-jdk has been updated to use -qqy instead of -y, consistent with the PR's objective. Since this is an m4 template file that includes other content via include() directives, ensure that the included files (Dockerfile-contents-ubuntu-base.m4 and Dockerfile-contents-ubuntu-plus.m4) also apply the -qqy flag consistently.

checker/bin-devel/Dockerfile-ubuntu-jdk25 (1)

16-16: LGTM! Consistent quieter apt installations.

All apt install commands have been consistently updated to use -qqy instead of -y, matching the pattern applied across other Dockerfile variants in this PR.

Also applies to: 26-26, 34-34, 51-51

docs/manual/troubleshooting.tex (1)

720-759: Documentation updated for newer JDK versions and expanded tooling.

The Ubuntu/Linux build prerequisites have been updated to reference Dockerfile-ubuntu-jdk25-plus (instead of jdk17-plus) and include comprehensive package installation commands covering Java 21, Java 25, and additional build tools. The instructions align with the broader PR changes to Docker container configurations.

Note: The documented commands use -qqy for apt operations, which matches most Dockerfiles in this PR. However, be aware that Dockerfile-ubuntu-jdk25-plus itself has inconsistent usage of -y vs -qqy (see related comment on that file), so users following these instructions may get slightly different output than what that specific Dockerfile currently produces.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mernst
Copy link
Member Author

mernst commented Nov 19, 2025

@claude help

@claude
Copy link

claude bot commented Nov 19, 2025

Claude encountered an error —— View job

Failed with exit code 128

I'll analyze this and get back to you.

@smillst smillst merged commit 026bd52 into typetools:master Dec 1, 2025
21 checks passed
@smillst smillst deleted the building branch December 1, 2025 20:35
This was referenced Dec 9, 2025
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.

2 participants