I agree that the way you want to do packaging is fundamentally incompatible with build systems that do not resemble distutils. Perhaps since this is distutils sig some here are too used to distutils as the only model of how packaging might work. Beware that, when fighting monsters, you yourself do not become a monster... for when you gaze long into the abyss. The abyss gazes also into you.

I suggest letting the pep go provisional. If open source publishers, who are highly motivated to produce useful free software, are suddenly also motivated to publish broken build systems, and if you can't vote with your feet by picking an alternative package, then demote the pep.


On Thu, Aug 17, 2017, 21:52 12345 67890 <xoviat@gmail.com> wrote:

All:

 

After reviewing the PEP, I personally feel that it relies too much on the backend Doing The Right Thing. As it currently stands, it is my understanding that the build backend is called in the source directory and is then responsible for handling the entire process to build a compliant wheel. In a PEP 517 world, the build backends may be poorly written initially and may not fully comply with the PEP’s goal to produce the same wheel that would be produced from an sdist.

 

Current process:

 

  • Frontend calls backend in source directory build-wheel

 

Proposed process:

  • Frontend copies source tree to temporary directory
  • Frontend invokes build-sdist to build an sdist
  • Frontend extracts sdist to new temporary directory
  • Frontend reloads backend from sdist directory and invokes build-wheel

 

The proposed process is more computationally intensive, but moves compliance logic out of the build backend. In addition, we can make some modifications based on this proposed process:

 

  • Remove parameter for build_dir in build_wheel since it is always the current directory
  • Optimization: add new parameter to build_sdist called copy_extra, that when set to false, only includes files in sdist needed to build a  wheel.
  • Specify that build_wheel should fail if PKG-INFO is not present so that it is always invoked in an sdist

 

I realized that I may have pushed to have this completed earlier, but I agree with Donald that we need to enforce a process rather than hoping for the best.

 

 

Regards,

 

 

xoviat

_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig