MichaelHatherly / CommonMark.jl

A CommonMark-compliant Markdown parser for Julia.
Other
84 stars 11 forks source link

please bump the [compat] for JSON #2

Closed JeffreySarnoff closed 4 years ago

JeffreySarnoff commented 4 years ago

The current version of JSON.jl is 1. Using an old version in [compat] can cause ERROR: Unsatisfiable requirements when there are other packages added that do not list the old version in thier [compat]. You can specify multiple versions, if there is reason to do so.

MichaelHatherly commented 4 years ago

The current version of JSON.jl is 1.

As far as I can tell JSON 1.0 hasn't been tagged in General yet? Or maybe I'm not looking in the right place?

Using an old version in [compat] can cause ERROR: Unsatisfiable requirements when there are other packages added that do not list the old version in thier [compat].

Which particular packages are causing the conflict? 0.20.1 doesn't look that old to me: https://github.com/JuliaIO/JSON.jl/releases.

I'm still getting up to speed on the new pkg, so maybe I'm missing something here?

JeffreySarnoff commented 4 years ago

Oh, you are right that JSON has not released v1. The current version appears to be 0.21. The way package version resolution/checking works now is that it works best when either the [compat] entry is given loosely (JSON = "0" or, in this case, JSON = "0.2" would also qualify) or the [compat] entry is given broadly, covering through the current version (JSON = "0.20, 0.21"``). There is even a bot which workds to keep these compat lines current with the general registry's information. I find it easiest and most fool-proof to usepkg = "0"orpkg = "1"`, other people list a number of relatively current versions. Some generic details are here. Because other packages that may depend on, say JSON, probably include the latest version in their [compat] (and maybe only that) if your [compat] omits it, there can be consternation within the package version resolution code. It is widely understood that this is not desirable, and a goal is to keep the minimal number of versions of a package locally to allow things to resolve in as up-to-date a way as possible. Till then ...

As an aside, take a look at JSON3.jl. It has become the favorite of many over the past six months. You are likely to find that it does what you need faster than JSON.jl and properly.

It is good to see you back in Julia land.