Packages that need changes for JSON 1.0
Here are some registered packages that will need changes to be compatible with JSON 1.0 This is based on a search in JuliaHub, but I may be missing some packages.
Related to removing the show_json interface
https://github.com/JuliaComputing/TableView.jl/blob/a3a3172fed89260b779d79f22c901ed74d96b90d/src/TableView.jl#L293-L319 https://github.com/GenieFramework/Stipple.jl/blob/d147ddcc1ab7a1b190cba8b7007c3c0d26c110f5/ext/StippleJSONExt.jl#L13 https://github.com/spine-tools/SpineInterface.jl/blob/9bf05d62d636a76f9c21916772bc5d28e15ec460/src/api/db.jl#L732-L738 https://github.com/JuliaComputing/MultiDocumenter.jl/blob/e112da8b744f3393d037a7380e544797c2a41953/src/search/flexsearch.jl#L130-L155 https://github.com/randyzwitch/ECharts.jl/blob/a6dc9cbc9f3595a3e499aa3b539df2f4e599739b/src/ECharts.jl#L46-L50 https://github.com/Octogonapus/AWSCRT.jl/blob/f871c2b8256449069fedbbddc2219c9bbbe7effc/README.md?plain=1#L187-L199 https://github.com/JuliaRobotics/DistributedFactorGraphs.jl/blob/7823fe4b2e3223b008b68dfc1deb311a902e43f7/attic/SerializationOld.jl#L13-L15 https://github.com/JuliaGizmos/JSExpr.jl/blob/968e996a02cfa08bb4602086350c70a0e55b4465/src/jsstring.jl#L189-L191 https://github.com/JuliaLogging/LogRoller.jl/blob/b53582dad0a30523d3370f783874b0fda6fdf6c0/src/log_utils.jl#L5-L26 https://github.com/GiggleLiu/ProblemReductions.jl/blob/8b29f551b6aa1ec5ce674b53d785c19d02796ec8/src/models/fileio.jl#L42-L48 https://github.com/ModiaSim/Modia3D.jl/blob/22f3af52a4828d0340fc19049f0dc38268a6f142/src/Shapes/solid.jl#L138-L145 https://github.com/queryverse/Vega.jl/blob/7b6fcd87587d67104e88747155381865ab544db5/src/spec_utils.jl#L81-L85 https://github.com/JuliaGizmos/WebIO.jl/blob/6662f46fd7d06714705c5f70158837e77a725461/src/syntax.jl#L237-L248 https://github.com/JuliaPackaging/BinaryBuilder.jl/blob/d41ddc84157a8c4b490761b0fb5f66cf32746ce6/contrib/generate_instructions_list.jl#L5-L26
Related to removing the parse inttype keyword argument.
https://github.com/Zinoex/IntervalMDP.jl/blob/f3697ac3522bbc5a437cecea24e9db4d591a7470/src/Data/intervalmdp.jl#L80 https://github.com/stensmo/SFTPClient.jl/blob/7cd8d87a3b67cb38c9b354b190b91f145f475ee6/README.md?plain=1#L84 https://github.com/JuliaText/TextModels.jl/blob/66ec1fe47c23966fe0b3e1d0bfa207963963cdb8/src/sequence/ner.jl#L17
JuliaGeo./GeoJSON.jl will also have to be completely rewritten.
Why is that? From what I can tell, GeoJSON.jl doesn't depend on JSON.jl
It doesn't yet but it depends on JSON3.jl, which it should switch from to JSON.jl especially since that will allow completely lazy parsing
BenchmarkTools.jl?
It was in my startup.jl which depends on JSON.jl.
I started to work on GenieFramework/Stipple
https://github.com/JuliaPy/Conda.jl/pull/262 needs some love to support JSON v1 in jupyter notebooks
JuliaPy/Conda.jl#262 needs some love to support JSON v1 in jupyter notebooks
I think Conda just needs a bump of the JSON compat. IJulia does, indeed, need a little love. I just got it working, however, I needed to manually install jupyter Conda.add("jupyter"). I have pushed a branch hh-json1 on [my fork of IJulia](https://github.com/hhaensel/IJulia.jl, which gives you a working Jupyter Notebook with JSON v1 if you dev Conda and bump the JSON compat to 1
I am not sure whether that branch should be the final solution, as it parses into dicts instead of JSON.Objects, but it was a quick fix and I wanted to see whether it works. The final solution should rather be to make parts that store results of JSON.parse accept JSON.Objects.
UPDATE: Had a more detailed look at the code of IJulia and think that the solution of parsing into Dict{String, Any} is a reasonable approach, as all parsing results end up in Dicts anyhow.
just filed a PR in IJulia https://github.com/JuliaLang/IJulia.jl/pull/1197 that works with JSON v1 as soon as Conda's json compat is bumped to include 1
I would like to add JuliaComputing/OpenAPI.jl too. I tried to do the update, but I don't know the internals of that package, so I couldn't quickly figure out:
- the way it dispatches on
Dict{String,Any}(e.g. https://github.com/JuliaComputing/OpenAPI.jl/blob/0c95ebb8db20d95a8a2a067b3ed464719e96c7b6/src/json.jl#L61-L64) - how does it read streams/chunks and why does it work with JSON3 (tests fail around here: https://github.com/JuliaComputing/OpenAPI.jl/blob/0c95ebb8db20d95a8a2a067b3ed464719e96c7b6/test/chunkreader_tests.jl#L55)