Chris Withers wrote:
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.
For me, tox is transformative. While there are a couple of usability issues that my clone army seems to be remiss in fixing, for the most part tox is awesome. In fact, I usually don't put any of my test dependencies in setup.py any more; these all go in my tox.ini. It integrates well with flake8, and lets me definite all the various testing matrixes I care about (e.g. all the Python versions w/ and w/o coverage, "qa" environments for flake8, and a "docs" environment for ensuring the docs build (and building them as a nice side benefit). tox of course manages all the venvs nicely, so it's easy to drop into them when necessary. tox doesn't yet play as nicely with flit/pyproject.toml, and I wish tox supported environment groups and null generated environments, but I've mostly found ways around those minor problems.
Then it's "what testrunner do you use?", I'm gradually moving to pytest, but I still have a lot of nose 1.
I have a ton of nose2, which I really like, but I'm gradually moving to pytest too. I'm getting over my cosmetic complaints about pytest, since it really is a very robust framework and does seem to have the most momentum.
As far as build and deployment, again, travis's tag-based deployment model that pushes artifacts to pypi, coupled with readthedocs pull-and-publish works for the things I care about. Then I guess you could talk about issue trackers and, indeed, community discussion channels ;-)
Yep, RTD is pretty darn awesome; I'm a fan of GitLab for various reasons I suppose is off topic for this thread.
I wonder how much of this makes sense to put in a how-to for library developers and where it branches out into areas where there are multiple legitimate choices?
Variation and competition is good; it keeps pushing the state of the art even higher. Some day we'll all be amazing that we used setup.py files for a couple of decades in Python's early history. <wink>. I think that means it's worth at least describing in blog posts and such, but there's not going to be a once-size-fits-all solution. I do love hearing about how others do it, because it gives me the ootz I need to try other alternatives I might like better. -Barry