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 deprecated GDAL/GEOS/PROJ support #1113

Merged
merged 1 commit into from
Nov 11, 2020
Merged

Conversation

edmorley
Copy link
Member

The standalone Geo buildpack offers more modern GDAL/GEOS/PROJ library versions, and can be used by apps in all languages, not just Python:
https://github.com/heroku/heroku-geo-buildpack

As such the Python buildpack's undocumented built-in support was deprecated back in April 2020, with a scheduled removal date of 6th October 2020:
https://devcenter.heroku.com/changelog-items/1759
https://help.heroku.com/D5INLB1A/python-s-build_with_geo_libraries-legacy-feature-is-now-deprecated

Metrics show very few builds continuing to use the built-in support.

Apps with the BUILD_WITH_GEO_LIBRARIES env var set will now be shown a warning directing them to the standalone buildpack, as well as apps that hit GDAL related pip install errors but aren't using the env var.

This also moves us one step closer to being able to remove the vendored copy of pip-pop (which is partially broken on newer pip).

The .heroku/vendor paths have been left in LIBRARY_PATH and related, in order to prevent breakage from buildpacks that vendor libraries there but fail to correct set their own environment variables. These will be cleaned up in the future to reduce the number of moving parts in one PR.

Closes W-7654424.

The standalone Geo buildpack offers more modern GDAL/GEOS/PROJ library
versions, and can be used by apps in all languages, not just Python:
https://github.com/heroku/heroku-geo-buildpack

As such the Python buildpack's undocumented built-in support was
deprecated back in April 2020, with a scheduled removal date of
6th October 2020:
https://devcenter.heroku.com/changelog-items/1759
https://help.heroku.com/D5INLB1A/python-s-build_with_geo_libraries-legacy-feature-is-now-deprecated

Metrics show very few builds continuing to use the built-in support.

Apps with the `BUILD_WITH_GEO_LIBRARIES` env var set will now be shown a
warning directing them to the standalone buildpack, as well as apps that
hit GDAL related pip install errors but aren't using the env var.

This also moves us one step closer to being able to remove
the vendored copy of pip-pop (which is partially broken on
newer pip).

Closes @W-7654424@.
@edmorley edmorley self-assigned this Nov 10, 2020
@edmorley edmorley marked this pull request as ready for review November 10, 2020 17:32
@edmorley edmorley requested a review from a team as a code owner November 10, 2020 17:32
@edmorley
Copy link
Member Author

edmorley commented Nov 11, 2020

Proposed changelog post:

Title: Python buildpack legacy GEO/GDAL/PROJ support removed

The Python buildpack's [previously deprecated](https://devcenter.heroku.com/changelog-items/1759)
GEO/GDAL/PROJ (`BUILD_WITH_GEO_LIBRARIES`) support has now been removed.

If your app requires these libraries and has not yet started using the
[Heroku Geo Buildpack](https://github.com/heroku/heroku-geo-buildpack), please see
[the migration guide](https://help.heroku.com/D5INLB1A/python-s-build_with_geo_libraries-legacy-feature-is-now-deprecated).

@edmorley edmorley merged commit 42076f1 into main Nov 11, 2020
@edmorley edmorley deleted the rm-geo-gdal-support branch November 11, 2020 12:39
edmorley added a commit that referenced this pull request Nov 11, 2020
The `BUILD_WITH_GEO_LIBRARIES` feature was removed in the previous PR,
and replaced with a warning that the feature is no longer supported.

After further thought I believe it would be best to make this warning
fatal, to prevent unexpected failures at runtime, if consumers of the
library either aren't invoked during the build, or were previously
installed/cached and were dynamically linked against the library.

Continuation of #1113 / @W-7654424@.
edmorley added a commit that referenced this pull request Nov 11, 2020
The `BUILD_WITH_GEO_LIBRARIES` feature was removed in the previous PR,
and replaced with a warning that the feature is no longer supported.

After further thought I believe it would be best to make this warning
fatal, to prevent unexpected failures at runtime, if consumers of the
library either aren't invoked during the build, or were previously
installed/cached and were dynamically linked against the library.

Continuation of #1113 / @W-7654424@.
@edmorley edmorley mentioned this pull request Nov 12, 2020
edmorley added a commit that referenced this pull request Nov 12, 2020
Since the last usage was removed in #1113, and pip-grep is actually
broken on newer pip anyway (though helpfully silently ignores
exceptions, so one wouldn't know).

This is the first of the pip-pop removals, the rest will follow as the
last usages are switched over.

Whilst this tool was intended for internal buildpack usage only, the
vendor directory is on `PATH`, so I've documented the removal in
CHANGELOG just in case.

Refs W-8208817.
edmorley added a commit that referenced this pull request Nov 12, 2020
Since the last usage was removed in #1113, and pip-grep is actually
broken on newer pip anyway (though helpfully silently ignores
exceptions, so one wouldn't know).

This is the first of the pip-pop removals, the rest will follow as the
last usages are switched over.

Whilst this tool was intended for internal buildpack usage only, the
vendor directory is on `PATH`, so I've documented the removal in
CHANGELOG just in case.

Refs @W-8208817@.
dryan pushed a commit to dryan/heroku-buildpack-python that referenced this pull request Nov 19, 2020
The standalone Geo buildpack offers more modern GDAL/GEOS/PROJ library
versions, and can be used by apps in all languages, not just Python:
https://github.com/heroku/heroku-geo-buildpack

As such the Python buildpack's undocumented built-in support was
deprecated back in April 2020, with a scheduled removal date of
6th October 2020:
https://devcenter.heroku.com/changelog-items/1759
https://help.heroku.com/D5INLB1A/python-s-build_with_geo_libraries-legacy-feature-is-now-deprecated

Metrics show very few builds continuing to use the built-in support.

Apps with the `BUILD_WITH_GEO_LIBRARIES` env var set will now be shown a
warning directing them to the standalone buildpack, as well as apps that
hit GDAL related pip install errors but aren't using the env var.

This also moves us one step closer to being able to remove
the vendored copy of pip-pop (which is partially broken on
newer pip).

Closes @W-7654424@.
dryan pushed a commit to dryan/heroku-buildpack-python that referenced this pull request Nov 19, 2020
The `BUILD_WITH_GEO_LIBRARIES` feature was removed in the previous PR,
and replaced with a warning that the feature is no longer supported.

After further thought I believe it would be best to make this warning
fatal, to prevent unexpected failures at runtime, if consumers of the
library either aren't invoked during the build, or were previously
installed/cached and were dynamically linked against the library.

Continuation of heroku#1113 / @W-7654424@.
dryan pushed a commit to dryan/heroku-buildpack-python that referenced this pull request Nov 19, 2020
Since the last usage was removed in heroku#1113, and pip-grep is actually
broken on newer pip anyway (though helpfully silently ignores
exceptions, so one wouldn't know).

This is the first of the pip-pop removals, the rest will follow as the
last usages are switched over.

Whilst this tool was intended for internal buildpack usage only, the
vendor directory is on `PATH`, so I've documented the removal in
CHANGELOG just in case.

Refs @W-8208817@.
edmorley added a commit that referenced this pull request Sep 30, 2024
Since the buildpack hasn't vendored anything in it since 2020:
#1113
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants