You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
support for Julia 1.13 (compat bounds, CI matrix, default manifest, and the bin/install, bin/update_default_manifest and bin/create_sys_image scripts)
test test/test-steady_state.jl that checks that the initial steady state converges (without solver warnings) for all projects in data/ and for the settings used by the other examples of the menu
--tests / --no-tests command-line options to bin/install; when neither is given and -y/--yes is not set, the script now asks interactively whether to instantiate and precompile the test project
bin/count_loc script to report lines of code via scc
bin/create_release script to post release notes from CHANGELOG.md to the JuliaRegistrator issue
Changed
bin/install no longer runs the test suite and no longer instantiates the test project by default (also with -y); use --tests or answer yes to the prompt to instantiate and precompile it
bin/update_default_manifest now instantiates the test project and runs the test suite before updating the default manifest
bin/update_default_manifest now checks that all dependencies are released versions (no git branches or local paths) before updating the default manifest
bin/install no longer instantiates the docs project (removed the docs resolve/precompile/instantiate steps)
bin/run_julia now launches Julia with --project=examples by default instead of the top-level project
Updated default manifest for Julia 1.12
Fixed
the hydra20_426 simulation of examples/autopilot.jl failed on Julia 1.13 (AssertionError: height > -1000): when the winch passed through zero speed, its brake engaged and the reel-out speed ran away. The minimal winch speed v_min is now 0.1 m/s, as in batch_pilot.jl, instead of 0.15 m/s. The underlying problem (the winch state is updated on every residual evaluation of the solver) is fixed in WinchModels 0.3.12 and KiteModels 0.11.19
examples/autopilot.jl and examples/batch_pilot.jl now stop with a clear error message if the initial steady state cannot be found, instead of failing later with FieldError: type Nothing has no field t
Removed
support for Julia 1.11 (compat bounds, CI matrix, Manifest-v1.11.toml.default, and the bin/install, bin/update_default_manifest, bin/create_sys_image and bin/autopilot scripts)
bin/setup_env and all references to it (it was only needed for ControlPlots.jl); copy_bin() no longer copies it
compat extended to KiteUtils 0.12 and 0.13 and WinchControllers 0.6
BREAKING: the examples and tests now require KiteModels 0.12, KiteViewers 0.7 and therefore KiteUtils 0.13, whose SysState stores orientations in the KA convention and no longer has the fields roll, pitch and yaw (compat bounds in examples/Project.toml and test/Project.toml)
the examples and tests no longer pass the deprecated init! keywords delta and stiffness_factor; examples/autopilot.jl initializes the kite with trim=true
examples/autopilot.jl and examples/batch_pilot.jl compute the yaw angle with euler_KS(sys_state.orient), because SysState no longer has a yaw field
test/runtests.jl keeps the result of the test run in the variable ts
bin/update_default_manifest no longer changes the default Julia version of juliaup; it selects the Julia version with JULIAUP_CHANNEL instead. The Julia version can be passed as a command-line parameter (1.12 or 1.13) to skip the dialog
bin/install (and therefore bin/update_default_manifest) deletes the custom system image only if Manifest-v1.x.toml has changed, or if the script fails before the manifests are compared
the plot functions are no longer defined twice in examples/plots.jl and examples/batch_plot.jl; both now use the shared implementation in examples/plot_functions.jl and examples/plot_helpers.jl
Fixed
examples/parking_1p.jl no longer converts the orientation with quat2viewer before calling update_system, which now does this itself and no longer accepts the keyword ned
test/test-kiteobserver.jl builds its SysState with SysState(P) instead of the removed constructor SysState{P}()
install_examples() failed on Julia 1.13 with Unknown package: DiffEqBase, because the auto-precompilation of Pkg.add cannot handle indirect dependencies that change their version. It now adds all packages in one Pkg.add call with auto-precompilation disabled and calls Pkg.precompile() afterwards
BREAKING: the examples and tests now require KiteModels 0.13 (compat bounds in examples/Project.toml and test/Project.toml). Its SysState(s) stores the spring forces of n_springs(s) segments, so examples/autopilot.jl, examples/batch_pilot.jl, examples/learn_corrections.jl and test/test_fpc_low_right.jl create their Logger with segments=n_springs(kps4)
compat extended to NLsolve 5 (Project.toml and test/Project.toml), which KiteModels 0.13 allows; it is only used once WinchControllers also allows NLsolve 5 (from WinchControllers 0.6.5)
BREAKING: requires WinchControllers 0.6.5 (Project.toml); WinchControllers 0.5 and 0.6.0 - 0.6.4 are no longer supported
bin/update_default_manifest was replaced by bin/update_default_manifests, which updates the default manifests for Julia 1.12 and 1.13 in one run, without asking questions
bin/install accepts the Julia version as parameter (--version 1.12, --version 1.13, +1.12 or +1.13); it then uses this version without asking and without changing the juliaup default
bin/create_sys_image builds the system image for the native CPU also on Julia 1.13 (cpu_target="native"), which needs less than half the memory and time
bin/create_release was renamed to bin/release
Removed
examples/CondaPkg.toml (left over from ControlPlots; MakieControlPlots does not need Python)
on macOS, create_sys_image counts twice the free disk space (minus 5 GB) as swap, because macOS writes compressed memory to its swap files (measured: 2.5 : 1); a Mac with 8 GB of RAM now needs about 16 GB of free disk space instead of 27 GB
bin/create_sys_image checks the memory and chooses the number of image threads (JULIA_IMAGE_THREADS) with the same rules as Tethers.jl and KiteModels.jl, documented in docs/sysimage.md: it stops if RAM + swap (Windows: maximum pagefile size, macOS: free disk space) is less than 30 GB, or if the RAM is less than 15 GB (macOS: 7 GB); it uses one thread if RAM + swap is less than 34 GB, two threads with less than 27 GB of RAM, and otherwise half the CPU threads, at most 16. Before, it used one thread with less than 27 GB of RAM and did not check the swap
bin/create_sys_image checks the memory before anything else, so that a machine with too little memory fails right away
bin/create_sys_image precompiles Profile with the system image if KaimonGate is installed, because KaimonGate loads Profile in interactive sessions; before, bin/run_julia precompiled Profile when it was first started with a new system image
bin/create_sys_image no longer passes --heap-size-hint=8000M; it only limited the Julia process that drives PackageCompiler, not the processes where the peak memory demand occurs
bin/install without parameters asks nothing and changes nothing outside the repository and the Julia depot; steps that fail now stop the script. The Julia version dialog, the alias jl, the global Revise installation and the optional precompilation of the test and docs environments moved to the new option -i. The options --update, --tests, --no-tests and --version were removed; bin/update_default_manifests no longer needs them
bin/run_julia meets the documented behaviour of the repository scripts: it has -h/--help, loads Revise only if it is available, defines menu() as documented in the README, and passes all arguments to Julia (before, only a script name was accepted). A .jl file as first argument is still run without REPL, as bin/batch_pilot and bin/batch_plot need
bin/run_julia no longer sets MPLBACKEND and NO_MTK
the plot functions of the examples (before examples/plot_functions.jl and examples/plot_helpers.jl) moved to the new local package KitePlots in lib/KitePlots, which is part of the system image. Defined in Main, they could not be stored in it: the first plot of a log, e.g. with the OK button next to plot_main in the autopilot, took about 20 s to compile, mostly for the very large log type. The system image has to be created again with bin/create_sys_image
the plot functions that take a log lost their leading underscore and are public in KitePlots, e.g. KitePlots.plot_main(log) instead of _plot_main(log); the variants _plot_elev_az_n, _plot_side_view_n and _plot_front_view_n became an optional argument cycle_number of plot_elev_az, plot_side_view and plot_front_view
the precompile script of the system image also calls plot_power without energy, as the autopilot does; before, its first plot took about 5 s to compile
bin/update_default_manifests accepts the path dependency KitePlots, as it does KiteControllers itself
examples/autopilot.jl creates the 3D viewer with px_per_unit=1.0 (new constant PX_PER_UNIT); at 2.0, the replay with 12x speed missed its 12.5 ms deadline 6-9 % of the time on a laptop, at 1.0 it misses none
examples/autopilot.jl no longer causes JETLS warnings: fields of KiteApp and the menus of the viewer, which can be nothing, are read with type assertions or with the new accessors viewer(), viewer_menu(name), viewer_t_sim() and viewer_btn_OK()
Fixed
install_examples() copies the local package KitePlots to lib/KitePlots and adds it with Pkg.develop; before, examples/autopilot.jl, examples/plots.jl and examples/batch_plot.jl failed in an installation from the registry with "Package KitePlots not found"
bin/install failed in a new, empty Julia depot with "no registries have been installed"; it now adds the General registry if no registry exists, and otherwise updates the registries
bin/update_default_manifests failed under Julia 1.12 with a KeyError in the precompilation; it now loads Pkg before activating the project
bin/create_sys_image precompiles Revise only if it is installed, because bin/install -y no longer installs it in the global environment
Activity
JuliaRegistrator commentedon Apr 28, 2022
Registration pull request created: JuliaRegistries/General/59309
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Jun 4, 2022
@JuliaRegistrator register
JuliaRegistrator commentedon Jun 4, 2022
Registration pull request created: JuliaRegistries/General/61727
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Jun 5, 2022
@JuliaRegistrator register
JuliaRegistrator commentedon Jun 5, 2022
Registration pull request updated: JuliaRegistries/General/61727
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Jun 5, 2022
@JuliaRegistrator register
JuliaRegistrator commentedon Jun 5, 2022
Registration pull request updated: JuliaRegistries/General/61727
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Jun 10, 2022
@JuliaRegistrator register
JuliaRegistrator commentedon Jun 10, 2022
Registration pull request created: JuliaRegistries/General/62123
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Jun 10, 2022
@JuliaRegistrator register
JuliaRegistrator commentedon Jun 10, 2022
Registration pull request updated: JuliaRegistries/General/62123
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Jun 10, 2022
@JuliaRegistrator register
JuliaRegistrator commentedon Jun 10, 2022
Registration pull request updated: JuliaRegistries/General/62123
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Jun 11, 2022
@JuliaRegistrator register
JuliaRegistrator commentedon Jun 11, 2022
Error while trying to register: "Tag with name
v0.1.2already exists and points to a different commit"80 remaining items
JuliaRegistrator commentedon Jun 21, 2026
Registration pull request updated: JuliaRegistries/General/158596
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Jun 21, 2026
@JuliaRegistrator register
Release notes:
Fixed
FFMPEG_jlldependency toinstall_examples()to prevent errors when runningautopilot.jlChanged
ysize) inbatch_plot.jlfrom 10 to 16 (control/fpc plots) and from 10 to 14 (winch plots) for better readabilityJuliaRegistrator commentedon Jun 21, 2026
Registration pull request created: JuliaRegistries/General/158613
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Oct 10, 2026
@JuliaRegistrator register
Release notes:
Added
bin/install,bin/update_default_manifestandbin/create_sys_imagescripts)test/test-steady_state.jlthat checks that the initial steady state converges (without solver warnings) for all projects indata/and for the settings used by the other examples of the menu--tests/--no-testscommand-line options tobin/install; when neither is given and-y/--yesis not set, the script now asks interactively whether to instantiate and precompile the test projectbin/count_locscript to report lines of code viasccbin/create_releasescript to post release notes fromCHANGELOG.mdto the JuliaRegistrator issueChanged
bin/installno longer runs the test suite and no longer instantiates the test project by default (also with-y); use--testsor answer yes to the prompt to instantiate and precompile itbin/update_default_manifestnow instantiates the test project and runs the test suite before updating the default manifestbin/update_default_manifestnow checks that all dependencies are released versions (no git branches or local paths) before updating the default manifestbin/installno longer instantiates thedocsproject (removed thedocsresolve/precompile/instantiate steps)bin/run_julianow launches Julia with--project=examplesby default instead of the top-level projectFixed
examples/autopilot.jlfailed on Julia 1.13 (AssertionError: height > -1000): when the winch passed through zero speed, its brake engaged and the reel-out speed ran away. The minimal winch speedv_minis now0.1m/s, as inbatch_pilot.jl, instead of0.15m/s. The underlying problem (the winch state is updated on every residual evaluation of the solver) is fixed in WinchModels 0.3.12 and KiteModels 0.11.19examples/autopilot.jlandexamples/batch_pilot.jlnow stop with a clear error message if the initial steady state cannot be found, instead of failing later withFieldError: type Nothing has no field tRemoved
Manifest-v1.11.toml.default, and thebin/install,bin/update_default_manifest,bin/create_sys_imageandbin/autopilotscripts)bin/setup_envand all references to it (it was only needed for ControlPlots.jl);copy_bin()no longer copies itbin/run_juliaCondaPkgdependency fromexamples/Project.tomlJuliaRegistrator commentedon Oct 10, 2026
Registration pull request created: JuliaRegistries/General/171291
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Oct 12, 2026
@JuliaRegistrator register
Release notes:
Changed
SysStatestores orientations in theKAconvention and no longer has the fieldsroll,pitchandyaw(compat bounds inexamples/Project.tomlandtest/Project.toml)init!keywordsdeltaandstiffness_factor;examples/autopilot.jlinitializes the kite withtrim=trueexamples/autopilot.jlandexamples/batch_pilot.jlcompute the yaw angle witheuler_KS(sys_state.orient), becauseSysStateno longer has ayawfieldtest/runtests.jlkeeps the result of the test run in the variabletsbin/update_default_manifestno longer changes the default Julia version of juliaup; it selects the Julia version withJULIAUP_CHANNELinstead. The Julia version can be passed as a command-line parameter (1.12or1.13) to skip the dialogbin/install(and thereforebin/update_default_manifest) deletes the custom system image only ifManifest-v1.x.tomlhas changed, or if the script fails before the manifests are comparedexamples/plots.jlandexamples/batch_plot.jl; both now use the shared implementation inexamples/plot_functions.jlandexamples/plot_helpers.jlFixed
examples/parking_1p.jlno longer converts the orientation withquat2viewerbefore callingupdate_system, which now does this itself and no longer accepts the keywordnedtest/test-kiteobserver.jlbuilds itsSysStatewithSysState(P)instead of the removed constructorSysState{P}()JuliaRegistrator commentedon Oct 12, 2026
Registration pull request created: JuliaRegistries/General/171457
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Oct 16, 2026
@JuliaRegistrator register
Release notes:
Fixed
install_examples()failed on Julia 1.13 withUnknown package: DiffEqBase, because the auto-precompilation ofPkg.addcannot handle indirect dependencies that change their version. It now adds all packages in onePkg.addcall with auto-precompilation disabled and callsPkg.precompile()afterwardsJuliaRegistrator commentedon Oct 16, 2026
Registration pull request created: JuliaRegistries/General/172060
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Oct 18, 2026
@JuliaRegistrator register
Release notes:
Changed
examples/Project.tomlandtest/Project.toml). ItsSysState(s)stores the spring forces ofn_springs(s)segments, soexamples/autopilot.jl,examples/batch_pilot.jl,examples/learn_corrections.jlandtest/test_fpc_low_right.jlcreate theirLoggerwithsegments=n_springs(kps4)Project.tomlandtest/Project.toml), which KiteModels 0.13 allows; it is only used once WinchControllers also allows NLsolve 5 (from WinchControllers 0.6.5)Project.toml); WinchControllers 0.5 and 0.6.0 - 0.6.4 are no longer supportedbin/update_default_manifestwas replaced bybin/update_default_manifests, which updates the default manifests for Julia 1.12 and 1.13 in one run, without asking questionsbin/installaccepts the Julia version as parameter (--version 1.12,--version 1.13,+1.12or+1.13); it then uses this version without asking and without changing the juliaup defaultbin/create_sys_imagebuilds the system image for the native CPU also on Julia 1.13 (cpu_target="native"), which needs less than half the memory and timebin/create_releasewas renamed tobin/releaseRemoved
examples/CondaPkg.toml(left over from ControlPlots; MakieControlPlots does not need Python)JuliaRegistrator commentedon Oct 18, 2026
Registration pull request created: JuliaRegistries/General/172312
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Oct 22, 2026
@JuliaRegistrator register
Release notes:
Changed
create_sys_imagecounts twice the free disk space (minus 5 GB) as swap, because macOS writes compressed memory to its swap files (measured: 2.5 : 1); a Mac with 8 GB of RAM now needs about 16 GB of free disk space instead of 27 GBbin/create_sys_imagechecks the memory and chooses the number of image threads (JULIA_IMAGE_THREADS) with the same rules as Tethers.jl and KiteModels.jl, documented indocs/sysimage.md: it stops if RAM + swap (Windows: maximum pagefile size, macOS: free disk space) is less than 30 GB, or if the RAM is less than 15 GB (macOS: 7 GB); it uses one thread if RAM + swap is less than 34 GB, two threads with less than 27 GB of RAM, and otherwise half the CPU threads, at most 16. Before, it used one thread with less than 27 GB of RAM and did not check the swapbin/create_sys_imagechecks the memory before anything else, so that a machine with too little memory fails right awaybin/create_sys_imageprecompiles Profile with the system image if KaimonGate is installed, because KaimonGate loads Profile in interactive sessions; before,bin/run_juliaprecompiled Profile when it was first started with a new system imagebin/create_sys_imageno longer passes--heap-size-hint=8000M; it only limited the Julia process that drives PackageCompiler, not the processes where the peak memory demand occursbin/installwithout parameters asks nothing and changes nothing outside the repository and the Julia depot; steps that fail now stop the script. The Julia version dialog, the aliasjl, the global Revise installation and the optional precompilation of the test and docs environments moved to the new option-i. The options--update,--tests,--no-testsand--versionwere removed;bin/update_default_manifestsno longer needs thembin/run_juliameets the documented behaviour of the repository scripts: it has-h/--help, loads Revise only if it is available, definesmenu()as documented in the README, and passes all arguments to Julia (before, only a script name was accepted). A.jlfile as first argument is still run without REPL, asbin/batch_pilotandbin/batch_plotneedbin/run_juliano longer setsMPLBACKENDandNO_MTKJuliaRegistrator commentedon Oct 22, 2026
Registration pull request created: JuliaRegistries/General/172919
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
ufechner7 commentedon Oct 24, 2026
@JuliaRegistrator register
Release notes:
Changed
examples/plot_functions.jlandexamples/plot_helpers.jl) moved to the new local package KitePlots inlib/KitePlots, which is part of the system image. Defined inMain, they could not be stored in it: the first plot of a log, e.g. with the OK button next toplot_mainin the autopilot, took about 20 s to compile, mostly for the very large log type. The system image has to be created again withbin/create_sys_imageKitePlots.plot_main(log)instead of_plot_main(log); the variants_plot_elev_az_n,_plot_side_view_nand_plot_front_view_nbecame an optional argumentcycle_numberofplot_elev_az,plot_side_viewandplot_front_viewplot_powerwithoutenergy, as the autopilot does; before, its first plot took about 5 s to compilebin/update_default_manifestsaccepts the path dependency KitePlots, as it does KiteControllers itselfexamples/autopilot.jlcreates the 3D viewer withpx_per_unit=1.0(new constantPX_PER_UNIT); at 2.0, the replay with 12x speed missed its 12.5 ms deadline 6-9 % of the time on a laptop, at 1.0 it misses noneexamples/autopilot.jlno longer causes JETLS warnings: fields ofKiteAppand the menus of the viewer, which can benothing, are read with type assertions or with the new accessorsviewer(),viewer_menu(name),viewer_t_sim()andviewer_btn_OK()Fixed
install_examples()copies the local package KitePlots tolib/KitePlotsand adds it withPkg.develop; before,examples/autopilot.jl,examples/plots.jlandexamples/batch_plot.jlfailed in an installation from the registry with "Package KitePlots not found"bin/installfailed in a new, empty Julia depot with "no registries have been installed"; it now adds the General registry if no registry exists, and otherwise updates the registriesbin/update_default_manifestsfailed under Julia 1.12 with aKeyErrorin the precompilation; it now loads Pkg before activating the projectbin/create_sys_imageprecompiles Revise only if it is installed, becausebin/install -yno longer installs it in the global environmentJuliaRegistrator commentedon Oct 24, 2026
Registration pull request created: JuliaRegistries/General/173254
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via: