Replace custom json-compat job with standalone JSON 0.20 CI workflow - #119
Merged
Conversation
juliaci.yml goes back to being a pure driver of the testitem-workflow template. Old-JSON testing moves to a standalone workflow that forces JSON 0.20 -- the last JSON version without non-stdlib dependencies, which the VS Code extension uses on every Julia version -- and runs the test items across the full Julia version/platform matrix, down to Julia 1.0. On Julia <= 1.8 the main workflow already covers JSON 0.21 (JSON 1.x needs Julia >= 1.9), and on Julia >= 1.9 it covers JSON 1.x, so the new workflow closes the remaining gap: JSON 0.20 everywhere. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Member
Author
|
This moves the JSON 0.20 tests out of the regular CI workflow. I might later add support for this kind of thing to testitem-workflow, but for now this should do. And this also changes what actually gets tested, namely it runs all tests from Julia 1.0 to the latest with JSON 0.20. While that is a lot of extra tests, I do think it is important to do that as that needs to work for the VS Code extension at the end of the day... |
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
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.
#118 added a hand-rolled
json-compatjob tojuliaci.yml, which is meant to stay a pure driver of the testitem-workflow template. This PR removes that job and replaces it with a standalone workflow that gives strictly broader coverage.What the new
Julia CI (JSON 0.20)workflow doesJSON = "0.20"in[compat]before building (.ci/force_json_020.jl, Julia-1.0-compatible line-based rewrite), then asserts the manifest actually resolved JSON 0.20.x (.ci/verify_json_020.jl) so a silent fallback fails loudly.julia-compute-test-matrixflags as the main workflow, so down to Julia 1.0 on Linux/Windows/macOS).julia-actions/*actions rather than a second template invocation, which would drag along duplicate lint/docs/TagBot jobs. It only triggers on push/PR.Why JSON 0.20
The VS Code extension uses JSON 0.20 on every Julia version because it is the last JSON version without non-stdlib dependencies (Parsers becomes a dependency at 0.21). A plain resolve never picks it — Julia ≤ 1.8 resolves JSON 0.21, Julia ≥ 1.9 resolves JSON 1.x — so 0.20 was previously untested despite being the compat lower bound.
Resulting coverage
The removed job only tested JSON 0.21/1.7 on the latest Julia.
Verified locally: with the compat rewrite applied, the resolver picks JSON 0.20.1 on Julia 1.12 and the full test suite passes (607/607).
🤖 Generated with Claude Code