(1) Sage developers could be better informed of what are they are going to affect if sage, as an "author tool", send usage statistics about each "sage-lib" related function:
- Author should put sage in "send usage statistics mode" - The same author would be warned if any of those functions starts to be deprecated. - And maybe, if authors freely send files to be kept and seen as "testing examples" like in "sage -t <author-example>.sage" But after a new deprecation warning, I'm thinking of implement one of this solutions to my code: (2) A tool to automatically change the deprecated "simplify_exp" for "canonicalize_radical" inside sage files; (3) Create my own local "simplify_exp" that mimics original "simplify_exp" because here authors enjoy applying "simplify_exp" to exponential expressions. Pedro (a developer of a package that uses sagemath and will be in pypi as suggested) sexta-feira, 8 de Abril de 2016 às 17:43:46 UTC+1, William escreveu: > > On Fri, Apr 8, 2016 at 9:33 AM, Luca De Feo <de...@lix.polytechnique.fr > <javascript:>> wrote: > >> How often do you feel that changes in Sage breaks your code? > > > > Looking at my log (this project > > https://github.com/defeo/ss-isogeny-software) > > > > - Sage 6.2: module renamed in Pari/GP interface (without deprecation, as > far > > as I recall) > > - Sage 6.4: frankly, I don't know, but possibly a change in the finite > > fields implementation > > - Sage 6.7: changes in cython, not really Sage's fault, I guess > > - Sage 6.7: changes in the finite fields implementation (with proper > > deprecation, this time) > > - Sage 6.10: changes in richcmp (did not get deprecation warnings, but > the > > change concerns an internal function) > > - Sage 7.1: affected by #19941 (properly deprecated, note that 7.1 is > stable > > right now, but not yet in SMC) > > > > It may be argued that I'm taking risks because I sometimes fiddle with > "the > > internals" of Sage, but one other problem of Sage is that it does not > define > > clearly what's the public API and what's internal. > > +1 -- this "one other problem of Sage is that it does not define > clearly what's the public API and what's internal." is a HUGE problem > -- and we're not aware of it because "user code" is typically private. > > If there were a large body of pip-installable packages, which are user > code, this would help *define* what the public API of Sage really is, > and also give us a much larger body of code to test against before > making new releases. > > As an example, when working on > > https://github.com/williamstein/sage_modabvar > > the first thing I noticed in that from sage-6.10 to sage-7.x > > import sage.rings.arith > > completely BROKE. It became "import sage.arith". > > This is (who knows?) a change in the public api of the core sage > library. Maybe it's a gratituous one, and in this case one I'm > puzzled by why this change was made. (I wrote sage.rings.arith in the > first place, and it was meant to be some misc arith needed to > implement rings. Why move it to its own top level module like that?) > > By writing Python packages that depend on "the core sage library" we > will be forced to define what the core library is and stabilize it. > If you guys want Sage to survive/thrive, this **MUST HAPPEN**. The > core sage library should -- like with Python -- be the place where > code, which has been tested/used by people and got stable, goes to > stay stable (at least API-wise). Like the standard Python library. > > William > > > > > Luca > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "sage-devel" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to sage-devel+...@googlegroups.com <javascript:>. > > To post to this group, send email to sage-...@googlegroups.com > <javascript:>. > > Visit this group at https://groups.google.com/group/sage-devel. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > William (http://wstein.org) > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.