...
The OpenVisualizer Confluence page lists the required modules. Some modules are Python based, and some are not. This This section provides a detailed review.
...
There is a setup.py extension, bdist_nsi, to create an NSIS-based Windows installer. This could handle Python itself. There also is documentation on how to include a nested installer, which is required (I think) for PyWin32 and TAP for WIndows. We could use bdist_nsi to create the initial script, extend it for PyWin32 and TAP, and then create the installer.
There is a similar setup.py extension, python-innosetup, for InnoSetup.
Implementation Plan
Create pip installer, and register at Pypi.
I do not plan to pursue use of an installer a few reasons:
- An installer seems well suited to an end-user GUI application. It would be more appropriate once we have a desktop Web UI, particularly for simulation.
- Our users are pretty technical, and the requirement to install PyWin32 and TAP is not onerous.
- I have never used these installers, and don't know how much work is required. In contrast, implementation of pip is small and simple.
We'll get to a desktop UI installer, just not yet.
Better install/requirements documentation
- 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
Location of requirements.pip
We have a 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.
Package Upgrades via pip
pip does support package upgrades. See the usage page.
...