introduce package and setup.py less sdist creation
-----------------------------------------------------------

Example sections for tox itself::

    [pkgdef] 
    basename = pytest
    description = virtualenv-based automation of test activities
    authors = holger krekel <holger@merlinux.eu>
    url = http://tox.testrun.org
    entry_points = console_scripts: tox=tox:cmdline
    requires = py
    packages = 
    preuploadenvs = sphinx 

    classifiers=
        Development Status :: 6 - Mature
        Intended Audience :: Developers
        License :: OSI Approved :: MIT License
        Topic :: Software Development :: Testing
        Topic :: Software Development :: Libraries
        Topic :: Utilities

This would generate three different packages:

- the main one containing the app with the specified description, etc.
  It has a test-requires pointing to the test package,
  which classifiers
- the test package only containing the tests and setup.py
  depending on the main package and all requirements collected from the
  testenv
- the doc package containing generated html and txt files
  (to be installable via a setup.py as well?)

Here is what happens when tox is invoked now:

- version gets auto-incremented (in setup.py and $PACKAGE/__init__.py files)
- main setup.py generated, files copied, sdist generated
- test setup.py generated, files copied, sdist generated
- doc setup.py generated, doc environment run, files copied, sdist generated

- if --upload is specified, all packages are uploaded under 
  their respective names:
  tox-VER
  tests-tox-VER
  docs-tox-VER

- tox --sync creates a test result file for the tests-tox-VER run
  and uploads it to testrun.org -- .tox/projectkeys contains a file that
  was created by visiting testrun.org and registering/logging in.

- download toxslave and execute it:

    toxslave --userkey=... [--project tox]

  which will query testrun.org for outstanding testruns
  [for the tox project], download packages, execute them 
  and report back to the server

merge tox and detox?
----------------------------------------------------------------

maybe it's time to merge it?

http://lists.idyll.org/pipermail/testing-in-python/2012-October/005205.html
pyc files / test distributions
-----------------------------------------------------------

investigate pyc cleaning, see

http://lists.idyll.org/pipermail/testing-in-python/2012-October/005205.html


allow config overlays
-----------------------------------------------------------

tags: 1.5 feature

You can specify wildcards in section titles.

    [testenv]
    testsrc=testing/**.py 
    commands=py.test {posargs}
    
    [testenv:py3*]
    use2to3 = True

    [testenv:py32]
    deps =
        ...

Configuration values are now looked up in a stricter-matches-first
manner: If environment "py32" is considered then first the 
section under py32, then py3*, then testenv. 


support 2to3 configurations / test file postprocessing
-----------------------------------------------------------

tags: 1.5 feature

Tests should be copied and transformed before being executed.
Setup a test definition::

    [testenv]
    testsrc=testing/**.py 
    commands=py.test {posargs}
    
    [testenv:py3*]
    use2to3 = True

would transform all specified test files for all py3 environments 
such that a subsequent test run::

    $ tox -e py25,py32 testing/test_hello.py

causes a transformation of the test files to prepare test runs on
Python3 interpreters.  The ``posargs`` specified files will be rewritten
to point to the transformed test files.

export support for travis
----------------------------------------
tag: 1.6 feature

look into ways to support integration of tox with travis.

- run tox from travis
- let tox read commands from travis config
- generate .travis.yml from tox.ini
- generate tox.ini from .travis.yml

For the last two, take a look at http://pypi.python.org/pypi/panci/

allow user-specific python interpreters
------------------------------------------------

users should be able to define their set of python executables
to be used for creating virtualenvs.
.toxrc/interpreters:
pypy-c=~/p/pypy/branch/sys-prefix/pypy-c
...

non-cached test dependencies
---------------------------------------------------------------

if there is a dependency on a URL whose content changes
the download-cache mechanism will prevent it from being reloaded.
Introduce a 'nocache:' prefix which will inhibit using the cache.
Also make and document a guarantee on the deps order so that
one can influence the exact configuration (e.g. use a dev-version
of some package which a later dependency or the original
package depends upon - i.e. deps should be installed first).


test and make "in-pkg" tests work
---------------------------------------

it is common to put tests into pkg subdirs, possibly
even with an __init__.  See if/how this can be made
to work.  Maybe also re-consider how py.test does its
importing, maybe add a pytest_addsyspath(testmodule)
and look how nose does it in detail.
