[Proj] Coming releases of PROJ.4
kreve at sdfe.dk
Mon Jun 26 07:07:25 EST 2017
Thanks everyone for joining in on the discussion after my initial test balloon of changing things with the next few releases of PROJ.4. I'll try to sum up the discussion so far as best as I can and adjust my proposal accordingly.
My initial proposal was to eradicate both projects.h and proj_api.h, in favor or the new proj.h API. On top of that I proposed that nmake and autotools will be removed over the next couple of years. The reason being that we are maintaining duplicate functionality today and that some of the previous architectural choices are limiting development going forward. I get the overall feeling that everyone agrees that it would be nice to be able to change things, but there is also a substantial concern that removing functionality that potentially many users are relying upon will disrupt the geospatial software community too much. It is clear that most are in favor of keeping the proj_api.h API. The situation is less clear regarding projects.h, though concerns from package maintainers has been raised. The initial investigation reveals that in the Debian ecosphere there are around 10 projects that rely on projects.h, and around 50 that rely on proj_api.h.
Regarding the build systems, agreement seem to be reached about removing the nmake system. Autotools still seem to be preferred by most, although some have voiced their opinion that times are changing and CMake is the future.
I also suggested changing the versioning of PROJ.4, the idea being that we make a significant bump in major version number to 10.0.0. There has been few remarks on this, which I take as silent acceptance (or maybe this part was just overshadowed by the rest of the discussion).
Based on the above I have adjusted my initial proposal to the following:
- The next release will be PROJ.4 v. 10.0.0. Released in the middle of august.
- The new API in proj.h is introduced. Functions in proj.h will have their own new namespace: proj_*
- Nothing is removed in this version.
- In the release notes it is made clear that
+ this will be the final version where projects.h is public.
+ proj_api.h will be freezed and no longer actively developed. It will be maintained for a few years still,
but new applications should use the new API and old applications should consider migrating their
software to the new API as well.
+ nmake will not be supported in the next release.
I then suggest that the next release will be in august 2018 and will have the following characteristics:
- A suitable bump in version number, either 11.0.0 or 10.1.0, whichever fits the changes at the time.
- projects.h is removed
- nmake support is removed
- Reiterate that proj_api.h is deprecated.
- Otherwise release what has developed during the previous year.
I think it is a fair compromise of staying backwards compatible and still being able to move forward. I am aware that some users will be affected by not having projects.h available. As the investigation of the Debian package system revealed the impact is likely not that big, and in my mind it brings more overall value that we can change thing behind the scenes compared to being locked in place as today. The new API should offer functionality that covers the use-cases where projects.h has been necessary to include up until now.
How is the feeling about this model going forwards?
More information about the Proj