[geos-devel] RFC6 - Discourage use of C++ API by requiring a configure switch to install the c++ headers and SDK

Regina Obe lr at pcorp.us
Wed Oct 4 08:45:23 PDT 2017



I take that to be a +1 for my subsequent motion to  accept Sandro's pull request for GEOS 3.7.0





After we release GEOS 3.7.0 we can revote to flip the warning to an error as strk noted.  

I think a warning for GEOS 3.7 is good enough and GEOS 3.8 we can revisit making it into an error. 


Because in GEOS 3.8 we'll probably be doing some serious breaking of the C++ API to bring it up to modern C++ standards.






From: geos-devel [mailto:geos-devel-bounces at lists.osgeo.org] On Behalf Of Howard Butler
Sent: Wednesday, October 04, 2017 11:20 AM
To: GEOS Development List <geos-devel at lists.osgeo.org>
Subject: Re: [geos-devel] RFC6 - Discourage use of C++ API by requiring a configure switch to install the c++ headers and SDK



On Oct 4, 2017, at 12:08 AM, Regina Obe <lr at pcorp.us <mailto:lr at pcorp.us> > wrote:


According to RFC1 – it says the motion can not pass     <https://trac.osgeo.org/geos/wiki/RFC1> https://trac.osgeo.org/geos/wiki/RFC1  with a -1 and I have to give Hobu a chance to debate his point :)


"Respondents may vote "-1" to veto a proposal, but must provide clear reasoning and alternate approaches to resolving the problem within the two days."


So I'd like to hear Hobu's alternative suggestions.


Sandro's suggestion to require users to #define an obnoxious acknowledgement to use the C++ API, with the expectation that it continues to be installed by default for any and all to continue, is a reasonable compromise to me.


I'll back down my -1 to -0 if the RFC is modified to reflect that scenario.


Thanks for picking up this issue, and your persistence and pragmatism, and the way you strived to listen to concerns and reach a consensus. Frankly from reading all the threads in one sitting, Mateusz and Howard didn't approach it similarly which is disappointing.


My pragmatism is we don't get to change the rules after we've put things out there and people now might depend upon us. The C++ API for GEOS *pre-dates* the C API. The GEOS C API was a response to the recognition that some API insulation (along with a FFI-friendly interface) would be useful. 


It is not the library's responsibility to provide personal protective equipment. C++ users know the deal and accept that bargain when they use APIs. My note about GDAL in the previous email was to acknowledge that this same suggestion, to remove the C++ API, could not even be seriously considered there because there is so much public use of that API. There's even more *private* use that people probably don't know about. The same could be said for GEOS.


Packaging systems need to make decisions about moving forward with base versions of foundational libraries like GDAL and GEOS with acknowledgement that doing so may cause some laggards to be dropped. The packagers can't write software to update the laggards, and the libraries need the freedom to innovate. Attention is life, as Paul said.





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geos-devel/attachments/20171004/d7ab25a4/attachment.html>

More information about the geos-devel mailing list