On 2016-02-26 17:34-0000 Phil Rosenberg wrote: > We have discussed a few API breaking changes recently. Error > reporting, thread safety, C++ API changes and the Fortran API changes > are pretty close to complete by the seems of things. > > Is it time to bring up the possibility of PLPlot 6 again and how we > intend to manage that?
Hi Phil: Good question concerning PLplot 6 which deserves its own subject line. I have noticed there are some large free software projects (e.g., Linux kernel, octave) where they simply make cumulative backwards incompatible changes that are more or less well documented and leave it at that. And that is the model we are currently following right now with PLplot. From my perspective, the big advantage of this model for handling backward-incompatible change is it allows users to slowly adjust to such changes as they occur rather than the alternative of us maintaining strict backwards compatibility at the expense of accumulating huge cruft, and then getting rid of all such cruft in one (likely buggy since so much change is involved) "major release" change that everybody hates! For more on the Linux kernel release history see <https://en.wikipedia.org/wiki/Linux_kernel#Maintenance>. You can see there that they ran to very high "patch" numbers in the 2.6.<patch> series before transitioning to 3.0, and also fairly high "minor" numbers in 3.<minor> before moving to 4.0. In fact, IIRC, there was essentially no difference between 2.6.39 and 3.0.0. In other words the only reason for bumping the major number at that stage was the kernel developers were getting tired of the high patch numbers for 2.6.<patch>, and also I believe they were concerned those "patch" releases were much more than simple bug fixing releases, and moving to kernel 3.0 allowed them to use the patch number for such ("bug-fixing only") releases. The turnover from Linux kernel 3 to 4 had similar "against high version number" motivations rather than introducing a major new feature (see <http://www.zdnet.com/article/linux-kernel-turns-over-release-odometer-to-4-0/>). Actually, PLplot is also following a similar model right now where the release numbers are 5.<minor>.<patch> where I bump just the patch number if there is mostly just bug fixing in the release (e.g., the release of 5.11.1), but I bump the minor number and zero the patch number (e.g., the forthcoming 5.12.0) when there are major developments (e.g., the new Fortran binding) in the release. If we decide to continue this model, then following what was done for the Linux kernel, PLplot 6.0.0 might not be anything special other than a desire on our part to start the minor numbers at zero again. But in my book "12" is not that high, and I would only start worrying about PLplot 6 once we get to PLplot-5.20 or so which will likely be quite a long time from now. In sum, version numbers are fairly arbitrary and each project tends to interpret them in various ways. The above is my interpretation of major, minor, and patch in the PLplot-<major>.<minor>.patch that I release, and I intend to stick with that model. So I plan to use a new minor release version when we introduce the change to no static variables and/or the introduction of an error reporting system. But at some point someone else may take over as PLplot release manager, and they may have their own strong ideas on how to interpret major, minor, and patch in our release numbers. All the above being said, I think regardless of the philosophy of the release manager we should always make it as easy as possible for our users to stick with us through our PLplot-<major>.<minor>.<patch> releases so we should never introduce backwards-incompatible API changes in those releases unless there is a compelling and well-documented motivation (e.g., the cruft-reduction and better consistency of the present Fortran binding changes that I discuss in the 5.12.0 README.release file that is currently being prepared). Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel