[Distutils] Version number required for setup?

Thomas Heller thomas.heller@ion-tof.com
Tue Nov 20 02:41:01 2001

distutils/command/dist.py contains this code

    # -- Metadata query methods ----------------------------------------
    def get_version(self):
        return self.version or "???"

which returns '???' as a version number if none is specified
in the setup script.

Since the bdist commands construct a filename containing the version
number this leads to an invalid filename under windows, and the builds
fail with a traceback like this:

    zip -rq D:\workspace\projects\epos\bin\dist\startup-???.win32.zip .
    creating 'D:\workspace\projects\epos\bin\dist\startup-???.win32.zip'
    and adding '.' to it
    error: D:\workspace\projects\epos\bin\dist\startup-???.win32.zip:
    Invalid argument

The fix for bug #409403 (Signal an error if the distribution's metadata
has no version) fixed this behaviour by requiring a version number:

         if self.metadata.version is None:
              raise DistutilsSetupError, \
                    "No version number specified for distribution"

In the meantime, version 1.47 of dist.py, this code has been removed again.
Log message: "Back out the requirement to supply a version number".
Why was this done?

I do not know whether we should require a version number or not, but at
least the "???" string literal should be changed to something which can
be part of a valid filename under windows (although IMO 'UNKNOWN' isn't
really a better version number than '???')...