...
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:
- User downloads OpenVisualizer sdist archive, either from the Confluence wiki or from Pypi.
- User extracts the archive.
- User installs OpenVisualizer via setup.py:
> python setup.py install
- User install pip and setuptools if necessary.
- 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
...