Come up with a solution to Mangle + Windows Issues
distutils ========= sdist: No Mangle bdist_dumb: No Mangle bdist_rpm: Illegal Character (:) bdist_wininst: Invalid Directory bdist_msi: Invalid Directory None of these work on Windows, my assumption is that the : is an illegal character to have in a Windows directory. setuptools ========== sdist: : and + mangled to - (hyphen) bdist_dumb: : and + mangled to - (hyphen) bdist_rpm: : and + mangled to _ (underscore) bdist_wininst: : and + mangled to - (hyphen) bdist_msi: Invalid Error bdist_egg: : and + mangled to _ (underscore) bdist_wheel: : and + mangled to _ (underscore)
So the most complex version is not a valid MSI version at all. I think that is OK because it appears the restrictions for MSI is
[0-255].[0-255].[0-65535] so this is just something that someone who is creating a MSI has to live with.
As far as mangling goes, I think the easiest thing to say is to get setuptools to not mangle the filename for our characters and say that if you're creating a version with an epoch or a local version you need to have a setuptools greater >= <whatever verison does that>.
The most concerning thing to me here is that our most complex version is a completely invalid directory on Windows. My guess is that it's the
: character which is a directory separator on windows which seems to be supported by http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29. Our packaging formats put the version into the filename and directory names inside of that, so we're going to need to either define a normalization for the
: character, or we're going to need to pick a different character that is allowed on Windows.