Context
setuptools 82.0.0 removed pkg_resources from its distribution (see https://setuptools.pypa.io/en/stable/history.html#v82-0-0).
The fs (pyfilesystem2) package still uses pkg_resources for namespace package declarations in its __init__.py:
__import__("pkg_resources").declare_namespace(__name__)
This causes ModuleNotFoundError: No module named 'pkg_resources' whenever code imports from fs, which is used throughout the platform (e.g., lms/djangoapps/courseware/courses.py, xblocks_contrib).
Upstream tracking issue: PyFilesystem/pyfilesystem2#577
Current Workaround
setuptools<82 was added to requirements/constraints.txt in #38067 to unblock the make upgrade run.
Resolution
This constraint can be removed once pyfilesystem2 releases a new version that no longer uses pkg_resources for its namespace package declaration.