Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Downside to pip install, and updated implementation plan

...

There is a similar setup.py extension, python-innosetup, for InnoSetup.

Implementation Plan

Create pip installer, and register at Pypi.

...

Combined Setup and Requirements via pip

If we don't use a traditional installer program, it is possible to install OpenVisualizer and its requirements via pip with a command like this:

   > pip install openVisualizer

This approach requires that we import setuptools rather than distutils for setup.py. setuptools provides the 'install_requires' argument that allows retrieval of requirements from Pypi. setuptools has some drawbacks, particularly the inability to install to arbitrary locations, which is required for the native install mechanism in SW-98.

Research on this topic showed that Python package installation is still under development. A recent LWN article, Rationalizing Python packaging, describes the current roadmap.

Implementation Plan

We plan to use a distutils-based setup, with the option to use pip to install requirements. Outline:

  1. User downloads OpenVisualizer sdist archive, either from the Confluence wiki or from Pypi.
  2. User extracts the archive.
  3. User installs OpenVisualizer via setup.py:
       > python setup.py install 
  4. User install pip and setuptools if necessary.
  5. User install Python requirements via pip and a requirements file provided in the archive:
       > pip install -r requirements.pip

We do not plan to pursue use of an installer a few reasons:

...

  • Windows vs. Linux installation is now different enough that we need to separately call out the Windows requirements. A separate page for this documentation is worthwhile.
  • The table of requirements should be segmented into runtime vs. development, where development includes SCons, yappi, etc.

Other topics

...

Reuse requirements.pip

We have a plan to add any necessary required Python modules to the existing, top-level requirements.pip at at the topmost directory of the openwsn-sw repository. However, we only want to install OpenVisualizer, so we require requirements.pip in directory software/openvisualizer. I don't see a useful purpose for the top-level requirements.pip, and recommend we remove it. This file can be copied to the software/openvisualizer directory for archive creation.

Package Upgrades via pip

...