[Distutils] library development patterns

Jeremy Stanley fungi at yuggoth.org
Tue Jan 16 15:33:07 EST 2018


On 2018-01-16 19:13:31 +0000 (+0000), Brett Cannon wrote:
> On Tue, 16 Jan 2018 at 11:00 Chris Withers <chris at withers.org> wrote:
[...]
> > I generally use pip install -e . in a checkout to set up a development
> > environment but beyond this I think things branch out a lot:
> >
> > How do you do axis development? (often python version, but can be a
> > major version of a dependency such as django, or operating system, or
> > for the lucky masochists out there: a dot product of each of those...)
> >
> > For me, I use travis-ci coupled with a few local virtualenvs for canary
> > versions. Some people like tox here, I never got on with it.
> >
> 
> This is part of what I would want us to come to a consensus on. For
> example, do people just create a venv per Python version they want to
> test/support, do they use pew or some other tool I don't know about? For VS
> Code we need to know how to detect what Python interpreters you might want
> to use with your workspace/folder so we know what interpreters to present
> to you to select from (and you *have *to select one for when you do things
> like want to execute a file or run tests).
[...]

At least with tox you get this more or less automagically (I know
plenty of people aren't tox fans, but it still merits pointing out).
For those unfamiliar, it has implicit environments defined for minor
(in the SemVer sense) Python versions so your project can define a
list of which versions it's intended to support and then anyone
running it by default gets tests executed under each of those for
which they have a viable interpreter on their path. My local dev
environment includes from-source builds of the latest point release
for each minor Python version my projects intend to support plus the
most recent alpha/beta/rc for the next unreleased Python 3.x, though
I'll admit that keeping up with the various build-deps and
compile-time optimizations for each of them is mildly time-consuming
(as is bootstrapping a new dev environment when the need arises).
-- 
Jeremy Stanley
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20180116/e50ef653/attachment.sig>


More information about the Distutils-SIG mailing list