Skip to content

Releases: marc-hanheide/TMuLE

1.5.9

25 Jan 15:19
eb0e8b4
Compare
Choose a tag to compare

What's Changed

  • Expand environmental variable during include by @pulver22 in #21

New Contributors

Full Changelog: 1.5.8...1.5.9

1.5.8

02 Nov 11:27
a2dff69
Compare
Choose a tag to compare

1.5.6

12 Aug 13:26
Compare
Choose a tag to compare
version

1.5.2

18 Oct 16:17
Compare
Choose a tag to compare

All server improvements in this release:

  • got rid of dependencies on really deprecated webnsock, server now is based directly on autobahn/twisted libraries. Faster, more robust, leaner...
  • most importantly: twisted now allows serving the websocket connection through the same port as the webserver. So the entire server app is running on one port, not two, allowing it to be easily deployed behind ngrok or similar services, or just on port 8080 for easy deployment.
  • The port (option -p) allows to configure the port the server is running one.
  • The keepalive option (-k) now allows to tell the server not to terminate the tmule tasks when existing

1.4.2

14 Aug 11:15
Compare
Choose a tag to compare

some bug fixes to make checks work correctly

1.3.0

14 Aug 08:11
Compare
Choose a tag to compare

This release has some new features:

  1. wait per window: Rather than one global wait in seconds for auto-launch, you can now configure a wait time for each window (i.e., auto-launching will only commence after waiting specified seconds)
  2. check process: You can specify a process that is run to check if a window is up. This can be any shell expression. If the exit code is 0, then the window is deemed running. For instance rostopic list is a good check process to ensure that roscore has completed its starting up.
  3. iterating through all windows for termination is done in reverse order now

1.2.0

09 Jul 22:31
Compare
Choose a tag to compare

There is now a new TMule Release (version 1.2.0), which implements the following:

  • named session support: a new key in the main config file allows to define the name of the tmux session. Useful if several tmux sessions are needed, use top-level key session.
  • tag support: each window is assigned a list of tags. launch and stop commands support a new flag -t (can be used multiple times), to indicate all the tags that should be launched. Idea is that we can launch specific systems from one tmule file, e.g, everything needed for navigation demo gets tag navi_demo and you launch only that tag. Another one may be using tag data collection indicating it launches everything for data collection. Tags are now also supported by the server mode, i.e., in the web interface all windows of a specific tag can be launched or stopped selectively.
  • skip support: an optional key skip can be set true if the window should be exempt from launching when "all" is selected (useful for manual debugging windows, that should only be launched specifically)
  • parameter support: tmule supports a few parameter substitutions in the config file. All parameters are surrounded by @:
    • The absolute path of the config file: @TMULE_CONFIG_FILE@
    • The absolute path to the directory of the config file @TMULE_CONFIG_DIR@
    • The name of the tmux session: @TMULE_SESSION_NAME@
      This is particularly useful to refer to any other files required (e.g. workspaces, config files, etc) that are defined relative to the location of the tmule config file, hopefully simplifying some setups.
  • reload support: In server mode, reloading the website will also reload the config file, i.e., the server does not have to be restarted when the config file is edited. This eases debugging and adding features on the fly a lot. It also allows to launch server automatically (e.g. via supervisor as we do in Lindsey etc) in all robots and then keep it running forever. If we have one tmule file for all sub-tasks, then these tasks can easily be launched and stopped via the web interface.

Just run pip install -U tmule to get the latest version.

See example file tmule.conf for all the new features. And new server GUI below:
image