[Distutils] Updated TODO list
Greg Ward
gward@python.net
Sat, 24 Jun 2000 22:39:31 -0400
Hey, this to-do list is looking pretty good: lots of "done" items as of
today. Highest priority:
* bdist_wininst
* auto-configuration; currently has enough to support mxDateTime,
probably needs some more to support PIL, and then I need to
find some other distributions with auto-configuration needs
to play with
Medium priority:
* Cygwin GCC support, Borland C++ support
* AIX, OSF/1 support
Here's the list...
GENERAL
-------
* think about how to support distribution-specific "configure" commands --
eg. how can they push option values (include/library directories, that
sort of thing) onto the "build_ext" command?
[see also "AUTO-CONFIGURATION" section below, and the "config" command]
* need a good, general-purpose, portable-if-you-want-it, unportable-if-
you-need-control, way for the builder/installer to specify compiler
and linker flags (lots of people expect CFLAGS and LDFLAGS to work,
so they probably should; but options to either command and/or
build are the right way, so those should be preferred)
* install_data should install to $prefix by default, not $prefix/share
(and should warn if developer doesn't supply any dir component:
installing right to $prefix is almost always the wrong thing
to do)
[done 2000/06/24 GPW]
DOCS
----
* write write write
* include a standard blurb for README files somewhere
PATCH REVIEW/INTEGRATION
------------------------
* review Rene Liebscher's patch for help options: he changed
archive_util.py
ccompiler.py
command/bdist.py
command/build.py
command/build_clib.py
command/build_ext.py
command/sdist.py
dist.py
...and I checked 'em all in without review because I want
other people to try it out and I don't have time to review
it right now (and he fixed a stupid bug in bdist.py for me)
[done 2000/06/23 GPW]
* review Rene Liebscher's cygwinccompiler.py contribution
[started and aborted, 2000/06/24 GPW; asked Rene to resubmit patch
with stylistic changes]
COMMAND-LINE PARSING
--------------------
* I think fancy_getopt needs to get fancier to properly support the
-I, -D, -l, -L, etc. options of "build_ext": need to be able
to accumulate multiple options in a list, should be able to
split a string on a given delimiter, probably want to specify if
repetitions of the same option will accumulate or replace, etc.
* do the above options even work at all? seem to recall hearing
reports of dismal failure, but I never looked into it
[knowing how FancyGetopt works, there's no way these options
can work: damn]
COMPILER MODEL & CLASSES
------------------------
* add pre-processor interface to CCompiler (needed to support
Autoconf-style 'try_cpp', 'search_cpp', 'search_headers' in config
commands)
[done, but only UnixCCompiler implements that interface]
* fix UnixCCompiler so it doesn't depend on sysconfig (ie. cc must
be passed in)
[done 2000/06/24 GPW]
* allow user to supply cc (compiler executable) in addition to
compiler type
[done 2000/06/24 GPW]
* radically simplify CCompiler method signatures: drop most of the
per-invocation customization, and just use the instance
attributes for eg. include_dirs, libraries, ...
[NB. should probably hold off integrating Cygwin and Borland
support until this is done, *if* that is it is the right thing
to do...]
[update 2000/06/24: I'm cooling to this idea; it turns out the
extra complex interface that's been there all along is useful
for the "config" command, which has to do lots of little
temporary compile and link steps]
* Cygwin/Mingw32 support
[Rene Liebscher is working on this]
* Borland C++ support
[Lyle Johnson is working on this]
AUTO-CONFIGURATION
------------------
* add more goodies to the standard "config" command, and finish
hacking up the example mxDateTime setup script to take
advantage of them
[partly done: at least enough is there to auto-configure mxDateTime;
need to work on PIL's auto-configuration next]
EXTENSION BUILDING
------------------
* extension building on AIX
[update 2000/06/24: Rene Liebscher has a patch for this, which
I have asked him to refine]
* support for SWIG -- should just have to specify the .i file and
have Distutils take care of running SWIG and knowing what the
output is (to be really clever: make sure SWIG's output is included
in source distributions, so builders-from-source don't need to
have SWIG installed)
[update 2000/06/24: Thomas Heller and I have gone back and forth
on this a couple times: sounds like Thomas has the right idea,
I'll let him work on it]
* support for PyFort (lower priority than SWIG!)
* OSF/1 problem: ld command has "*" in it, which is appropriate when
a shell is involved, but there isn't one here, so we need to
strip the quotes (and, ideally, put them back on again when
spawn() prints out the command run!)
INSTALLATION
------------
* if Distutils installs the first third-party modules in an installation
(and creates site-packages), then "install" needlessly warns about
having installed to a location not on sys.path -- presumably because
site-packages isn't in sys.path at startup, since it doesn't exist
until we create it! (I think this is only a problem with 1.5.2,
since site-packages is now created when Python is installed -- check!)
* need a mechanism for specifying pre-install and post-install hooks,
which will be run when installing from a smart built distribution
(RPM, wininst, etc.); also, "install" needs to run these hooks
*except* for "fake" installs done solely to create a built distribution
* bdist_dumb should grow a little intelligence: let packager choose whether
to make archive relative to prefix or the root (prefix is essential
for proper Windows support )
DISTRIBUTION FORMATS
--------------------
* figure out why bdist_rpm doesn't work with RPM 2.x, and make it work if
possible
[punt: I don't care anymore, if anyone else does, let them fix it]
* make "bdist" take multiple formats (both for convenience
and consistency with "sdist"); should be doable now that we can
reinitialize, refinalize, and (presumably) rerun commands
[done 2000/06/06 GPW]
* Solaris pkgtool, HP depot
[Mark Alexander is working on these]
* minimal Windows installer ("bdist_wininst")
[Thomas Heller is working on this]
* Wise installer for Windows ("bdist_wise")
[Thomas Heller said he will work on this when "bdist_wininst" is done]
$Id: TODO,v 1.5 2000/06/25 02:37:09 gward Exp $
--
Greg Ward - Linux geek gward@python.net
http://starship.python.net/~gward/
No problem is so formidable that you can't just walk away from it.