-
-
Notifications
You must be signed in to change notification settings - Fork 655
Fix Plotly/PlotlyJS bounds #5427
Fix Plotly/PlotlyJS bounds #5427
Conversation
TotalVerb
commented
Jun 19, 2016
- Plotly does not require any particular version of JSON
- PlotlyJS versions before 0.3.0 require at most 0.5.1. Changes introduced in 0.5.2 and kept in 0.5.3 broke PlotlyJS.
- PlotlyJS versions 0.3.0 or later require at least 0.5.2. I set it to 0.5.3 to avoid downgrade/upgrade surprises, since 0.5.2 is the same as 0.6.
that sounds like I didn't check 0.5.3 carefully enough, @kmsquire I thought the intent was for 0.5.1 and 0.5.3 to be the same - what does 0.5.3 have that 0.5.1 doesn't? |
The change that broke Plotly was that the overloaded |
I dislike using a nonzero patch version in an upper bound since that prevents fixing other bugs within the same minor series. We could alternately make an 0.5.4 that actually is the same as 0.5.1, what did removing the colon methods accomplish? |
Making a 0.5.4=0.5.3 before this PR is merged will break PlotlyJS again. The package is depending on JSON.jl's internal implementation details for some reason. Removing the colon methods was just something I noticed when looking at methods of |
That sounds like the underlying issue and just asking for trouble. |
I think
|
What's very strange is PlotlyJS never had its tests fail, which is a sign that it isn't testing features that Plotly is using. If PlotlyJS is going to use the internals of JSON in that messy of a way, then it should really use an exact upper and lower bound. |
How's this solution? I think this will work, and it meets your criteria:
This will downgrade PlotlyJS 0.3.0 down to 0.2.0 for many, at least until Requests tags a new version. |
This revised PR should be merged after/if JSON 0.5.4 is tagged at 0.5.1. |
That sounds workable to me. PlotlyJS needs to put the lower bound in its own REQUIRE otherwise it'll need to be fixed again after every new tag. |
@tkleman, yeah, sorry, I set 0.5.3 ahead to what I thought were only bug fixes. My bad. @TotalVerb (and Tony), thanks for being on top of this. In tagging JSON.jl 0.5.4 at 0.5.1, it would probably be good to make 0.5.2 and 0.5.3 uninstallable. |
I guess we accomplish that with a julia lower bound of 9999 or something like that? |
Sorry for the mixups here and thanks for working on this -- though I think a little more time to let the devs of the affected packages respond would have been better. This felt a bit rushed and intrusive. I don't intend to sound confrontational or upset here so please don't take it that way -- just voicing my thoughts. Overall I'm happy the community stepped in to help clean up my mess. In PlotlyJS.jl I was basically reimplementing
That all being said, I now realize it is not necessary. I'm going to submit a patch to PlotlyJS that doesn't rely on any internals of JSON.jl (good suggestion @tkelman) I'll tag a new release when I'm done with that. If you have feelings about whether that should be PlotlyJS v0.3.1 or v0.4.0 please let me know. I'm totally indifferent between the two and unless someone else has strong feelings I'll probably choose v0.3.1. |
Your concerns are legitimate. I think your current solution is a very reasonable stopgap. In the long term there will be support from JSON.jl for this use case. |
Ok excellent. Thanks again for working on this. |
Sorry for not waiting a bit longer for your input. Now that PkgEval is running like clockwork and I make a habit of checking it, I tend to notice breakages soon after they happen. Adjusting bounds in metadata is a quick way to get things back from a broken state to a previously working state. New tags can reverse and/or make unnecessary any such changes, but I do think package authors need to be more careful about their dependency version requirements in both directions. |
Happy to hear PkgEval is working again and thanks again for working on this. I'm happy the community is willing to help. Agreed that more care with bounds on dependencies would be great. |
* Fix Plotly/PlotlyJS bounds * Change PlotlyJS requirements to minor versions