-
Couldn't load subscription status.
- Fork 148
Raise quality bar, tighten safety, and align docs/CI for Chronicle Compiler #165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
peter-lawrey
wants to merge
18
commits into
develop
Choose a base branch
from
adv/code-review
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
james-mcsherry
approved these changes
Oct 28, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



This PR modernises
compileracross three fronts:Docs & guidance
AGENTS.mdtables and wording; promotes real-time docs and formal Nine-Box tagging.src/main/docs/, addsdecision-log.adoc.README.adoc(adds:sectnums:, renames sections, adds Documentation & Requirements link).LICENSE.adoc.Build & quality profile
1.27ea2-SNAPSHOT.code-reviewMaven profile with Checkstyle, SpotBugs(+FindSecBugs), PMD, and JaCoCo gates (85% line, 85% branch).spotbugs-annotations(provided), rule versions as properties, and suppression files.Runtime compiler hardening & tests
module-info/package-info; blocks invalid segments).System.err.StandardJavaFileManagercreation.fileManagerOverridewhile adding a setter.Motivation
-Pcode-reviewrun.Notable Changes
Documentation and guidance
AGENTS.md: table alignment, clearer Javadoc “Do/Don’t”, line-break hygiene, Nine-Box taxonomy table.Requirements/decisions now under
src/main/docs/; links fixed inAGENTS.mdandREADME.adoc.decision-log.adocadds:project-requirements.adoc: JRC-TEST-014 updated to>= 85%.README.adoc: concise sections,:sectnums:, adds “Documentation & Requirements” section.LICENSE.adoc: compact, single-line paragraphs.Build and quality
New properties: pinned versions for Checkstyle, SpotBugs, FindSecBugs, PMD, JaCoCo, Chronicle quality rules.
-Pcode-reviewprofile:effort=Max,threshold=Low, fail on error; project-local exclude file.Always define JaCoCo version in the
sonarprofile too.Adds
spotbugs-annotations(provided scope).New config files:
src/main/config/spotbugs-exclude.xml(documented suppressions with IDs).src/main/config/pmd-exclude.properties(scaffold with justification comments).Runtime compiler changes
module-info/package-info; per-segment regex prevents invalid characters and trailing hyphens.safeResolve(...)and sanitisation inCompilerUtilsblock traversal and normalise paths.Path/Files; atomic backup/restore; identical content short-circuit; clearer exceptions.System.err.volatileand documented); newsetFileManagerOverride(...)for source-level use.MyJavaFileManager: small refactor; dedicated innerJavaFileObjectclasses; clearer Unsafe initialisation; FB suppressions with justifications.Tests
New and expanded suites covering:
fileManagerOverride.CachedCompilerbytecode map behaviour on success/failure; manager updates; closing behaviour.MyJavaFileManagerbuffering, delegation, modules APIs where present, and invocation edge cases.Backward Compatibility
Binary: preserved. The public
fileManagerOverridefield remains, nowvolatile; callers can also use the new setter.Behavioural:
module-info/package-infoare explicitly allowed.IllegalArgumentException.-Pcode-review(opt-in profile).How to use the quality profile
src/main/config/. Please add targeted entries with justification comments.