pyctdev application (i.e. can run "pyctdev ..." or "python -m
pyctdev" ... rather than doit ...). Means dodo.py is optional.
"Regular" and "project" tasks. Project tasks only listed/available
if required project files are present (e.g. package_build requires
setup.cfg and tox.ini). Regular tasks (e.g. draw graph of an
environment) can be run from anywhere .
Support for a limited dry run, printing what will be run (as far
as possible).
Allow tasks to have required arguments at commandline.
better documentation of tasks and params via help. Still needs
work but at least stuff's becoming visible in one place now.
Better support for task dependencies:
command line args will be applied to all tasks that have that
param. Before: "package_build --sdist package_test --sdist";
after: "package_test --sdist" (package_test depends on
package_build). Also, dependencies' params will be "promoted"
so they are visible at commandline.
uptodate checks now have access to command line args for
dependent tasks.
package_test will call package_build if package not already built.
(or if version is dirty).
Conda: support for multiple outputs from one recipe ("split
packages"). (inc declaring deps. and does the run constrained
stuff.)
Conda: support for tests_map: for the envs defined in tox.ini,
which packages should satisfy those tests?
Conda: "provides". I.e. what python imports does each package
provide? (Note: should be added to pip world too in the future.)
Major changes
package_build and package_test are more clearly separated: both
conda and pip backends now build the package first, then test that
built package without first doing any kind of tricky modification
of the package. (Replaces tricky pre-package conda recipe append
mechanism.)
conda package_build now generates a recipe, i.e. no longer requires
template in project. Means projects don't have to duplicate a very
similar template evertwhere. If recipe already exists, it's re-used
unless force overwritten (allowing customization if pyctdev
doesn't support some feature of conda).
Minor
command being run is printed before it's run (previously only
logged afterwards, only if there was a failure)
cleaned up parameters: clearer definitions, less
duplication. Still work to go, but getting better.
Conda: build -> host
Only setup.cfg is supported, not setup.py. (Not a big deal to
support setup.py as well or instead, I just didn't update that
code.)
changes you might need to make to project on upgrading to 0.7
If using v0.5.1 or v0.6.0a6:
No longer need build=wheel in a project's tox.ini; tox is not used
for building packages any more.
All python package names of dependencies (i.e. for import by
python) should be python by default (not e.g. conda). So not
python-graphviz, but graphviz.
Conda: Drop support for multiple recipes (moved to multiple
outputs/split packages - see above).
tox.ini must define "min" test_group
Dropped hacky convention that package[options] (pip land, thin by default) ==
package (conda land, fat by default)
If you made it to v0.6.0a6:
--package-name is gone
Other notes
only supports pip and conda so far
built packages: only universal wheel and noarch:python. I.e. assumes
you are a pure python project author (although your dependencies
are not expected to all be pure python).
Internal cleanup
autopep8
Read python requirements with python tools (packaging.requirements).
Umm big refactor out of nowhere
Clearer 'abstract tasks' that should be supported by whatever set
of tools is being used to manage/test/package projects.
(draft)
New features
pyctdev application (i.e. can run "pyctdev ..." or "python -m pyctdev" ... rather than doit ...). Means dodo.py is optional.
"Regular" and "project" tasks. Project tasks only listed/available if required project files are present (e.g. package_build requires setup.cfg and tox.ini). Regular tasks (e.g. draw graph of an environment) can be run from anywhere .
Support for a limited dry run, printing what will be run (as far as possible).
Allow tasks to have required arguments at commandline.
better documentation of tasks and params via help. Still needs work but at least stuff's becoming visible in one place now.
Better support for task dependencies:
command line args will be applied to all tasks that have that param. Before: "package_build --sdist package_test --sdist"; after: "package_test --sdist" (package_test depends on package_build). Also, dependencies' params will be "promoted" so they are visible at commandline.
uptodate checks now have access to command line args for dependent tasks.
package_test will call package_build if package not already built. (or if version is dirty).
Conda: support for multiple outputs from one recipe ("split packages"). (inc declaring deps. and does the run constrained stuff.)
Conda: support for tests_map: for the envs defined in tox.ini, which packages should satisfy those tests?
Conda: "provides". I.e. what python imports does each package provide? (Note: should be added to pip world too in the future.)
Major changes
package_build and package_test are more clearly separated: both conda and pip backends now build the package first, then test that built package without first doing any kind of tricky modification of the package. (Replaces tricky pre-package conda recipe append mechanism.)
conda package_build now generates a recipe, i.e. no longer requires template in project. Means projects don't have to duplicate a very similar template evertwhere. If recipe already exists, it's re-used unless force overwritten (allowing customization if pyctdev doesn't support some feature of conda).
Minor
command being run is printed before it's run (previously only logged afterwards, only if there was a failure)
cleaned up parameters: clearer definitions, less duplication. Still work to go, but getting better.
Conda: build -> host
Only setup.cfg is supported, not setup.py. (Not a big deal to support setup.py as well or instead, I just didn't update that code.)
changes you might need to make to project on upgrading to 0.7
If using v0.5.1 or v0.6.0a6:
No longer need build=wheel in a project's tox.ini; tox is not used for building packages any more.
All python package names of dependencies (i.e. for import by python) should be python by default (not e.g. conda). So not python-graphviz, but graphviz.
Conda: Drop support for multiple recipes (moved to multiple outputs/split packages - see above).
tox.ini must define "min" test_group
Dropped hacky convention that package[options] (pip land, thin by default) == package (conda land, fat by default)
If you made it to v0.6.0a6:
Other notes
only supports pip and conda so far
built packages: only universal wheel and noarch:python. I.e. assumes you are a pure python project author (although your dependencies are not expected to all be pure python).
Internal cleanup
autopep8
Read python requirements with python tools (packaging.requirements).
Umm big refactor out of nowhere
Clearer 'abstract tasks' that should be supported by whatever set of tools is being used to manage/test/package projects.