Additional command line options via python -mbuild?

I’m sure you saw it as you replied there, but for others’ benefit, this was one of the issues brought up in the recent User experience with porting off setup.py thread and the latter sections of the linked blog post. The general consensus there as well was in favor of environment variables.

Not sure if there’s something motivating supporting that specific version, but for reference:

  • Python 2.7 support was only dropped in Setuptools 45
  • Python 3.4 support dropped in Setuptools 44
  • Python 3.5 support dropped in Setuptools 51
  • Python 3.6 support dropped in 59.7.0.

And in terms of features and fixes:

  • Setuptools 40.8.0 is the minimum that properly supports PEP 517 (as it adds the build_meta:__legacy__ fallback backend)
  • 40.9.0 adds support for setup.cfg-only projects
  • 42.0.0 has more or less complete support for declarative metadata in setup.cfg
  • 43.0.0 adds pyproject.toml to the sdist by default
  • The intervening versions between 40.5.0 and 43 fix numerous PEP 517/pyproject build related bugs and issues

Therefore, using Setuptools 43.0.0 as a minimum has basic support for modern standards and workflows, while still fully supporting as early as Python 2.7 and 3.4. In fact, you could get all the way to 59.6.0 while still support Python 3.6 (though unfortunately that doesn’t quite get you pyproject metadata support).

1 Like