Comment #11 on issue 480 by pekka.klarck: New installation and start-up
system
http://code.google.com/p/robotframework/issues/detail?id=480
epronk has found a limitation with the new installation system on
virtualenv (issue 1054). To be able explain the root cause of the
limitation I first explain the main design decisions done when implementing
the new system:
1) Unfortunately we couldn't incorporate Gotchas installation enhancements
(mentioned in comment #7 above) because they used setuptools that doesn't
work with IronPython. One of the motivations of the new installation system
was to make installing with IronPython easier and this change would have
been against that.
2) The main problem with the old installation was that generated
pybot/jybot/rebot scripts were edited on the system as part of the
installation. This was pretty ugly with Windows installer and with `python
setup.py install`, required horrible hacks to support easy_install, and we
couldn't find a way to make it work with pip. A benefit of this approach
was that the generated scripts used the interpreter you used for
installation and you didn't even need to have Python or Jython in PATH for
the scripts to work.
3) We decided to change pybot/jybot/rebot (and the newly added interpreter
dependent jyrebot/ipybot/ipyrebot) so that they don't need to be edited
anymore. They all look something like this:
#!/bin/sh
python -m robot.run "$@"
As a result installation got a lot simpler, we could remove all hacks, and
also pip started working. A known and accepted limitation was that you now
need to have python (or jython or ipy) in PATH.
4) Nowadays pybot/jybot/rebot/etc are mainly convenience scripts that you
can use instead of running `python|jython|ipy -m robot.run` or `python|
jython|ipy -m robot.rebot`. We plan to advertise this way of executing the
framework more in the future, and have already added also similar
`robot.tidy` (issue 801) and `robot.libdoc` (issue 1028) entry points.
Notice that it is also possible to execute these entry points like `python|
jython|ipy path/to/robot/run|rebot|tidy|libdoc.py`.