setuptools does many things. Breaking that down into different areas will allow people to contribute to a smaller chunk that they feel familiar with and excited about.
Note! This is the early stages of this. Feel free to brainstorm or organize at will.
This is the metadata about the package that's stored in the egg
- Enhance metadata with an API/ABI version (ABI would mean, changes to file formats and such)
- Storage of metadata and data with the same API is not great as there's different storage requirements for each.
- API for extracting the metadata?
- Script interface to do the same
This is the format of metadata + code + data that is zipped up into an egg.
pkg_resources: Library Dependency Manager
This is the functionality that loads libraries of certain versions and runs them,
- Be able to both control version choices programmatically and have a default version
- Properly handle overlapping dependencies
pkg_resources: Resource Manager
Allow code to import data from an unknown and variable location on the disk.
Ability to retrieve data from outside of the Module (EggTranslations)
- General data store
- Ability to access data in different locations per platform and install method
Tool that downloads and installs all the dependencies of a package
Tool that makes building and installing from source easier
- Able to install to FHS locations or build eggs as desired
- bdist_* and install should all be terminal targets. bdist_*, for instance, should not depend on install having been run first.