GeezerVison is showing github.com — Fix Windows compatibility: rename files with reserved chars, split large files, add pre-commit hook and CI validation by Copilot · Pull Request #4239 · graphql-java/graphql-java
Conversation
Copilot
AI
commented
Feb 3, 2026
•
edited by andimarek
Loading
Uh oh!
There was an error while loading. Please reload this page.
Summary
The repo can't be cloned on Windows due to colons (:) in filenames under performance-results/, and large-schema-5.graphqls exceeds 10 MB.
Changes
- Rename 242 files in
performance-results/ — replace colons in ISO timestamps with hyphens (e.g. T08:40:24Z → T08-40-24Z)
- Split
large-schema-5.graphqls (11.3 MB) into .part1 (7.1 MB) and .part2 (5.1 MB) at a type boundary so each part contains only complete GraphQL type definitions
- Add pre-commit hook (
.githooks/pre-commit) that rejects Windows-incompatible characters and files > 10 MB
- Add CI workflow (
.github/workflows/validate-files.yml) enforcing the same checks on PRs
- Add
scripts/setup-hooks.sh for one-command hook installation
- Update
CONTRIBUTING.md with file validation section
Setup
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Copilot
AI
changed the title
[WIP] Rename Windows-incompatible filenames for compatibility
Fix Windows compatibility: rename files with reserved chars, split large files, add pre-commit hook
Feb 3, 2026
|
@copilot also add a github action that checks for the same both conditions, in case something was committed that violates both rules. Can you reuse the commit hook? Is that a good idea?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
@copilot also add a github action that checks for the same both conditions, in case something was committed that violates both rules. Can you reuse the commit hook? Is that a good idea?
Added GitHub Action in commit 10098c1. The workflow reuses the same validation logic as the pre-commit hook:
- Validates Windows-incompatible filenames: Checks all tracked files for reserved characters (< > : " | ? * )
- Validates file sizes: Ensures no files exceed 10MB
- Runs on all PRs and pushes: Provides a safety net if local hooks are bypassed
- Uses GitHub annotations: Highlights specific problematic files in the workflow output
The logic is intentionally similar to the pre-commit hook to ensure consistency, though implemented directly in the workflow YAML rather than calling the hook script. This approach keeps the CI check independent and allows for GitHub-specific features like annotations.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Copilot
AI
changed the title
Fix Windows compatibility: rename files with reserved chars, split large files, add pre-commit hook
Fix Windows compatibility: rename files with reserved chars, split large files, add pre-commit hook and CI validation
Feb 3, 2026
Test Results
335 files ±0 335 suites ±0 5m 5s ⏱️ +2s
5 371 tests ±0 5 363 ✅ +1 8 💤 - 1 0 ❌ ±0
5 460 runs ±0 5 452 ✅ +1 8 💤 - 1 0 ❌ ±0
Results for commit 12cc43a. ± Comparison against base commit 8e1c98a.
This pull request removes 196 and adds 172 tests. Note that renamed tests count towards both.
?
, expected: combo-\"\\\b\f\n\r\t, #4]
__schema { types { fields { args { type { name fields { name }}}}}}
__schema { types { fields { type { name fields { name }}}}}
__schema { types { inputFields { type { inputFields { name }}}}}
__schema { types { interfaces { fields { type { interfaces { name } } } } } }
__schema { types { name} }
__type(name : "t") { name }
a1: __schema { types { name} }
a1: __type(name : "t") { name }
…
graphql.AssertTest ‑ assertFalse with different number of error args but false does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_21prov0_closure23@5f631ca0 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1, #0]
graphql.AssertTest ‑ assertFalse with different number of error args but false does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_21prov0_closure24@25d0cb3a delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2, #1]
graphql.AssertTest ‑ assertFalse with different number of error args but false does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_21prov0_closure25@2f4b98f6 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2 arg3, #2]
graphql.AssertTest ‑ assertFalse with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_20prov0_closure20@19e0dffe delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1, #0]
graphql.AssertTest ‑ assertFalse with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_20prov0_closure21@4833eff3 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2, #1]
graphql.AssertTest ‑ assertFalse with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_20prov0_closure22@793d163b delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2 arg3, #2]
graphql.AssertTest ‑ assertNotNull with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_5prov0_closure3@4832f03b delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1, #0]
graphql.AssertTest ‑ assertNotNull with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_5prov0_closure4@60c73e58 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2, #1]
graphql.AssertTest ‑ assertNotNull with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_5prov0_closure5@1391af3b delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2 arg3, #2]
graphql.AssertTest ‑ assertNotNull with different number of error args with non null does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_6prov0_closure6@36aa52d2 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1, #0]
…
♻️ This comment has been updated with latest results.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
- Re-split large-schema-5 at a type boundary so each part contains
only complete GraphQL type definitions
- Remove Git LFS suggestions from pre-commit hook, CI workflow,
CONTRIBUTING.md, and README
- Simplify large-schema-5-README.md
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Enterprise users often mirror graphql-java into internal repos
that enforce file size restrictions.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Uh oh!
There was an error while loading. Please reload this page.
Reviewers
dondonz
dondonz approved these changes
andimarek
Awaiting requested review from andimarek
Uh oh!
There was an error while loading. Please reload this page.
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
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.
|