Important Update on setuptools: Pinning The Version Below 80.0.0

As of version 80.0.0, the Python package setuptools has introduced a breaking change that may affect your Python Functions. All Python Functions rely on setuptools at this time - it is crucial to take immediate action to ensure compatibility and stability.

What Changed in Setuptools 80.0.0?

The latest release of setuptools version 80.0.0 removes support for easy_install that disrupts the existing Python Functions workflow. These changes can will lead to this error when building: Unexpected failure in task condaDevelop.

Recommended Actions

To mitigate potential issues, we advise pinning the version of setuptools to <=79.0.1 in your meta.yaml file. This ensures that your environment remains stable and continues to function as expected. Additionally, we recommend avoiding the inclusion of the packaging package in your build section, if able.

Example meta.yaml

Below is an example of how you should configure your meta.yaml file to reflect these recommendations:

...

requirements:
  build:
    - python
    - setuptools <=79.0.1
  run:
    - python
    - functions-python-api
    - setuptools <=79.0.1
build:
  noarch: python
  script: python setup.py install --single-version-externally-managed --record=record.txt

...

Key Points

  • Pin Setuptools Version: Ensure that both the build and run sections of your meta.yaml file specify setuptools <=79.0.1. This prevents automatic upgrades to version >=80.0.0 , introducing breaking changes.
  • Optionally, exclude packaging from Build: Refrain from including the packaging package in the build section of your meta.yaml to avoid potential conflicts.
2 Likes