# Python Buildpack Changelog ## Unreleased - Python 3.8.7 is now available (CPython) (#1122). ## v186 (2020-11-18) - Update the `BUILD_WITH_GEO_LIBRARIES` error message (#1121). - Switch NLTK feature detection away from `sp-grep` (#1119). - Switch Django collectstatic feature detection away from `sp-grep` (#1119). - Remove vendored `sp-grep` script (#1119). - Remove vendored `pip-diff` script (#1118). - Remove vendored `pip-grep` script (#1116). ## v185 (2020-11-12) - Error if the unsupported `BUILD_WITH_GEO_LIBRARIES` env var is set (#1115). - Remove deprecated GDAL/GEOS/PROJ support (#1113). - Remove vendored `jq` binary (#1112). - Remove redundant Mercurial install step (#1111). - Remove support for the Cedar-14 stack (#1110). ## v184 (2020-10-21) - Vendor buildpack-stdlib instead of fetching from S3 (#1100). - Fix metric names for metrics emitted within `sub_env` (#1099). ## v183 (2020-10-12) - Add support for Heroku-20 (#968). ## v182 (2020-10-06) - Python 3.9.0 is now available (CPython) (#1090). - Migrate from the `lang-python` S3 bucket to `heroku-buildpack-python` (#1089). - Remove `vendor/shunit2` (#1086). - Replace `BUILDPACK_VENDOR_URL` and `USE_STAGING_BINARIES` with `BUILDPACK_S3_BASE_URL` (#1085). ## v181 (2020-09-29) - PyPy 2.7 and 3.6, version 7.3.2 are now available (Note: PyPy support is in beta) (#1081). ## v180 (2020-09-24) - Python 3.8.6 is now available (CPython) (#1072). ## v179 (2020-09-23) - Remove duplicate pipenv metric event (#1070). - Emit metrics for how the Python version was chosen for an app (#1069). - Emit Python version metric events for all builds, not just clean installs (#1066). ## v178 (2020-09-07) - Python 3.5.10 is now available (CPython) (#1062). ## v177 (2020-08-18) - Python 3.6.12 and 3.7.9 are now available (CPython) (#1054). - The default Python version for new apps is now 3.6.12 (previously 3.6.11) (#1054). ## v176 (2020-08-12) - Rebuild the Python 3.4.10 archives with the correct version of Python (#1048). - Fix the security update version check message for apps using PyPy (#1040). - Remove `vendor/test-utils` (#1043). ## v175 (2020-08-05) - Update pip from 20.0.2 to 20.1.1 for Python 2.7 and Python 3.5+ (#1030). - Update setuptools from 39.0.1 to: (#1024) - 44.1.1 for Python 2.7 - 43.0.0 for Python 3.4 - 47.1.1 for Python 3.5+ - Switch the `heroku-buildpack-python` repository default branch from `master` to `main` (#1029). ## v174 (2020-07-30) - For repeat builds, also manage the installed versions of setuptools/wheel, rather than just that of pip (#1007). - Install an explicit version of wheel rather than the latest release at the time (#1007). - Output the installed version of pip, setuptools and wheel in the build log (#1007). - Errors installing pip/setuptools/wheel are now displayed in the build output and fail the build early (#1007). - Install pip using itself rather than `get-pip.py` (#1007). - Disable pip's version check + cache when installing pip/setuptools/wheel (#1007). - Install setuptools from PyPI rather than a vendored copy (#1007). - Reduce the number of environment variables exposed to `bin/{pre,post}_compile` and other subprocesses (#1011). ## v173 (2020-07-21) - Python 3.8.5 is now available (CPython). ## v172 (2020-07-17) - Python 3.8.4 is now available (CPython). ## v171 (2020-07-07) - Python 3.6.11 and 3.7.8 are now available (CPython). ## v170 (2020-05-19) - Python 2.7.18, 3.5.9, 3.7.7 and 3.8.3 are now available (CPython). - PyPy 2.7 and 3.6, version 7.3.1 are now available (Note: PyPy support is in beta). - Docs: Fix explanation of runtime.txt generation when using pipenv. - Bugfix: Correctly detect Python version when using a `python_version` of `3.8` in `Pipfile.lock`. ## v169 (2020-04-22) - Add a Hatchet test for python 3.8.2 - Set Code Owners to @heroku/langauges - Bugfix: Caching on subsequent redeploys - Update tests to support latest version of Python ## v168 (2020-04-06) - Doc: Update Readme with version numbers - update Code Owners to include the Heroku Buildpack Maintainers team - Deprecation warning: `BUILD_WITH_GEO_LIBRARIES` is now deprecated. See warning for details. - Clean up build log output - Update Python versions in README to match docs - Django version detection fixed, link updated ## v167 (2020-03-26) - Add failcase for cache busting - Bugfix: Clearing pip dependencies ## v166 (2020-03-05) - Correct ftp to https in vendored file - Warn for Django 1.11 approaching EOL, provide link to roadmap ## v165 (2020-02-27) - Python 3.8.2 now available. ## v164 (2020-02-20) - Update requirements.txt builds to use Pip 20.0.2 - Download get-pip.py to tmpdir instead of root dir ## v163 (2019-12-23) - New pythons released: Python 3.8.1, 3.7.6, 3.6.10 (CPython) Beta Release: Pypy 2.7 and 3.6, version 7.2.0 ## v162 (2019-12-06) - Bug fix: fragile sqlite3 install ## v161 (2019-12-2) - Bug fix: Sqlite3 version bump ## v160 (2019-10-23) - Bugfix: Pipenv no longer installs twice in CI ## v159 (2019-10-22) - Python 2.7.17 now available on Heroku 18 and 16. ## v158 (2019-10-21) - Python 3.7.5 and 3.8.0 now available on Heroku 18 and 16. - Add support for Python 3.8 branch - Sqlite3 Update: - Test Improvements - Add support for staging binary testing ## v157 (2019-09-18) - Typo fixes ## v156 (2019-09-12) - Python 3.6.9 and 3.7.4 now available. - Move get-pip utility to S3 - Build utility and documentation updates - Bump Hatchet tests to point at new default python version. ## v155 (2019-08-22) add docs and make target for heroku-18 bob builds ## v154 (2019-07-17) Fix python 3.5.7 formula actually building 3.7.2 ## v153 (2019-06-21) Hotfix for broken heroku-16 deploys ## v152 (2019-04-04) Python 3.7.3 now available. ## v151 (2019-03-21) Python 3.5.7 and 3.4.10 now available on all Heroku stacks. ## v150 (2019-03-13) Python 2.7.16 now available on all Heroku stacks. ## v149 (2019-03-04) Hotfix for broken Cedar 14 deploys ## v148 (2019-02-21) No user facing changes, improving internal metrics ## v147 (2019-02-07) Python 3.7.2 and 3.6.8 now available on all Heroku stacks. ## v146 (2018-11-11) Python 3.7.1, 3.6.7, 3.5.6 and 3.4.9 now available on all Heroku stacks. ## v145 (2018-11-08) Testing and tooling expanded to better support new runtimes ## v144 (2018-10-10) Switch to cautious upgrade for Pipenv install to ensure the pinned pip version is used with Pipenv ## v143 (2018-10-09) Add support for detecting `SLUGIFY_USES_TEXT_UNIDECODE`, which is required to install Apache Airflow version 1.10 or higher. ## v142 (2018-10-08) Improvements to Python install messaging ## v139, 140, 141 No user-facing changes, documenting for version clarity ## v138 (2018-08-01) Use stack image SQLite3 instead of vendoring ## v137 (2018-07-17) Prevent 3.7.0 from appearing as unsupported in buildpack messaging. ## v136 (2018-06-28) Upgrade to 3.6.6 and support 3.7.0 on all runtimes. ## v135 (2018-05-29) Upgrade Pipenv to v2018.5.18. ## v134 (2018-05-02) Default to 3.6.5, bugfixes. ## v133 Fixes for Pip 10 release. ## v132 Improve pip installation, with the release of v9.0.2. ## v131 Fix bug with pip. ## v130 Better upgrade strategy for pip. ## v129 Don't upgrade pip (from v128). ## v128 Upgrade pip, pin to Pipenv v11.8.2. ## v127 Pin to Pipenv v11.7.1. ## v126 Bugfixes. ## v125 Bugfixes. ## v124 Update buildpack to automatically install `[dev-packages]` during Heroku CI Pipenv builds. - Skip installs if Pipfile.lock hasn't changed, and uninstall stale dependencies with Pipenv. - Set `PYTHONPATH` during collectstatic runs. - No longer warn if there is no `Procfile`. - Update Pipenv's "3.6" runtime specifier to point to "3.6.4". ## v123 Update gunicorn `init.d` script to allow overrides. ## v122 Update default Python to v3.6.4. ## v121 Update default Python to v3.6.3. ## v120 Use `$ pipenv --deploy`. ## v119 Improvements to Pipenv support, warning on unsupported Python versions. - We now warn when a user is not using latest 2.x or 3.x Python. - Heroku now supports `[requires]` `python_full_version` in addition to `python_version`. ## v118 Improvements to Pipenv support. ## v117 Bug fix. ## v116 Vendoring improvements. - Geos libraries should work on Heroku-16 now. - The libffi/libmemcached vendoring step is now skipped on Heroku-16 (since they are installed in the base image). ## v115 Revert a pull request. - No longer using `sub_env` for `pip install` step. ## v114 - Bugfixes. Blacklisting `PYTHONHOME` and `PYTHONPATH` for older apps. Upgrades to nltk support. ## v113 Updates to Pipenv support. ## v112 Bugfix. - Fixed grep output bug. ## v111 Linting, bugfixes. ## v110 Update default Python to 3.6.2. ## v109 Update Default Python to 3.6.1, bugfixes. - Fixed automatic pip uninstall of dependencies removed from requirements.txt. ## v108 Fix output for collectstatic step. ## v107 Bugfix for C dependency installation. ## v106 Don't install packages that could mess up packaging. - The Python buildpack will automatically remove `six`, `pyparsing`, `appdirs`, `setuptools`, and `distribute` from a `requirements.txt` file now, as these packages are provided by the Python buildpack. ## v105 Improvements to output messaging. ## v104 General improvements. - Fix for Heroku CI. - Use `pkg_resources` to check if a distribution is installed instead of parsing `requirements.txt`. ([#395][395]) [395]: https://github.com/heroku/heroku-buildpack-python/pull/395 ## v103 Bug fixes and improvements. - Fix for Pipenv. - Fix for Heroku CI. - Improve handling of `WEB_CONCURRENCY` when using multiple buildpacks. - Adjust environment variables set during the build to more closely match those in the dyno environment (`DYNO` is now available, `STACK` is not). - Restore the build cache prior to running bin/pre_compile. ## v102 Buildpack code cleanup. - Improved messaging around NLTK. ## v101 Updated setuptools installation method. - Improved pipenv support. ## v100 Preliminary pipenv support. ## v99 Cleanup. ## v98 Official NLTK support and other improvements. - Support for `nltk.txt` file for declaring corpora to be downloaded. - Leading zeros for auto-set `WEB_CONCURRENCY`. ## v97 Improved egg-link functionality. ## v96 Bugfix. ## v95 Improved output support. ## v94 Improved support for PyPy. ## v93 Improved support for PyPy. ## v92 Improved cache functionality and fix egg-links regression. ## v91 Bugfix, rolled back to v88. ## v90 Bugfix. ## v89 Improved cache functionality and fix egg-links regression. ## v88 Fixed bug with editable pip installations. ## v87 Updated default Python 2.7.13. - Python 2.7.13 uses UCS-4 build, more compatible with linux wheels. - Updated setuptools to v32.1.0. ## v86 Refactor and multi-buildpack compatibility. ## v85 Packaging fix. ## v84 Updated pip and setuptools. - Updated pip to v9.0.1. - Updated setuptools to v28.8.0. ## v83 Support for Heroku CI. - Cffi support for argon2 ## v82 (2016-08-22) Update to library detection mechanisms (pip-pop). - Updated setuptools to v25.5.0 ## v81 (2016-06-28) Updated default Python to 2.7.11. - Updated pip to v8.1.2. - Updated setuptools to v23.1.0. ## v80 (2016-04-05) Improved pip-pop compatibility with latest pip releases. ## v79 (2016-03-22) Compatibility improvements with heroku-apt-buildpack. ## v78 (2016-03-18) Added automatic configuration of Gunicorn's `FORWARDED_ALLOW_IPS` setting. Improved detection of libffi dependency when using bcrypt via `Django[bcrypt]`. Improved GDAL support. - GDAL dependency detection now checks for pygdal and is case-insensitive. - The vendored GDAL library has been updated to 1.11.1. - GDAL bootstrapping now also installs the GEOS and Proj.4 libraries. Updated pip to 8.1.1 and setuptools to 20.3. ## v77 (2016-02-10) Improvements to warnings and minor bugfix. ## v76 (2016-02-08) Improved Django collectstatic support. - `$ python manage.py collectstatic` will only be run if `Django` is present in `requirements.txt`. - If collectstatic fails, the build fails. Full traceback is provided. - `$DISABLE_COLLECTSTATIC`: skip collectstatic step completely (not new). - `$DEBUG_COLLECTSTATIC`: echo environment variables upon collectstatic failure. - Updated build output style. - New warning for outdated Python (via pip `InsecurePlatform` warning). ## v75 (2016-01-29) Updated pip and Setuptools. ## v74 (2015-12-29) Added warnings for lack of Procfile. ## v72 (2015-12-07) Updated default Python to 2.7.11. ## v72 (2015-12-03) Added friendly warnings for common build failures. ## v70 (2015-10-29) Improved compatibility with multi and node.js buildpacks. ## v69 (2015-10-12) Revert to v66. ## v68 (2015-10-12) Fixed `.heroku/venv` error with modern apps. ## v67 (2015-10-12) Further improved cache compatibility with multi and node.js buildpacks. ## v66 (2015-10-09) Improved compatibility with multi and node.js buildpacks. ## v65 (2015-10-08) Reverted v64. ## v64 (2015-10-08) Improved compatibility with multi and node.js buildpacks. ## v63 (2015-10-08) Updated Pip and Setuptools. - Setuptools updated to v18.3.2 - Pip updated to v7.1.2 ## v62 (2015-08-07) Updated Pip and Setuptools. - Setuptools updated to v18.1 - Pip updated to v7.1.0 ## v61 (2015-06-30) Updated Pip and Setuptools. - Setuptools updated to v18.0.1 - Pip updated to v7.0.3 ## v60 (2015-05-27) Default Python is now latest 2.7.10. Updated Pip and Distribute. - Default Python version is v2.7.10 - Setuptools updated to v16.0 - Pip updated to v7.0.1