On 10 January 2012 19:16, [email protected] < [email protected]> wrote:
> The first proposition by Vladimir sounds good and is almost the same as > the one discussed. The difference is the following: for him the differences > in old/new modules is the name of the plotting class. For me the name is > the same, "Plot", but the paths are different. I think it's a good idea to > have different names. So I propose the following: > Just to be clear, I propose the same thing as Vladimir, just the names are a little different. > > sympy+1 : NewPlot (points to newplot.Plot), Plot (deprecated, points to > pygletplot.PygletPlot which is the old Plot) > sympy+2: NewPlot (deprecated), Plot (which was newplot.Plot), PygletPlot > rests in pygletplot if someone prefers it > sympy+3: NewPlot gets deleted. Plot is the class from my module, > PygletPlot rests in pygletplot if someone prefers it > > Or we test for a few months the new plotting module in git and break the > api without deprecation. It's probably a bad idea. > > I'll wait for the opinion of our BDsFL :) > > > On 10 January 2012 18:56, Vladimir Perić <[email protected]> wrote: > >> On Tue, Jan 10, 2012 at 5:46 PM, [email protected] >> <[email protected]> wrote: >> > Thanks for the details. >> > >> > There is still a small problem. The class Plot won't be removed from >> sympy. >> > It will be replaced by another class with different api and the old >> class >> > will be moved to a submodule. Should I still use @deprecated? >> > >> > Or maybe you are against this type of deprecation (replacing and >> moving)? My >> > opinion is that it's the right way to do it, but it was discussed only a >> > bit. >> >> You are right, this is a somewhat different situation. However, Plot >> is really important and we need to have both implementations in >> parallel (at least for a while). Not having any experience in such >> matters, this is how I would handle it: >> >> 1) Implement new Plot as PlotNew or whatever >> 2) Deprecate Plot and say it should be replaced by PlotNew, but not >> change anything; also say the module will continue to live as PlotOld >> (some versions later) >> 3) Move Plot to PlotOld, mark it as deprecated; move PlotNew to Plot, >> and "deprecate" PlotNew in favor of Plot >> (some more versions later) >> 4) Finally remove PlotOld and the redirect from PlotNew to Plot >> >> In my mind this gives the smoothest "upgrade" path for users: nothing >> will suddenly fail (which would happen if you just move Plot to >> PlotOld and add the new Plot in-place), and the users will know that >> they will have to change things (but actually, they'll have to change >> two times -> once to PlotNew, and once when PlotNew finally gets >> removed in favor of Plot). >> >> The other solution is like we now plan to do it: move Plot to PlotOld, >> drop the new Plot as Plot, remove PlotOld sometime in the future. It's >> simpler, but it will cause immediate breakage with the new version >> (albeit easily flexible). I guess this solution is better if we are >> sure the new Plot module is rock solid, but I'm just not sure we can >> give it such thorough testing. >> >> Or I'm just overthinking it all. :) >> >> > >> > >> > On 10 January 2012 11:13, Vladimir Perić <[email protected]> wrote: >> >> >> >> On Tue, Jan 10, 2012 at 11:05 AM, Aaron Meurer <[email protected]> >> wrote: >> >> > We recently implemented SymPyDeprecationWarning in >> >> > sympy.core.compatibility. This is preferred over just a normal >> >> > DeprecationWarning, as it will show up in isympy regardless of Python >> >> > version (later versions of Python disable DeprecationWarning by >> >> > default). You can use the @deprecated decorator in >> >> > sympy.core.decorators, which will use this. >> >> > >> >> > This still needs work, by the way. We should standardize it in the >> >> > warning and decorator to put in a version number where the feature >> >> > will be removed, and automatically generate a deprecation string >> based >> >> > on that. Something along the lines of >> >> > >> >> > @deprecated(last_version='0.7.4', use_instead='other thing', >> >> > see_also="http://code.google.com/p/sympy/issues/detail?id=NNN") >> >> > def myfunc(...): >> >> > >> >> > which would produce, SymPyDeprecationWarning("The function myfunc is >> >> > deprecated, and will be removed after version 0.7.4 (you are >> currently >> >> > using 0.7.1-git). Use other thing instead. See >> >> > http://code.google.com/p/sympy/issues/detail?id=NNNN."). >> >> >> >> I agree with all this. If I get the chance, I'll work on it. There's >> >> an issue for this: >> >> >> >> https://code.google.com/p/sympy/issues/detail?id=2142 >> >> >> >> As Aaron says in the issue, it would be really nice to have this >> >> before the next release. >> >> >> >> > >> >> > Also, the corresponding issue (NNNN) would get the >> >> > Milestone-Release0.7.5 tag so that we remember to remove it before >> >> > that release. >> >> > >> >> > Aaron Meurer >> >> > >> >> > On Mon, Jan 9, 2012 at 3:33 PM, [email protected] >> >> > <[email protected]> wrote: >> >> >> Some time ago I started working on a new plotting module. With GCI >> and >> >> >> the >> >> >> exams at the end of the semester the work has stalled. There is >> only a >> >> >> small >> >> >> number of issues that I must address before the module is ready for >> >> >> review >> >> >> but one of them is the deprecation warning for the old plotting >> module. >> >> >> Of >> >> >> course the old module will not be deleted. But it will be placed in >> a >> >> >> subfolder and the import statement used for it will change >> somewhere in >> >> >> 0.7.3 or 4. At least that was the consensus some time ago (all this >> >> >> will be >> >> >> detailed in the commit message so it can be discussed later). >> >> >> >> >> >> But at the moment I must implement a deprecation warning on import >> of >> >> >> the >> >> >> old module. Can someone of the core devs explain to me the >> methodology >> >> >> that >> >> >> you usually use in this case? Deprecation cycles, subclasses of >> Warning >> >> >> and >> >> >> so on... Or is it up to me to create a subclass of Warning. Is >> there a >> >> >> special place to document this (in addition to the release notes)? >> >> >> >> >> >> Stefan >> >> >> >> >> >> -- >> >> >> You received this message because you are subscribed to the Google >> >> >> Groups >> >> >> "sympy" group. >> >> >> To post to this group, send email to [email protected]. >> >> >> To unsubscribe from this group, send email to >> >> >> [email protected]. >> >> >> For more options, visit this group at >> >> >> http://groups.google.com/group/sympy?hl=en. >> >> > >> >> > -- >> >> > You received this message because you are subscribed to the Google >> >> > Groups "sympy" group. >> >> > To post to this group, send email to [email protected]. >> >> > To unsubscribe from this group, send email to >> >> > [email protected]. >> >> > For more options, visit this group at >> >> > http://groups.google.com/group/sympy?hl=en. >> >> > >> >> >> >> >> >> >> >> -- >> >> Vladimir Perić >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> Groups >> >> "sympy" group. >> >> To post to this group, send email to [email protected]. >> >> To unsubscribe from this group, send email to >> >> [email protected]. >> >> For more options, visit this group at >> >> http://groups.google.com/group/sympy?hl=en. >> >> >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups >> > "sympy" group. >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> > [email protected]. >> > For more options, visit this group at >> > http://groups.google.com/group/sympy?hl=en. >> >> >> >> -- >> Vladimir Perić >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/sympy?hl=en. >> >> > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
