Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove 0.4 Deprecations #13054

Closed
wants to merge 5 commits into from
Closed

Remove 0.4 Deprecations #13054

wants to merge 5 commits into from

Conversation

jakebolewski
Copy link
Member

Follow up on #13052.

Two tests are failing in arrayops.jl which check the return types of setindex! and getindex. I commented them out for now.

~~Still need to remove syntax deprecations.~~~

@JeffBezanson
Copy link
Member

b5a251b should fix the arrayops test.

@IainNZ
Copy link
Member

IainNZ commented Sep 10, 2015

@jakebolewski could you clarify: these are things that were deprecated between 0.3 release and 0.4 release, and will no longer work on 0.5? Or are they things deprecrated between 0.2 and 0.3 release, and shouldn't work on 0.4?

@IainNZ
Copy link
Member

IainNZ commented Sep 10, 2015

Its the former, right? For the latter, we had #11046. That came mid-release-cycle, @tkelman wanted it at the end of the release cycle, and I guess this is at the start of the release cycle?

@JeffBezanson
Copy link
Member

It's an interesting question. Technically, it's correct to remove 0.4 deprecations on master immediately, but in practice people might prefer a slower transition. I like to rip the bandaid right off, others like to do it slowly.

@IainNZ
Copy link
Member

IainNZ commented Sep 10, 2015

I'm in Camp Bandaid FWIW, and I think doing it now is fairly principled and helps get 0.5 out that much sooner (by getting fiddly 0.4-related details). Perhaps has the social effect of keeping people well away from 0.5 too, because it'll knock out even more packages.

@mbauman
Copy link
Member

mbauman commented Sep 10, 2015

At a minimum, it'd be nice to hold off on this until I (and/or others) get #13047 a little closer. Those doc conversions can still get backported easily.

That said, some of the 0.5 changes I'd like to make will depend upon removing these deprecations. Count me in for camp bandaid.

@ScottPJones
Copy link
Contributor

Please, rip it off! People have their 0.4 RC1 goodness already, bandaid off will make it easier to find stuff to fix in packages.

@jakebolewski
Copy link
Member Author

Yes, my hidden intention is to force people into using the v0.4-rc right away for their primary work.

@mbauman I intend to merge the doc changes before this.

@JeffBezanson
Copy link
Member

Oh, we also need to flip the _oldstyle_array_vcat_ flag.

@sbromberger
Copy link
Contributor

Just to clarify, do the devs WANT people to use 0.5, or would they (you) prefer us to stick with 0.4? After reading the comments here I'm confused as to how I should proceed (as a non-dev).

@johnmyleswhite
Copy link
Member

Please do not start using 0.5 immediately.

@quinnj
Copy link
Member

quinnj commented Sep 10, 2015

If you plan on helping with developing new 0.5 features (planned or un-planned), or are happy helping test new changes that get merged, then feel free, I say. I'd say the majority of "package" developers probably don't fall in this camp, however, and need/want something more predictable to build packages against.

@sbromberger
Copy link
Contributor

As long as #13036 gets backported soon, I'm happy to stick with 0.4. :)

Sorry for the derail and thanks for the clarification.

@jakebolewski jakebolewski force-pushed the jcb/rm04deps branch 2 times, most recently from 016b1fd to bbe3e05 Compare September 11, 2015 03:31
@tkelman
Copy link
Contributor

tkelman commented Sep 11, 2015

For crying out loud, we need to solve #11200 before doing this. Otherwise we're breaking code vindictively and without warning.

@jakebolewski
Copy link
Member Author

Ok this is done.

Break what code? Standard library code? I don't see why we have to have a solution ready before moving forward during the 0.5 release cycle. Certainly before tagging a release candidate.

@JeffBezanson
Copy link
Member

I think we can come up with a way to deprecate bindings and backport it to 0.4, so that somewhere in the middle of the cycle 0.4 users will start seeing more warnings.

@tkelman
Copy link
Contributor

tkelman commented Sep 11, 2015

No, I'm saying removing deprecations that never even gave a warning is breaking user code no matter when we do it. So we shouldn't rush this, since we have time to try to fix #11200 first and make this less painful. There's zero advantage to purposefully breaking packages and user code on 0.5 as early as possible. It'll make regression testing of codegen and package manager rewrites more annoying, as one example.

@jakebolewski
Copy link
Member Author

We need to free up the syntax to get other changes in the pipeline. If we want to release by Feb then we realistically have a little over 4 months to make that happen.

All major packages that would be prudent to backtest on already depend on Compat. The package manager rewrite (if it doesn't depend on deprecated 0.4 functionality) should just work or work with minor modifications.

@tkelman
Copy link
Contributor

tkelman commented Sep 11, 2015

Has Compat been updated for all of these? I'm suggesting we do this systematically, if some deprecations need to be removed for high-priority array changes then do them first. Most of those should already be giving warnings so I'm not as opposed to removing them when needed. Removing absolutely all of the deprecations en masse, including ones that never gave warnings, just isn't needed right now.

@jakebolewski
Copy link
Member Author

I guess my only concern is I don't see how we can meet the goals of the 0.5 release while maintaining the level of stability of the 0.4 release cycle. Vindictive is a pretty loaded word, just trying not to repeat the mistakes of the past.

wait(p)
catch
error("IOStream redirect failed. Child stderr was \n$(readall(fname))\n")
finnaly
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo

@tkelman
Copy link
Contributor

tkelman commented Sep 11, 2015

Another reason I dislike doing this right away is that I intend to use PackageEvaluator results on nightly as a rough filter for backporting changes from master to release-0.4. This gets less useful over time as the branches diverge, but I plan on writing up a formal backporting policy soonish that will include "don't backport code changes before PackageEvaluator has had a chance to run with them on nightly" as a guideline (mostly relevant after 0.4.0 is out when there's not as much of a rush, but still more info there than just CI even now). Breaking a bunch of code before it's actually necessary just adds a lot of noise and makes it harder to judge whether or not other changes could cause any problems.

Of course 0.5 is going to have to be unstable to accomplish anything interesting. But let's wait to break code until real changes mandate doing so, not arbitrarily as soon as we're allowed to.

@jdlangs
Copy link
Contributor

jdlangs commented Sep 11, 2015

Here's a data point regarding #11200: ~350 packages still use the characters "::String" in their code, presumably because the developers have never seen a deprecation warning telling them to switch. I don't know how many of that number were fully vetted for 0.4, but the list includes the names DataFrames, Escher, Gadfly, SFML, and more.

tkelman added a commit that referenced this pull request May 27, 2016
not including the deprecated syntax in the parser, ref #13054 which could be rebased
@tkelman
Copy link
Contributor

tkelman commented May 27, 2016

Mostly superseded by #16585 and #16605, though the parser changes here are still needed I think.

The command-line argument removals can't happen until after there's been a release where they print warnings, #16596.

@tkelman tkelman closed this May 27, 2016
tkelman added a commit that referenced this pull request May 27, 2016
not including the deprecated syntax in the parser, ref #13054 which could be rebased
tkelman added a commit that referenced this pull request May 27, 2016
not including the deprecated syntax in the parser, ref #13054 which could be rebased
@DilumAluthge DilumAluthge deleted the jcb/rm04deps branch March 25, 2021 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants