[PROJ] Future maintainance releases

Paul Ramsey pramsey at cleverelephant.ca
Wed Oct 30 18:11:31 PDT 2019


Just have to put the oar in šŸ˜

... and then there is the fun of being a dependent program and realistically having to support both versions for N years. Proj didnā€™t want to shim between the old and new APIs any more... which meant the shim just migrated out one level. So now we have one. Iā€™m sure others will too šŸ˜‚

P

> On Oct 30, 2019, at 5:58 PM, Greg Troxel <gdt at lexort.com> wrote:
> 
> Kristian Evers <kreve at sdfe.dk> writes:
> 
>>> On 30 Oct 2019, at 14:45, Greg Troxel <gdt at lexort.com> wrote:
>>> 
>>> Bas Couwenberg <sebastic at xs4all.nl> writes:
>>> 
>>>> [info about proj6 migration status]
>>> 
>>> From my perspective on packaging many things, proj's trajectory of
>>> deprecations is already feeling very rapid compared to how many things
>>> depend on it.   Realize that people are still in the process of getting
>>> off qt4.
>>> 
>>> pkgsrc is in a similar position to Debian, although less well baked,
>>> with proj6 in wip (sort of like Debian unstable, but not really), and
>>> having to define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H to keep some things
>>> building.
>>> 
>>> I don't want to have multiple proj versions in pkgsrc, and I don't want
>>> to preclude libosmium, libspatialite, mapnik.
>>> 
>>> I feel that the "rip the bandaid off" notion is counterproductive, as it
>>> really means "break things for users so that packagers have to decide
>>> between old proj and dropping dependenciesā€.
>> 
>> I donā€™t think that is a fair way to lay it out. From the beginning we've had
>> a ā€œdouble-featureā€ in the release schedule for the 7.0.0 release with an
>> accompanying 6.x-release. This is still the plan and if it turns out to be
>> necessary we can put out more releases of the 6.x branch later on. Users
>> of proj_api.h should be taken care of for at least a year or two more with
>> the 6.3.1 release. But at some point support for 6.x has to stop. I donā€™t
>> want to see us move into Python2 territory!
> 
> I think we have some fundamentally different assumptions about things,
> both reasonable in their own right, but I'll try to lay out how I think
> you see it and then how I do.
> 
> 
> I think you are seeing that there are people that are wanting to compile
> a single program that depends on proj, and that might or might not use
> proj_api.h (meaning that they need proj 6, and 7 will not do).  Then
> these people would choose either 6.x (if the program uses proj_api.h) or
> 7 (if it doesn't), build proj, and then build the program they want to
> use.
> 
> As I see it, nearly 100% of the uses of any popular program are via some
> packaging system.  So users type "pkg_add qgis" (if they are the unusual
> ones that use pkgsrc :-), "apt install qgis" (ish), or something that
> amounts to the same thing.  This gets them -- as an automatic dependency
> --the proj version chosen by the people curating the packaging system --
> which is people like Bas and me.  Most users don't know how to build
> things; they rely on binary packages prepared by packaging systems.
> 
> Packagers have a big first choice: does the packaging system use a
> single version of proj, or does it have some scheme to have multiple
> versions and somehow namespace them to permit simultaneous use.
> 
> If a single, then do we choose 6.x, and leave out features, or do we
> choose 7.x and *entirely drop* packages that still use proj_api in their
> *latest formal release* from the packaging system?
> 
> If we go down the multiple path, then how do we organize things where
> (making things up) qgis depends on proj and can use 7, but qgis depends
> on libspatialite which needs proj_api and thus 6.  But any one program
> can only link one proj.  Plus, multiple parallel-installable versions is
> hard, and in pkgsrc we use that mostly for things like python.
> 
> Right now, pkgsrc is not even updating to proj 6, but has it in a
> staging area.  Probably it's about time to really update.  Debian is in
> process -- I just read that it's in unstable but not yet in a formal
> release.  This delay in moving both pkgsrc and Debian from 5 to 6 is
> already gated by compatibility issues; if every program that compiled
> with 5 built with 6, it would have just been updated quickly, with no
> wailing and gnashing of teeth.
> 
> That's a long way of saying that "users can just use 6 if they need to"
> doesn't fit with the my notion of how users rely on a collection of
> binary packages.  Hence that releasing 7 with an API break leaves
> packagers with the choice of "don't give 7 to users" vs "drop things
> that don't build with 7"
> 
> 
> All of this leads to the issue of "but things have been deprecated for a
> wicked long time (as we say in Boston)".  Unquestionably true.  But I
> have seen over the years that when a package is foundational and very
> widely used, that API withdrawals take a very long time to completely
> ripple through the ecosystem.  In pkgsrc we are just dealing with
> removing qt4 (and Debian is only a few steps ahead of us, struggling
> with exactly the same issues).  Programs from high-functioning upstreams
> with regular release like GNU Radio have made releases as recent as
> April 2019 which use qt4, even though the last release of qt4 was in
> April of 2015, and it went EOL at the end of 2015.
> 
> 
> I'm not trying to say specifically what you should do.  Just that when
> there is a new release with an API withdrawal, then packagers have to
> choose between not updating and dropping things that don't build or
> can't easily be patched to build.   If the notion is that 7 will be
> released but you don't expect packaging systems to adopt it, that's
> perhaps an interesting situation that I haven't really pondered.
> 
> (speaking only for me, of course)
> 
> Greg
> 
> 
> _______________________________________________
> PROJ mailing list
> PROJ at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/proj


More information about the PROJ mailing list