distribute / docs / roadmap.txt

The branch 'default' does not exist.
=======
Roadmap
=======

Distribute has two branches:

- 0.6.x : provides a Setuptools-0.6cX compatible version
- 0.7.x : will provide a refactoring

0.6.x
=====

Not "much" is going to happen here, we want this branch to be helpful
to the community *today* by addressing the 40-or-so bugs
that were found in Setuptools and never fixed. This is eventually
happen soon because its development is
fast : there are up to 5 commiters that are working on it very often
(and the number grows weekly.)

The biggest issue with this branch is that it is providing the same
packages and modules setuptools does, and this
requires some bootstrapping work where we make sure once Distribute is
installed, all Distribution that requires Setuptools
will continue to work. This is done by faking the metadata of
Setuptools 0.6c9. That's the only way we found to do this.

There's one major thing though: thanks to the work of Lennart, Alex,
Martin, this branch supports Python 3,
which is great to have to speed up Py3 adoption.

The goal of the 0.6.x is to remove as much bugs as we can, and try if
possible to remove the patches done
on Distutils. We will support 0.6.x maintenance for years and we will
promote its usage everywhere instead of
Setuptools.

Some new commands are added there, when they are helpful and don't
interact with the rest. I am thinking
about "upload_docs" that let you upload documentation to PyPI. The
goal is to move it to Distutils
at some point, if the documentation feature of PyPI stays and starts to be used.

0.7.x
=====

We've started to refactor Distribute with this roadmap in mind (and
no, as someone said, it's not vaporware,
we've done a lot already)

- 0.7.x can be installed and used with 0.6.x

- easy_install is going to be deprecated ! use Pip !

- the version system will be deprecated, in favor of the one in Distutils

- no more Distutils monkey-patch that happens once you use the code
  (things like 'from distutils import cmd; cmd.Command = CustomCommand')

- no more custom site.py (that is: if something misses in Python's
  site.py we'll add it there instead of patching it)

- no more namespaced packages system, if PEP 382 (namespaces package
  support) makes it to 2.7

- The code is splitted in many packages and might be distributed under
  several distributions.

 - distribute.resources: that's the old pkg_resources, but
   reorganized in clean, pep-8 modules. This package will
   only contain the query APIs and will focus on being PEP 376
   compatible. We will promote its usage and see if Pip wants
   to use it as a basis.
   It will probably shrink a lot though, once the stdlib provides PEP 376 support.

 - distribute.entrypoints: that's the old pkg_resources entry points
   system, but on its own. it uses distribute.resources

 - distribute.index: that's package_index and a few other things.
   everything required to interact with PyPI. We will promote
   its usage and see if Pip wants to use it as a basis.

 - distribute.core (might be renamed to main): that's everything
   else, and uses the other packages.

Goal: A first release before (or when) Python 2.7 / 3.2 is out.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.