- 15 Sep, 2022 2 commits
-
-
Evili del Rio authored
Signed-off-by:
Evili del Rio <evili@iiia.csic.es>
-
Evili del Rio authored
-
- 07 Sep, 2022 3 commits
-
-
Ed Morley authored
GUS-W-11716181.
-
Ed Morley authored
Since: - The test is currently failing due to https://www.mercurial-scm.org being down, and there aren't many/any other decent testcase alternatives, since so few projects use Mercurial these days (and we also need a testcase that's quick to install and doesn't need additional system libs). - All the test is really testing is that (a) the Mercurial binary is installed in the stack image, (b) that we haven't messed up the `PATH` passed to pip, (c) that Pip doesn't have a regression with Mercurial VCS support. However (a) isn't really a concern of this buildpack, (b) is still tested via the Git testcase, and (c) is unlikely/really an upstream concern (it's not viable/a good use of our time to try and replicate pip's test suite ourselves). GUS-W-11716181.
-
- 06 Sep, 2022 2 commits
- 02 Sep, 2022 2 commits
-
-
dependabot[bot] authored
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.11.1 to 2.12.1. - [Release notes](https://github.com/rubocop/rubocop-rspec/releases) - [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.11.1...v2.12.1 ) --- updated-dependencies: - dependency-name: rubocop-rspec dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by:
dependabot[bot] <support@github.com> Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
dependabot[bot] authored
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.32.0 to 1.36.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.32.0...v1.36.0 ) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by:
dependabot[bot] <support@github.com> Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
- 17 Aug, 2022 2 commits
-
-
Ed Morley authored
-
Ed Morley authored
On Heroku, the application source directory exists at a different path at build time (`/tmp/build_<hash>`), than it does at runtime (`/app`). As such, the buildpack has to perform path rewriting via `.profile.d` scripts at runtime, to ensure any packaging related absolute paths in the build output are rewritten to reference the new path. (Thankfully this awful path rewriting will no longer be necessary in the future with CNBs.) Previously the only files this path rewriting needed to update were the `*.pth` and `*.egg-link` files in `site-packages` created by setuptools when performing editable installs. However setuptools v64 added support for PEP660 based editable install hooks: https://setuptools.pypa.io/en/latest/history.html#v64-0-0 https://peps.python.org/pep-0660/ This feature is only used for projects that have a `pyproject.toml`, and for such projects, [if the config is deemed complex enough](https://github.com/pypa/setuptools/blob/d03da04e024ad4289342077eef6de40013630a44/setuptools/command/editable_wheel.py#L359-L368), setuptools creates a new [finder script](https://github.com/pypa/setuptools/blob/23d455c532fca91e6f00aa5950000739b058b6e5/setuptools/command/editable_wheel.py#L740-L809) in `site-packages` that dynamically handles package resolution. (Simpler configs get a static `.pth` file, which works fine with our existing path rewriting.) This new file embeds the absolute path of the source directory at build time, so must be rewritten too. It has a filename of form: `__editable___my_package_0_0_1_finder.py` As such, this PR adds support for rewriting these files, along with updated test fixtures to provide coverage of `pyproject.toml` based editable installs (alongside the existing `setup.py` based test fixture). Whilst writing the new test, I encountered a difference in behaviour with setuptool's new editable install mode, which meant the fixtures had to be nested inside a `packages/` directory in order to avoid an `ImportError` due to the fact that the Python buildpack currently sets `PYTHONPATH=/app` at runtime. See: https://github.com/pypa/setuptools/issues/3535 Note: - The Python buildpack doesn't yet globally install this newer setuptools v64 release, since by design it pins to a specific version to prevent upstream changes from breaking apps overnight. (The version was recently updated to 63.4.3 in #1344.) - However, for packages that have a `pyproject.toml` pip uses the approach described in PEP518, which uses an [isolated build environment](https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/#build-isolation ). This environment typically pulls in latest setuptools (though this is controllable by the package owner via `[build-system]` in `pyproject.toml`), overriding our pinned global setuptools install. - As such, even though we're not using v64 globally, users can still be broken by the upstream release. A big thanks to @mrcljx for the initial PR in #1355 on which this was based :-) Closes #1355. GUS-W-11608693. Co-authored-by:
Marcel Jackwerth <marceljackwerth@gmail.com>
-
- 16 Aug, 2022 4 commits
-
-
Ed Morley authored
Python 3.4, 3.5 and 3.6 have all reached end-of-life upstream, so we should display a warning when they are used: https://devguide.python.org/versions/#supported-versions The existing EOL warning for Python 2.7 has been improved. Lastly, a deprecation warning is now shown for builds using the beta/unmaintained PyPy support. The PyPy versions available on Heroku are outdated and insecure, and PyPy usage represents less than 0.01% of builds on the platform. GUS-W-8813901. GUS-W-11603084. GUS-W-11605715.
-
Ed Morley authored
To clean it up slightly. (Split out of the next PR to reduce its size)
-
Ed Morley authored
So we're testing Python versions that are a bit more recent.
-
Ed Morley authored
These should have been updated as part of previous releases, to match the actual default versions (and the versions documented on Dev Center).
-
- 15 Aug, 2022 8 commits
-
-
Ed Morley authored
-
Ed Morley authored
Previously Pipenv builds would include a stray error message in the log output, that didn't affect the result of the build, but added noise to the logs and gave the false impression the build was broken in some way: ``` cp: cannot stat '/tmp/build_a123c0456/requirements.txt': No such file or directory ``` This originated from the check of `requirements.txt` changes compared to the copy of the file seen in the last build. This check is only necessary when using Pip (and not Pipenv), so should always have been skipped. Now that the check is fixed, the disabling of bash exit on error mode for part of `bin/steps/python` can more easily be removed, increasing coverage of such issues in the future. Fixes #1270. GUS-W-7924941.
-
Ed Morley authored
Updates (for Python 3.7+ only): - pip from 22.1.2 to 22.2.2 - setuptools from 60.10.0 to 63.4.3 Changelogs: https://pip.pypa.io/en/stable/news/#v22-2-2 https://setuptools.pypa.io/en/latest/history.html#v63-4-3 Full changes: https://github.com/pypa/pip/compare/21.1.2...22.2.2 https://github.com/pypa/setuptools/compare/v60.10.0...v63.4.3 GUS-W-11592987. GUS-W-11592988.
-
Ed Morley authored
Since: * `InsecurePlatformWarning` only affects Python versions that are no longer available on the current stacks. * `scipy` can be installed, so the warning about it not being compatible is wrong. * `six`/`distribute` are no longer installed automatically, so those warnings are wrong. GUS-W-11594475.
-
Ed Morley authored
Since: - there are many invalid styles of requirements specifiers users can use, and we don't special-case metrics for any of the others - the `==0.0.0` case is an old issue due to an Ubuntu quirk that doesn't occur much any more now - metrics aren't working at the moment anyway, until we implement `bin/report` for Honeycomb
-
Ed Morley authored
Since: - the error has been in place since Nov 2020 (#1115), so the vast majority of apps/users will have already seen it - even without this explicit check, if a GDAL install fails we still print the standard instructions via the warnings system: https://github.com/heroku/heroku-buildpack-python/blob/5f896a434c29c6835395083503f4768457e9adc1/bin/warnings#L49-L58 https://github.com/heroku/heroku-buildpack-python/blob/5f896a434c29c6835395083503f4768457e9adc1/spec/hatchet/pip_spec.rb#L227-L240 GUS-W-11593037.
-
Ed Morley authored
Since: - the version check was pretty broken (only matches against that exact requirements file version syntax, plus doesn't check unpinned but still outdated version etc) - it only warned for Django 1.x, when there are lots of other EOL Django versions since then - it feels inconsistent for us to warn about one framework being EOL when there are lots of other packages and frameworks out there that should also be kept up to date too -- that's best handled by services like Dependabot security alerts etc If at such time in the future our Django collectstatic feature requires a specific version of Django, any version checking/warning should occur as part of that feature. GUS-W-11593026.
-
Ed Morley authored
Deadcode leftover from #925.
-
- 02 Aug, 2022 3 commits
-
-
Ed Morley authored
GUS-W-11532135.
-
dependabot[bot] authored
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.30.0 to 1.32.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.30.0...v1.32.0 ) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
- 04 Jul, 2022 1 commit
-
-
Evili del Rio authored
-
- 14 Jun, 2022 1 commit
-
-
Ed Morley authored
GUS-W-11283397.
-
- 13 Jun, 2022 2 commits
-
-
Ed Morley authored
In the shimmed CNBs used in `heroku/builder` we have been seeing quite a few transient errors related to buildpacks downloading from S3. Adding appropriate retries and connection timeouts to all of our buildpack's curl usages should help with these, as well as make builds more reliable in general for users on Heroku, plus also anyone using a shimmed CNB locally with Pack CLI (where the network connection may be even less reliable). The `--retry-connrefused` has been used since otherwise curl doesn't retry cases where the connection was refused. Ideally we would use `--retry-all-errors` which takes that one step further, however that option was only added in curl 7.71, so is only supported by Heroku-22+. I've intentionally not added `--max-time` to usages within buildpack compile, since otherwise users running the buildpack locally on slow connections may permanently hit timeouts (and timeouts mid-download occur so rarely it's not worth the hassle of making this configurable). For more on curl options, see: https://curl.se/docs/manpage.html GUS-W-11283397.
-
Ed Morley authored
Whilst the global S3 endpoint (`s3.amazonaws.com`) still works, AWS now recommends using the appropriate regional endpoint to access the bucket: https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#s3-legacy-endpoints Our buildpack buckets are in `us-east-1`, whose regional domain is `*.s3.us-east-1.amazonaws.com`: https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region GUS-W-11283397.
-
- 07 Jun, 2022 2 commits
-
-
Ed Morley authored
GUS-W-11258457.
-
Ed Morley authored
https://blog.python.org/2022/06/python-3105-is-available_6.html https://www.python.org/downloads/release/python-3105/ This release the first 3.10.x Heroku Python release that makes use of the updated build scripts that were first introduced with the recent Python 3.9.13 release. Changes include now using a shared build, stripped binaries and other build size-reduction improvements. GUS-W-10333178.
-
- 06 Jun, 2022 1 commit
-
-
Ed Morley authored
Applies to Python 3.7+ only, since all older Pythons are EOL and so are already on much older pip due to pip having dropped support for them some time ago. Changes: https://pip.pypa.io/en/stable/news/#v22-1-2 https://github.com/pypa/pip/compare/22.0.4...22.1.2 GUS-W-11228793.
-
- 02 Jun, 2022 2 commits
-
-
Evili del Rio authored
Signed-off-by:
Evili del Rio <evili@iiia.csic.es>
-
Evili del Rio authored
-
- 01 Jun, 2022 2 commits
-
-
dependabot[bot] authored
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.10.0 to 2.11.1. - [Release notes](https://github.com/rubocop/rubocop-rspec/releases) - [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.10.0...v2.11.1 ) --- updated-dependencies: - dependency-name: rubocop-rspec dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
dependabot[bot] authored
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.29.1 to 1.30.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.29.1...v1.30.0 ) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
- 24 May, 2022 1 commit
-
-
Ed Morley authored
Adds binary generation and testing support for Heroku-22. Runtime version support for Heroku-22 is as follows: * Python 3.6 and older: Not supported since EOL. * Python 3.7/3.8: Not supported since: - they are in the security-fix-only phase of their lifecycle - they reach EOL in 2023-06 and 2024-10 respectively, which is well before the EOL date of Heroku-22 - upgrading from 3.7/3.9 to 3.9 is in most cases trivial, and so we should be encouraging users to upgrade. * Python 3.9: Only 3.9.12+ is supported. * Python 3.10: Only 3.10.4+ is supported. * PyPy: Not supported, since is deprecated, was only ever a beta feature, the PyPy versions available for Heroku-18/20 are significantly out of date, and usage is virtually non-existent. The `force_absolute_paths_buildpack` usage in tests has been removed since: * Heroku-22 no longer includes Ruby in the stack image, and that buildpack was implemented in Ruby rather than bash. * That buildpack doesn't really add any value over just checking that things we put on the `PATH` (such as Python) can actually be used, which the existing tests already do. GUS-W-10343718.
-
- 18 May, 2022 2 commits
-
-
Ed Morley authored
To reduce the churn from constant testing/linting-only Ruby dependency updates. https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#scheduleinterval
-
dependabot[bot] authored
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.29.0 to 1.29.1. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.29.0...v1.29.1 ) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-