installation issues

i came across some issues while attempting to install matplotlib today:

···

====
first issue: no bug tracker

matplotlib's website has a link to a bug tracker that is no longer available. i'm guessing this mailing list is
the new bug tracker, which seems to me like a downgrade.

====
second issue: outdated PyPI listing

the current version of matplotlib is 1.0.1. but the PyPI download URL is such that it causes pip to install
an older version, 0.91.1:

$ pip install matplotlib
Downloading/unpacking matplotlib
  Downloading matplotlib-0.91.1.tar.gz (3.9Mb): 3.9Mb downloaded
[...]

matplotlib devs: please fix your PyPI listing.

matplotlib users: you can work around this by using the following command instead (but see the issue
below):

$ pip install
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz

====
third issue: missing dependency specifications

a long time ago, distutils was the only way to define how to set up a Python project and to run actions
against such a definition. later, setuptools superseded distutils as the standard. now, setuptools is so
old that has been superseded by distribute. look at nearly any active project in the Python community,
and you will find that it uses distribute and has installation docs that refer to pip (instead of the old
easy_install that came with setuptools). and for good reason, since each successor to distutils brought
significant improvements on many counts. i think it's safe to say that anyone using Python in the
modern day uses it with distribute, or at least with setuptools.

but matplotlib appears to still use distutils:

setup.py:35
----
from distutils.core import setup
----

one of the major improvements that came with setuptools is the ability to specify dependencies via the
``install_requires`` keyword argument to the ``setup()`` call in a project's setup script. package
managers such as pip can use this to automatically fetch unsatisfied dependencies. however, since
matplotlib doesn't have an install_requires, its dependencies are left unsatisfied, even when using pip,
which results in the following:

----
$ pip install
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz
Downloading/unpacking
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz
  Downloading matplotlib-1.0.1.tar.gz (13.3Mb): 13.3Mb downloaded
  Running setup.py egg_info for package from
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz
    basedirlist is: ['/usr/local', '/usr']
    ============================================================================
    BUILDING MATPLOTLIB
                matplotlib: 1.0.1
                    python: 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC
                            4.5.2]
                  platform: linux2
    
    REQUIRED DEPENDENCIES
                     numpy: no
                            * You must install numpy 1.1 or later to build
                            * matplotlib.
    Complete output from command python setup.py egg_info:
    basedirlist is: ['/usr/local', '/usr']

============================================================================

BUILDING MATPLOTLIB

            matplotlib: 1.0.1

                python: 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC

                        4.5.2]

              platform: linux2

REQUIRED DEPENDENCIES

                 numpy: no

                        * You must install numpy 1.1 or later to build

                        * matplotlib.

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/ivan/.pip/pip.log
----

matplotlib devs: please fix your setup script to use setuptools (distribute acts as a drop-in
replacement) and specify an ``install_requires`` as well as any applicable ``extras_require`` (e.g. for
matplotlib backends and optional features).

matplotlib users: you can work around this, at least for the unconditional dependency on numpy, as
follows:

$ pip install numpy
$ pip install
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz

====
fourth issue: compiler warnings about ``-Wstrict-prototypes``

while building matplotlib, i get a bunch of these warnings:

cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++

they're harmless--i'm guessing gcc simply throws out the offending option. but compiler warnings exist
for a reason--to warn developers of bad practices that may or may not lead to incorrect runtime
behavior. leaving them in released code can lead to obfuscation of warnings about real issues and
confusion about the causes of erroneous behavior.

matplotlib devs: please fix your compiler flags to omit ``-Wstrict-prototypes`` from invocations of gcc
and g++ on C++ files.

matplotlib users: you can safely ignore these warnings.

I have looked at this several times on the pypi page as this has come
up before and do not see anything wrong with the listing. The 0.91.1
listing is tagged as "hidden" and the 1.0.1 listing is the only
release that is not hidden. I don't see any other way to flag the
1.0.1 listing as active. It may be that the 0.91.1 release was the
last time I issued a pypi command from setup.py from the command line.
There should be a way to fix this from the pypi web interface but I
haven't found it.l If any other dev wants to look at it, I can share
the password with you if you contact me.

JDH

···

On Mon, Aug 1, 2011 at 6:48 PM, Ivan D Vasin <ivasin@...3710...> wrote:

i came across some issues while attempting to install matplotlib today:

====
first issue: no bug tracker

matplotlib's website has a link to a bug tracker that is no longer available. i'm guessing this mailing list is
the new bug tracker, which seems to me like a downgrade.

====
second issue: outdated PyPI listing

the current version of matplotlib is 1.0.1. but the PyPI download URL is such that it causes pip to install
an older version, 0.91.1:

$ pip install matplotlib
Downloading/unpacking matplotlib
Downloading matplotlib-0.91.1.tar.gz (3.9Mb): 3.9Mb downloaded
[...]

matplotlib devs: please fix your PyPI listing.