Repository navigation
Support Julia 1.13: compat bounds, Manifest-v1.13.toml.default and a 1.13 CI job - #75
Draft
1-Bort-1 wants to merge 6 commits into
Conversation
Seeded from Manifest-v1.12.toml.default and resolved under Julia 1.13; only standard libraries and their JLLs moved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bin/update_default_manifest takes the versions as arguments and defaults to every tracked .default; it wrote Manifest-v1.12.toml.default under any Julia newer than 1.11. Live manifests and install stamps are ignored for every version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
Local full suite: PASS (1 min, Julia 1.13.0, one cell of the matrix) |
1-Bort-1
commented
Oct 6, 2026
1-Bort-1
left a comment
Member
Author
There was a problem hiding this comment.
Independent review (advisory)
Verdict: APPROVE WITH COMMENTS · 0 inline, 0 off the diff
Good
- Matches the card:
git diff --stat 347c87d HEADshows exactly the 8 files and +3748/−76 the card lists, and nothing outside the plan. - Compat is consistent:
juliais "1.11, 1.12, 1.13" in the root and indocs/Project.toml; Pkg and Printf (root) and Test (test/) all allow 1.13. - The manifest is a minimal resolve:
project_hashd9c712a6… matches the card's 1.11/1.12 claim, and the registered packages checked (KiteUtils 0.11.13, KiteModels 0.11.16, Makie 0.24.13) are pinned, not bumped. .gitignoreglobs are correct: unanchoredManifest-v*.tomlalso coversexamples/Manifest-v1.1x.toml, and.bak/.defaultfiles stay tracked or are handled by their own lines.bin/update_default_manifestfix holds up: on the 1.12 path the old script copied toManifest-v1.12.toml.defaultwhatever Julia ran. The new loop usesJULIAUP_CHANNELper version, andselect_julia_channelinsetup_envkeeps that channel as the active one.- Rewriting the script is in scope by §1 (it's the tool that makes these manifests). The card names it, and the changelog entry is short and describes behaviour.
Not good
bin/update_default_manifestwas only checked withbash -n, yet it overwrites every tracked.default. At least./bin/update_default_manifest 1.13on a throwaway branch should run before this merges.for version in ${@:-$SUPPORTED_JULIA}is unquoted on purpose so it word-splits. If a channel juliaup lacks is passed,active_juliafails partway through the loop and leaves earlier versions already updated, with no up-front check.- The comment
# Julia 1.11 has no workspaces, so only the examples manifest holds every package.explains why, which §3 says goes in the PR card. The 1.11 special case would be clearer named as a variable or helper. - The card says Pkg/Printf/Test changed "in
test/", but onlyTestchanged there; Pkg and Printf are in the rootProject.toml. - Verification is incomplete:
agent ci-localdidn't finish, GitHub CI is pending, and Windows on 1.13 has never run. The new matrix line is what will exercise Windows, so wait for green before merging. .gitignorestill listsexamples_3d/Manifest.tomltwice and.gitignoreignores itself. This predates the PR but the file is open here, so §1/§7 compaction would fold it in.
claude, rubric CLEAN_CODE.md. A different lab from the implementer
on purpose: a reviewer sharing its blind spots would not flag its mistakes.
…e the 1.11 case Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
….gitignore Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
This branch has not been deployed
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.
TL;DR
KiteControllers now accepts Julia 1.13. The compat bounds include it, it has a tracked
Manifest-v1.13.toml.default, and CI tests it. Without a 1.13.default, #74'sbin/installcould never pick 1.13, and withjulia = "1.11, 1.12"nothing loaded in the box's 1.13 session.What changed
julia(root anddocs/),PkgandPrintf(root) andTest(test/) now also allow 1.13.Manifest-v1.13.toml.defaultcomes from the minimal resolve (AGENTS.md §2) rather than a full update. I copiedManifest-v1.12.toml.defaultover the live 1.13 manifest and ranPkg.resolve()in the 1.13 session. Only standard libraries and the JLLs Julia ships moved: Pkg, LinearAlgebra and SparseArrays went to 1.13.0, LibCURL to 1.0.0, SHA to 1.0.0, CompilerSupportLibraries_jll to 1.5.5, OpenBLAS_jll to 0.3.30, and PCRE2_jll was added. No registered package moved. The 1.13 pins match the 1.12 ones.Project.toml. After the compat edit,project_hashis unchanged (d9c712a6…) andPkg.Operations.is_manifest_currentreturnstrue, so they did not need resolving again.'1.13'added to the matrix.bin/update_default_manifest: fixed along the way. It asked for 1.11 or 1.12, ranjuliaup default, and deleted~/.julia/compiled/.... On any Julia newer than 1.11 it wroteManifest-v1.12.toml.default, so running it under 1.13, as the issue suggests, would have overwritten the 1.12 pins with a 1.13 resolve. It now takes the versions as arguments, defaulting to every tracked.default(SUPPORTED_JULIAfrom bin/install picks a supported Julia by itself and changes nothing outside the repo #74'ssetup_env). It selects each one throughJULIAUP_CHANNEL, so nothing outside the repo changes. Before updating anything it checks that every version asked for has a.defaultand an installed Julia, so a bad argument cannot leave the earlier versions updated and the later ones not..gitignore: the per-versionManifest-v1.1x.tomlandinstall_version_1.1x.txtlines are nowManifest-v*.tomlandinstall_version_*.txt. Without that, the live 1.13 manifest showed up as untracked. While there I removed a duplicatedexamples_3d/Manifest.toml, five lines thatoutput/anddata/*.jld2already cover, and a.gitignoreline that ignored.gitignoreandbin/.gitignore(both tracked, so it only confusedgit check-ignore).Where I'd push back
CI.ymlstill hasfail-fast: false. AGENTS.md §4.10 says that belongs in acleanup:PR, so I left it out of this one..defaultby hand, as done here.bin/install --updateneeds a.defaultto start from, soupdate_default_manifest 1.14would fail until one exists.Verification
./bin/install -yon Julia 1.13.0 printedError: Julia 1.13 is not supported. Only Julia 1.11 and 1.12 are supported.and the 1.13 session could not load the project../bin/install -yon Julia 1.13.0: exit 0. It printedInstalling ./Manifest-v1.13.toml from Manifest-v1.13.toml.default...and loadedusing KiteControllers, KiteViewers, MakieControlPlots, NOMADinexamples.testenvironment, 189 of 189 tests passed (38 s) acrosstest-aqua.jl,test-kiteobserver.jl,test-fpc_settings.jl,test-fpp_settings.jl,test-model_and_control.jlandtest-flightpathcontroller.jl. Aqua's stdlib compat checks were part of that run.agent ci-local, 1.13.0, one cell) on016a012: PASS (1 min); rerun on the review fixes started, not finished when this was written · [ ] GitHub CI: pending, so Windows on 1.13 has not run yet./bin/update_default_manifest 1.13run for real: exit 0. It moved 15 packages inManifest-v1.13.toml.default(e.g. StaticArrays 1.9.20 → 1.9.22, WinchModels 0.3.10 → 0.3.11, TZJData 1.5.1 → 1.11.0) and leftProject.tomland the 1.11/1.12.defaults alone. I threw that bump away, since moving pins is a PR of its own, and./bin/install -yput the tracked pins back (exit 0)../bin/update_default_manifest 1.10exits 1 withno Manifest-v1.10.toml.default to update. With a temporary 1.10.defaultpresent it exits 1 withJulia 1.10 is not installed. Neither run touches a file.bin/reuse_lint· rebased on bin/install picks a supported Julia by itself and changes nothing outside the repo #74's current head (347c87d).Scope
+3762 / −83 across 8 files. 3719 of the added lines are the generated
Manifest-v1.13.toml.default. The rest is 5 compat lines, 1 CI line, the.gitignoremerge and its clean-up (−8), andbin/update_default_manifest, which went from 66 lines of menu to 35: a loop, a check of every version before it starts, and the 1.11 case as a named helper. Stacked on #74 (#71), which has to merge first.Opened by
1-Bort-1, an AI agent working for @1-Bart-1.Closes #73 · task
KiteControllers.jl-73