[Distutils] abstract build system approaches redux

Nick Coghlan ncoghlan at gmail.com
Thu Mar 3 09:11:39 EST 2016


On 3 March 2016 at 23:44, Donald Stufft <donald at stufft.io> wrote:
> * We make it easier to use a non Python based build system. This is also a nice
>   thing, however I don't think it should be a major decider in what API we
>   provide. Any reasonable build system is going to have to be available via
>   ``pip install`` in some fashion, so even if you write your build system in
>   Go or Rust, you're going to have to create a Python package for it anyways,
>   and if you're doing that, adding a tiny shim is pretty trivial, something
>   like:
>
>     import os.path
>     import subprocess
>
>     BIN = os.path.join(os.path.dirname(__file__), "mytool")
>
>     def some_api_function(*args, **kwargs):
>         flags = convert_args_kwargs_to_flags(*args, **kwargs)
>         subprocess.run(BIN, *flags, check=True)
>
>   I don't believe it to be a substantial burden to need to write a tiny wrapper
>   if you're going to do something which I believe is going to be very unlikely.

Ah, you're right, I hadn't accounted for the fact the same shim that
makes a non-Python tool installable as a build dependency could also
handle the adaptation from a Python API to a CLI or FFI based
approach, so putting the standardised interface in Python doesn't
raise any insurmountable barriers to cross-language interoperability -
they just move the additional complexity to the less common case.

Given that, I'm going to go back to reserving judgement on *all* of
the points Robert mentioned, at least until you've had a chance to
finish writing up your own proposal - the determining factor I thought
I had found turned out not to be so determining after all :)

Regards,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Distutils-SIG mailing list