Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove proj_api.h as a public header file #837

Closed
4 tasks
kbevers opened this issue Mar 5, 2018 · 4 comments · Fixed by #2403
Closed
4 tasks

Remove proj_api.h as a public header file #837

kbevers opened this issue Mar 5, 2018 · 4 comments · Fixed by #2403
Labels
pinned Prevent stale-bot from closing an issue
Milestone

Comments

@kbevers
Copy link
Member

kbevers commented Mar 5, 2018

It has been decided the API in proj_api.h will be removed from the library, leaving proj.h as the only API in PROJ in version 7.0.0. This will allow us to simplify the internals of PROJ immensely and make library easier to maintain in the future.

What needs to be done:

  • Do not install proj_api.h with autotools

  • Do not install proj_api.h with CMake

  • Remove references to proj_api.h from documentation (website, man-files)

  • ...

@kbevers kbevers added this to the 7.0.0 milestone Mar 5, 2018
@rouault
Copy link
Member

rouault commented Apr 23, 2019

I think we should re-discuss the opportunity of removing proj_api.h when we have a clearer status on how reverse dependencies have tackled PROJ 6. It is likely that projects that depended on projects.h might directly go to proj.h, but those using proj_api.h might use the ACCEPT_USE_OF_DEPRECATED_PROJ_API_H flag. We should asses the benefits (potential PROJ cleanup) vs costs (delayed adoption of PROJ 7, extra burden for packagers that have already had a good deal with PROJ 6, etc.)

@hobu
Copy link
Contributor

hobu commented Apr 23, 2019

those using proj_api.h might use the ACCEPT_USE_OF_DEPRECATED_PROJ_API_H flag.

I think this is true. We gave them the ability to kick the can down the road, and they did 😄.

@busstoptaktik
Copy link
Member

Probably worth considering whether emulating essential parts of proj_api.h on top of proj.h would be worth the effort - if the pareto principle applies, perhaps the 80% solution could be done in 256 LOC?

I'm not saying it is possible, but it might be an economical way of kicking the can further down the road, without implying a maintenance burden: The semantics of the ACCEPT_USE_OF_yada_yada_yada flag could simply change as of 7.0 to "Yes, I understand that PROJ developers have done their utmost to help me migrate and I'll do my best to squeeze out the last few kinks".

Projects stuck at proj_api.h because of lack of interest/developer resources will suffer the death by bitrot sooner or later anyway.

If not even trying to do sed s/proj_api.h/proj.h/; configure; make all; make test is feasible, then the relevant project is probably not viable anyway...

@stale
Copy link

stale bot commented Jan 8, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Jan 8, 2020
@kbevers kbevers added the pinned Prevent stale-bot from closing an issue label Jan 8, 2020
@stale stale bot removed the wontfix label Jan 8, 2020
kbevers added a commit to kbevers/PROJ that referenced this issue Jan 23, 2020
Removes proj_api.h from the public API. The contents of the header file
has been moved to proj_internal.h verbatim and any references to
proj_api.h has been changed to proj_internal.h.

The documentation of proj_api.h has been removed from both sphinx and
the ancient pj_init.3 man-file. The only exception to this is the API
migration guides which still mention the old API.

Fixes OSGeo#837
@kbevers kbevers mentioned this issue Jan 23, 2020
4 tasks
kbevers added a commit to kbevers/PROJ that referenced this issue Jan 23, 2020
Removes proj_api.h from the public API. The contents of the header file
has been moved to proj_internal.h verbatim and any references to
proj_api.h has been changed to proj_internal.h.

The documentation of proj_api.h has been removed from both sphinx and
the ancient pj_init.3 man-file. The only exception to this is the API
migration guides which still mention the old API.

Fixes OSGeo#837
@kbevers kbevers modified the milestones: 7.0.0, 8.0.0 Jan 23, 2020
kbevers added a commit to kbevers/PROJ that referenced this issue Nov 1, 2020
Removes proj_api.h from the public API. The contents of the header file
has been moved to proj_internal.h verbatim and any references to
proj_api.h has been changed to proj_internal.h.

The documentation of proj_api.h has been removed from both sphinx and
the ancient pj_init.3 man-file. The only exception to this is the API
migration guides which still mention the old API.

Fixes OSGeo#837
kbevers added a commit to kbevers/PROJ that referenced this issue Nov 1, 2020
Removes proj_api.h from the public API. The contents of the header file
has been moved to proj_internal.h verbatim and any references to
proj_api.h has been changed to proj_internal.h.

The documentation of proj_api.h has been removed. The only exception to
this is the API migration guides which still mention the old API.

Fixes OSGeo#837
@kbevers kbevers mentioned this issue Nov 1, 2020
13 tasks
kbevers added a commit to kbevers/PROJ that referenced this issue Nov 14, 2020
Removes proj_api.h from the public API. The contents of the header file
has been moved to proj_internal.h verbatim and any references to
proj_api.h has been changed to proj_internal.h.

The documentation of proj_api.h has been removed. The only exception to
this is the API migration guides which still mention the old API.

Fixes OSGeo#837
kbevers added a commit to kbevers/PROJ that referenced this issue Nov 14, 2020
Removes proj_api.h from the public API. The contents of the header file
has been moved to proj_internal.h verbatim and any references to
proj_api.h has been changed to proj_internal.h.

The documentation of proj_api.h has been removed. The only exception to
this is the API migration guides which still mention the old API.

Fixes OSGeo#837
kbevers added a commit to kbevers/PROJ that referenced this issue Nov 20, 2020
Removes proj_api.h from the public API. The contents of the header file
has been moved to proj_internal.h verbatim and any references to
proj_api.h has been changed to proj_internal.h.

The documentation of proj_api.h has been removed. The only exception to
this is the API migration guides which still mention the old API.

Fixes OSGeo#837
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pinned Prevent stale-bot from closing an issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants