2. Changelog¶
Information about RAFCON changes in each release will be published here. More details can be found in the GIT commit log.
2.1. 2.2.1¶
- Bug fixes:
Fixed bug where switching an execution state to a hierarchy state would not remove script.py
- Miscellaneous:
Resolved numpy conflict with different python versions (3.9 and >3.10)
Updated versioning of dependencies
2.2. 2.2.0¶
- Features:
Now using flat storage for state machines (removed first layer in folder structure)
Automatic conversion to new structure when re-saving existing state machines
Only storing meta_data for root_state if available
Added custom color for library states
Prevent saving a state machine inside another via GUI
Added locking current view feature in execution history GUI
Added open library from execution history feature in GUI
- Bug fixes:
Fixed bug in “run only selected state”
Fixed bug when destroying gtk controllers
Fixed bug in automatic dataport generation for GUI
Fixed bug in automaticly setting dataport for invalid data flows
- Miscellaneous:
Added cheat-sheet to documentation and GitHub
Updated package versions to support python>3.10
2.3. 2.1.4¶
- Bug fixes:
Fixed bug where data port would not reset properly
Fixed bug when relocating an existing data flow
- Miscellaneous:
Added proper deletion of gvm variables on shutdown
2.4. 2.1.3¶
- Bug fixes:
Fixed AboutDialog logo image path
Bringing back state editor guide lines
Fixed issue that children states can be dragged out of parent states (same for state titles)
Fixed issue where CTRL+Z in Source Editor or Description would undo twice instead of once
Fixed cramped Linkage Overview widget (now properly displays the logical linkage)
Fixes bug when trying to connect a data port outside of the parent state
- Miscellaneous:
Updated docs text, configuration and layout for webpage
2.5. 2.1.2¶
- Bug fixes:
Fixed bug for logic connectors
Added logo to about dialog
- Miscellaneous:
Updated pdm.lock
Added minimal rafcon core tutorial in docs
Updated formatting and deprecation for docs
Updated citation formatting
2.6. 2.1.1¶
- Bug fixes:
Updated deprecated dependency to jsonconversion
Added new test state machine for backward compatibility testing
2.7. 2.1.0¶
- Features:
Added option to disable popups in the config file
Display warning when saving new state machine (and overwriting) in already existing folder
- Bug fixes:
Fixing segmentation fault when changing state type in gui via state editor
Fixing decider node is not preempted in concurrency state
Fixed warnings and bugs in unit tests
More minor bugfixes
- Miscellaneous:
Checked dependencies and deprecations for libraries
Updated shebang versions to python3
Removed some warnings resulting from old python conventions
2.8. 2.0.0¶
- Features:
Switch from setup.py to pyproject.toml and pdm for the python package management
Add bump2version to avoid human errors when updating the rafcon version
Added auto-layout functionality (as a first version)
2.9. 1.3.0¶
- Features:
Add possibility to only release rafcon-core
2.10. 1.2.1¶
- Features:
Add __main__.py
2.11. 1.2.0¶
- Features:
Support python 3.10
2.12. 1.1.1¶
Bug Fixes:
Fix a few GUI bugs
2.13. 1.1.0¶
- Features:
Add skip & skip all buttons in the dialog of the broken libraries during loading a broken session
Set the default directory of the dialog during saving a state machine in accordance with the chosen library in the library tree
Create the data flows & data ports automatically in the nested states
Create the data port automatically when the other state does not have one during connecting the data flows
Support waypoints for data flows
Custom background color for states
- Bug Fixes:
Fix many minor GUI bugs
2.14. 1.0.1¶
- Bug Fixes:
Fix the default primary font name
2.15. 1.0.0¶
- Features:
Not supporting Python 2 anymore
Run this state
Only run this state
Add singleton pattern
Add new hooks before and after running each state
Add new memory profiling test to assert the memory leak during running sequential & concurrency state machines
Update gaphas to 2.1.2
Update libsass to the latest version of dart sass
Replace gtkmvc3 with two separated mvc and observer patterns
Run this state
- Bug Fixes:
Fix GUI freezing during keeping undo/redo shortcuts
- Miscellaneous:
Remove last update field to improve versioning control
Remove a big amount of the dead codes and comments
2.16. 0.15.4¶
- Bug Fixes:
Support custom design
2.17. 0.15.3¶
- Bug Fixes:
Fix bug in LoggingView, which freezes RAFCON
2.18. 0.15.2¶
- Bug Fixes:
Make operations on the logging console thread-safe
Define a new GUI config called ‘MAX_LOGGING_BUFFER_LINES’ that determines the maximum lines of the logging buffer. If the number of lines exceeds the config value, the old value will be deleted automatically via clipping.
2.19. 0.15.1¶
- Bug Fixes:
Call ‘show_notification’ via ‘idle_add’
2.20. 0.15.0¶
- Features:
Libraries can now be renamed and relocated. This includes single libraries, library folders and library root keys
Ctrl+F can be used to search for states
Missing libraries are supported better. In case a library cannot be found, the transitions and data-flows are preserved and added to the dummy-state, which is inserted instead of the library. Furthermore, the dummy-state has the same position and size as the old library state.
New execution-history structure: Define specific consumers for in-memory-execution-history and file-system execution history. Furthermore, another hook was defined such that RAFCON plugins can be used to define further consumers. Watch out: the config values for controlling the execution history changed
2.21. 0.14.11¶
- Features:
Add search bar for lookup through state machine libraries
Add find usage for finding the usages of state machine libraries
- Bug Fixes:
Fix handling of library interface change
2.22. 0.14.10¶
- Features:
Add new config (
RAISE_ERROR_ON_MISSING_LIBRARY_STATES
) to make Rafcon raise error when loading
2.23. 0.14.9¶
- Features:
add states for execution control
2.24. 0.14.8¶
- Bug Fixes:
Fix py2 support
2.25. 0.14.7¶
- Features:
increase test coverage
add gitlab runners support
differentiate between py3 and py2 dependencies in setup.py
differentiate between EXECUTION_LOG_ENABLE and EXECUTION_LOG_TO_FILESYSTEM_ENABLE config options i.e. keep memory footprint of RAFCON constant
add memory leak test
Fix race condition in ‘call_gui_callback’
2.26. 0.14.6¶
- Miscellaneous:
fix buggy pypi upload
2.27. 0.14.5¶
- Bug Fixes:
execution log viewer now works via released script in bin folder
2.28. 0.14.4¶
- Features:
Issue #290 paste state at current mouse position (both via context menu and shortcut) @CSuerig
add state at context menu position when using context menu to add states @CSuerig
2.29. 0.14.3¶
Maintenance release.
2.30. 0.14.2¶
Features:
Replace
SCRIPT_COMPILE_ON_FILESYSTEM_LOAD
in favor ofSCRIPT_RECOMPILATION_ON_STATE_EXECUTION
. See the documentation of the configuration for details.
Bug Fixes:
Issue #28 Setting of external editor via dialog does not work
Issue #790 gui_config.yaml not saved anymore automatically
Make tests run with pytest-mock>=1.11.2
Add compatibility with pylint>=2.4
Positions of panes should be restored correctly
Fix several deprecation warnings
Miscellaneous:
do not test Python 3.4 on Jenkins
Coverage test only on
develop
andmaster
branchprepare for new
yaml_configuration
release
2.31. 0.14.1¶
Bug Fixes:
Issue #774 python setup.py build_sass not working
Issue #26 python3’s “__pycache__” folder chrashes loading of examples
2.32. 0.14.0¶
Features:
new notification bar, informing about important log entries (configurable), fixes Issue #288
Fullscreen mode: optionally show toolbar (
FULLSCREEN_SHOW_TOOLBAR
option), show notifications
Improvements:
most
[PyGTK]DeprecatedWarning
s are fixedgraphical editor: minor performance optimizations
specify separators for JSON files: Python 3.4 no longer changes the whitespaces in state machine files
override builtins string in JSON files: state machine files generated by Python 2 and 3 are now fully identical
code coverage report in Jenkins
shows RAFCON log messages during installation
parallel test runs on Jenkins
Issue #21 Do not store semantic data if not available
Issue #665 Keep root state position when collapsing left sidebar
better defaults:
root state is named “root state”, further states “[state type] [states counter]”
script of
ExecutionState
s uses more RAFCON features (preemptive_wait
, return outcome name)name of states uses full width of state
provide RAFCON wheel file
make installation more robust, especially against missing font files
simplify installation process
clear separation in handling of
data_files
andpackage_files
create translation files automatically when building dist packages
refactored many parts of modification history
Bug Fixes:
Issue #20 program icon in task bar missing since version 0.13.x
Issue #665 state type dropdown menu prevents state editor widget to shrink
Issue #694 json library in python 3.6 writes one-line json files
Issue #721 Correct execution history logging
Issue #726 State with self-transition cannot be substituted
Issue #727 Sticky-Flag in States-Editor can cause crash if state type change is performed
Issue #755 Positions of outcomes are not always updated
fixes bug of “locked” global variable during multithreading access
use a safe loader for GUI config file
fix handling of symlinks in LibraryManager
better support of virtual envs
Changes:
drop support for BuildBot
Jenkinsfile: tests are now also run under Python 3.6
Miscellaneous:
new
gui
ficture for simplifying GUI testsrefactor GUI tests using the
gui
fixturedocumentation on how to write tests and how to use
gui
fixture
Patch releases 0.13.*¶
2.33. 0.13.8¶
Improvements:
use with statement instead af acquire/release
dedicated ‘unstable’ marks for python 2.7 and 3.x; these marks can be used to filter out tests
use Python warning module with custom
RAFCONDeprecationWarning
for deprecated usagesthe documentation can again be build on Read The Docs (at least the build of the API docs was corrupt since v0.13)
tooltip of library tree include root state description text of libraries
Jenkins integration
test adaptions so that they can be parallelized
added seqm.yaml for tracking software engineering quality management (SEQM) requirements (DLR internal)
Bug Fixes:
Issue #12 Error when switching from python2 to python3
Issue #18 State machines with library states cannot be opened if show flag is set to True
Issue #683 rafcon can now be closed properly via signal
Issue #712 Paste of Port into selected state is not possible
Issue #711 Gaphas does not allow data flows from one state to itself
Issue #717 States that have data-flows from its output to its input crash gahpas while state type change
fix broken links in documentation
use correct version and year in documentation
Changes: - pyyaml is not a dependency anymore, as it is now a dependency of yaml_configuration
2.34. 0.13.7¶
Improvements:
add tox integration
run tests under Python interpreters 2.7, 3.4, 3.5, 3.6, 3.7
run tests with coverage
build documentation and check links
check sdist
optimize setup_requires in setup.py (faster installation)
mark unreliable tests as unstable
define timeouts for all tests
Bug Fixes:
Issue #689 rafcon cannot run without numpy
Issue #679 error message when connecting data flow
fix severe threading bug in call_gui_callback, which could lead to a complete freeze of a state machine
2.35. 0.13.6¶
Features:
add ExecutionTicker to see activity of state machine with high hierarchy depth
Improvements:
changing states (adding or removing) during step mode works now
Bug Fixes:
Issue #678 script validation does not work
Issue #663 cannot rename connected data port of type object
Issue #684
test_simple_execution_model_and_core_destruct_with_gui
fails when running core & gui tests in a rowfix pause and step mode behavior
installation of fonts under Python 3
various test fixed for Python 3
2.36. 0.13.5¶
Bug Fixes:
Continue installation of none-existing fonts in case that one font was already installed
2.37. 0.13.4¶
Bug Fixes:
Fix installation of not-existing fonts
Issue #660 tab of executed state machine stays green
Issue #667 dialog “saving state as library” not working properly
Issue #664 cleaning of execution history does not work
Issue #668 adding a state as template screws up meta data
Fix rescaling factor**2 if adding libraries as template
Issue #631 Cut of multiple states creates various problems
Changes:
Increase any MAX_VISIBLE_LIBRARY_HIERARCHY value to be minimal 2 -> for performance the aim is to allow lower values again
2.38. 0.13.3¶
Changes:
Release correct style files
2.39. 0.13.2¶
Features:
The right click menu of library state can be used to select and focus respective library tree element
Bug Fixes:
Issue #658 crash in load_state_machine
run correct command for updating font cache
Changes:
Replaced font “DIN Next LT Pro” by “Source Sans Pro”
2.40. 0.13.1¶
Bug Fixes: Fix installation
2.41. 0.13.0¶
This is a shiny new minor release of RAFCON. Finally, Python 3 (>=3.4) is supported, while Python 2.7 can still be
used, thanks to the future
packet. With this, we also ported the GUI from GTK+ 2 to GTK+ 3, allowing for better
styling. Of course, there are many more improvements and bug fixes:
Features:
RAFCON is now compatible to Python 3
GTK+ 2 to GTK+ 3 port of the RAFCON GUI
Better styling including a HeaderBar
Alternative light theme! (GUI config option
THEME_DARK_VARIANT
)
Improvements:
Issue #117 Make GUI resizeable on all edges and corners
Issue #610 Provide CITATION.cff to make software citable
Issue #619 Provide and install *.desktop file
Issue #621 Provide full license text
Issue #636 No exception when closing RAFCON and a state machine is still running
Issue #637 No exception when closing a state machine tab, when it still runs
Issue #640 Backward compatibility test runs with various python versions now
Issue #646 Library roots can be added and removed inside the library tree
The installation should now work from a blank virtualenv
The documentation about the release steps has been extended
Bug Fixes:
Issue #596 External editor does not remember the handed command and also does not lock the embedded editor
Issue #617 Invalid DataFlow by DataFlowWidget
Issue #618 semantic data strings get scrambled/obfuscated in execution history log fixed by pull request Issue #626 fix(execution_log): unpickle semantic data
Issue #624 Debug console: cursor is not positioned at the point were it is clicked on
Issue #627 Generic library state machines need Gtk2 to gtk3 conversion
Issue #638 Exiting Fullscreen mode hides the graphical editor
Issue #644 “Substitute state as template” creates problems if not all models are recursive created
Changes:
Redundant libraries are marked as deprecated
No more “+”-icon next to state machine tabs to add a new state machine (related to Issue #639)
Remove old OpenGL GraphicalEditor
Remove deprecated entry points
rafcon_start
andrafcon_start_gui
Patch releases 0.12.*¶
2.42. 0.12.25¶
Improvements:
A
DataPort
with data typeobject
can now be connected to any otherDataPort
(Issue #422, Issue #525)Issue #602 Hide menu entries without function
Handle exceptions of the OpenGL graphical editor gracefully => do not depend on
gtkglext
Bug Fixes:
no more
GtkWarning
in stdoutGitHub Issue #4 GTK theme does not exist
2.43. 0.12.24¶
Improvements:
Update documentation regarding installation
Bug Fixes:
Installation of mo-files (for language support) works
2.44. 0.12.23¶
Improvements:
Update documentation regarding installation
Update rafcon dependencies in setup.py
Bug Fixes:
API:
AttributeError
when passingDeciderState
to constructor ofBarrierConcurrencyState
Installation of mo-files (for language support) works
2.45. 0.12.22¶
Features:
Issue #581 Utility shortcuts to add transitions from selected state to parent default outcome and sibling states
Improvements:
redraw graphical editor if connections are removed
extend German RAFCON translation
extend Developer’s Guide by how-to on translating RAFCON
API:
add_state
is adapting the passedstate.state_id
automatically in case of conflicts instead of raising anAttributeError
Bug Fixes:
Issue #455 Proportional resizing states now works properly
Issue #538 Many error outputs when changing MAX_VISIBLE_LIBRARY_HIERARCHY
Issue #541 Where are the magnet lines gone?
Issue #551 Prevent RAFCON from restarting if installation of fonts fails
Issue #571 Wrong rendering of scoped variables
Issue #580 update font installation
Issue #584 Opening a external source editor fails for a never set active state machine id
Issue #586 Ungroup of a state with data flows in between of it child states twice in the same hierarchy creates corrupt state machine or fails
stepping works inside library and concurrency states
Issue #589 decider state can be deleted
make i18n work
2.46. 0.12.21¶
Features: - new save state machine as menu item for root state right click menu to offer direct ‘save as library’ operations
Improvements:
Issue #579 Integrate external execution log viewer
Bug Fixes:
Issue #574 Group fails if it includes data flows between the grouped states or scoped variables
2.47. 0.12.20¶
Features:
maintenance release
2.48. 0.12.19¶
Bug Fixes:
fix setup.py, sdist now working on pypi
2.49. 0.12.18¶
Features:
new shortcut open library state separately as state machine by default on ‘Shift+Ctrl+Space’ (shortcut works for multiple states, too)
Improvements:
Provides proper PyCharm config files (in the .idea folder)
update menu item labels
updated rst documentation
Bug Fixes:
recent opened state machine list no more miss paths
Issue #550 Gaphas cairo.Error: invalid value (typically too big) for the size of the input (surface, pattern, etc.)
Issue #564 Zoom onto mouse position
handle config option ZOOM_WITH_CTRL properly
2.50. 0.12.17¶
Improvements:
example state machines and generic libraries get now installed via pypi
2.51. 0.12.16¶
Improvements:
default config file extended
2.52. 0.12.15¶
Improvements:
PYTHONUSERBASE added to search path list for gtk style files
2.53. 0.12.14¶
Improvements:
library_manager: increase performance of loading libraries by caching a list of all loaded libraries
gaphas editor: use new meta data hash method to speed up loading time
2.54. 0.12.13¶
Improvements:
the column headers of state machine tree now can be used to sort the items according state name, ID or type
more user friendly interface for tree and list view widgets e.g. data ports, outcomes and semantic data -> scrollbar adjustment and selections are moving much less and try to stay in the front of respective widget
correct tab motion to be more accurate
execution_history widget shows more visible chars per data port
2.55. 0.12.12¶
Improvements:
Issue #530 automatically focus and adapt position of root state for fresh initiated state machines issue title was “Root state out of focus and badly positioned”
Issue #543 Changing default option for library name while saving -> for the default folder name white space are replaced with underscores and all is lower case
also default library state name is now the folder name with replaced underscores with white spaces
Bug Fixes:
Issue #527 RAFCON GUI loops while startup if HOME environment variable is not defined -> a error message pointing on respective missing environment variable is added
Issue #539 grouping of states outcome transitions are not fully recovers (now bug is covered by test)
Issue #515 source editor does not show end of lines (finally)
2.56. 0.12.11¶
Improvements:
Issue #529 accelerate the follow mode switch for many logger messages
dynamic insertion of states during state execution is working and tested
secure dynamic modification of state machines while runtime by test created in pull request Issue #535 Dynamic insertion of states during execution
Bug Fixes:
Issue #515 source editor does not show end of lines (partly)
Issue #533 States inside library states cannot be selected
Issue #528 execution history destruction does not lead to max recursion depth
2.57. 0.12.10¶
Features:
Issue #520 Debug Console keeps track of last logger message if the follow mode is enabled
Improvements:
in pull request Issue #523 refactoring of debug console for more intuitive and robust behavior e.g. persistent cursor position
Issue #516 source editor does not show line of cursor after apply if the script is big
Bug Fixes:
Issue #519 rafcon freezes while opening a state machine - solved in pull request Issue #524 history elements hold direct state reference
Issue #514 text in entry widget of port not visible during editing (arrow key press left-right helps) - the issue was not fully resolved but improved
2.58. 0.12.9¶
Improvements:
container state API can adjust output_data by new method write_output_data
more robust execution history tree
performance improvement by deleting gaphas views at once for recursive state destruction’s
Bug Fixes:
Issue #521 Strange gaphas logs during deletion of a state
fix gaphas exceptions if state machine selection holds elements which gaphas has not drawn
2.59. 0.12.8¶
Feature:
start RAFCON with rafcon instead of rafcon_start_gui or rafcon_core instead of rafcon_start (old commands are still working)
Improvements:
buttons to forcefully lock or unlock a global variable
global variable manager logger messages got new failure warning messages
copy/paste for semantic data elements
new config value SHOW_PATH_NAMES_IN_EXECUTION_HISTORY
make library path in state editor overview selectable
Bug Fixes:
Issue #503 scoped variable looks weird
Issue #505 clean up profiler flag in config
Issue #506 root state input ports leave ugly stripes behind
Issue #501 transition is not selectable if it is drawn over state
Issue #512 execution of second state machine cause freeze of stop on previous state machine was not successful
Issue #514 text in entry widget of port not visible during editing
fix state machine tree remove library state
no deadlocks when locking a global variable two times
Issue #502 changing data ports not possible
fix state element weakref parent assigenment in case of tolerating a invalid data flow
2.60. 0.12.7¶
Improvements:
updated documentation
use verbose logging level instead of prints for modification history debug prints
2.61. 0.12.6¶
Feature:
tests folder is now released as well
Bug Fixes:
fix open-gl support for show-content to support fast state machine exploration (also into all leaf-states by zoom)
library state can be removed also when those are showing content
2.62. 0.12.5¶
Feature
new log level “VERBOSE”, intended for development purposes
state machines can now be baked (a snapshot of the state machine with all libraries can be saved)
Graphviz can now be used to debug gtkmvc notifications and signals
Improvements:
Gtk priority of logging output to the console view is now customizable via the gui_config
better plugin support of changes to the state-editor tabs
gaphas combines now complex meta data actions in one meta data changed signal -> one undo/redo-Action
Bug Fixes:
Issue #484 label handles are hard to grasp
Issue #486 Gaphas is not emitting meta data signal if NameView is moved
quick fix for not working “state type change” in combination with library states (which was based on respective object destruction while those operations) -> will be fully solved in Issue #493
quick fix for not set or too late set of active state machine id -> will be fully solved in Issue #495
fix meta data for undo/redo of add object operations
fix exception handling, causing issues with the graphical editor when invalid connection were created
When hovering the menu bar, an exception was printed
2.63. 0.12.4¶
Improvements:
Provide a PULL_REQUEST_TEMPLATE for pull requests opened in GitHub
Optimize updates/redrawing of graphical editor
Bug Fixes:
Issue #414 state machines with libraries cannot be closed
2.64. 0.12.3¶
Feature
The env variable
RAFCON_START_MINIMIZED
allows to start RAFCON minimized, which is helpful when running the tests
Improvements:
Issue #414 Memory optimizations: The memory usage should no longer increase over time, as unused objects are now freed
A new/extended test verifies the correct destruction of removed elements
Optimize NameView font size calculations, noticeable during zooming
ports outside of the visible view are no longer drawn, which increases the performance, especially while zooming in large state machines
Hash calculations of state machines
Placement of NameView
drawing of connections, ports and labels, especially when deeply nested
Issue #469 unit test refactorings
Bug Fixes:
Issue #459 execution_log utils; backward compatibility missing and Issue #458 ReturnItem
Issue #454 group/ungroup is not preserving meta data recursively
Issue #452 Session restore, gaphas and extended controller causes exception when closing RAFCON
Issue #450 Names of states inside a library become smaller
Issue #447 Hashes of state machine in storage different then the reopened state machine after saving it
Issue #449 ports (of transitions or data flows) cannot be moved
Issue #471 selection of states in hierarchies >= 5 not possible
2.65. 0.12.2¶
New Features:
Fix logging for library state execution
Improvements:
Improve execution logging (semantic data is supported now)
Issue #445 Tests need to ensure correct import order for GUI singletons
Bug Fixes:
Issue #446 “show content” leads to sm marked as modified
2.66. 0.12.1¶
New Features:
Semantic data editor supports external editor
Transparency of library states improved when content is shown
Improvements:
Issue #415 Increase visibility of library content
Bug Fixes:
Issue #378 Editing default values does not work sometimes
2.67. 0.12.0¶
New Features:
Semantic meta data editor and storage for every state
Issue #411 Allow outputting data from preempted states
Bug Fixes:
Issue #426 Again meta data of library ports are screwed after insertion
Issue #425 Connection via points not visible
Issue #424 Wrong path for tooltip for state machines editor tabs
Issue #431 Test for recently opened state machine fails
Issue #430 Selection test fails
Patch releases 0.11.*¶
2.68. 0.11.6¶
Bug Fixes:
Issue #428 fix recursion problem in execution log viewer
Issue #427 Middle click on state machine tab label close wrong state machine
Issue #419 wrong outcome data in execution history
Improvements:
Issue #411 Allow outputting data from preempted states
drag’n drop with focus can be enabled and disabled by using the gui config flag DRAG_N_DROP_WITH_FOCUS
graphical editor add way points around the state for self transitions as support for the user
refactor state machines editor tab click methods and small fixing
better on double click focus by gaphas editor and now also triggered by state machine tree
2.69. 0.11.5¶
Bug Fixes: - Issue #421 RAFCON does not remember window size after closing -> final part
2.70. 0.11.4¶
New Features:
Move into viewport: Double click on elements in several widgets cause the element to moved into the viewport (not yet supported by all widgets)
Usage of selection modifiers (e.g. <Ctrl>, <Shift>) should now be more consistent
Ports in the graphical editor can now be selection
The port selection is synchronized between the graphical editor and the other widgets
Ports can be removed from within the graphical editor
Improvements:
Refactoring of the selection
Unit tests for selection
Issue #411 Allow outputting data from preempted states
Issue #410 Refactor selection
Issue #403 Incomes and outcomes cannot be differentiated visually
Bug Fixes:
Memory leak fixes
Issue #402 Connections end in nowhere
Issue #417 ports of root state do not move with roots state
Issue #421 RAFCON does not remeber window size after closing -> first part
2.71. 0.11.3¶
Improvements:
Issue #405 Possibility to zoom in and out while drawing a connection
Issue #404 Possibility to scroll left and right in graphical editor
Issue #403 Incomes and outcomes cannot be differentiated visually
Bug Fixes:
Issue #412 global variables cannot be removed
Issue #413 tree view controller error
2.72. 0.11.2¶
Improvements:
meta data scaling more robust and protect other elements from side effects of it
Bug Fixes:
Issue #393 $HOME/.config/rafcon is not generated initially + tests
Issue #406 Empty library root state without child states cause meta data resize problems with side effects in gaphas drawing
2.73. 0.11.1¶
New Features:
Issue #384 add “Collapse all” button for library manager and enable the feature for the state machine tree, too
Improvements:
port position default values
Bug Fixes:
Fix issues when copying/converting logical or data ports with clipboard while cut/copy/paste
Fix library state port position scaling after adding
Fix gaphas viewer problems with undo/redo of complex actions like copy and paste or add/remove of ports
Issue #10 Fully integrate modification history with gaphas
2.74. 0.11.0¶
New Features:
“Session restore” by default enabled
Issue #364 “Open Recent” recently opened state state machines sub menu in menu bar under sub-menu Files
“Save as copy” in menu bar under sub-menu Files
“Show library content” supported for gaphas graphical viewer
The inner library states can be selected, copied and used to run the execution from or to this state, see Issue #366 and Issue #367, too
Issue #255 The state machine tree shows inner library states, too, and can be used to explore all “leaf”-states
Storage format can be adapted by the user (e.g. names of states in paths and there length)
The library manager widget/tree supports modifications by right click (remove library, add/remove library roots)
Execution tool-bar supports buttons for run to- and run from-state (like right click menu, too)
Improvements:
Refactoring of “Save state as state machine/library”
Better default position meta data for states in graphical viewer
Proper resize of graphical meta data for complex actions and show library content
Issue #369 Storage/Load module for state machines more flexible and robust
Storage module supports the user to store state machines without platform specific file system format conflicts
Issue #365 substitute widget in now scrollable
The gtkmvc version 1.99.2 is fully supported (Issue #388 corrected version in older releases)
Bug Fixes:
Issue #382 Currently active state machine not correct Issue #362 Data flows between scoped variables Issue #354 Meta data broken when adding state as template to state machine Issue #353 Label not shown when adding state from library
Patch releases 0.10.*¶
2.75. 0.10.3¶
Bug Fixes:
File Chooser crashed if the same folder was added to the shortcut_folders twice
2.76. 0.10.2¶
Bug Fixes:
Issue #385 If runtime config is newly created the last open path is empty and now state machine could be saved
2.77. 0.10.1¶
Bug Fixes:
make execution logs compatible with execution log viewer again
2.78. 0.10.0¶
Improvements:
complex actions(copy & paste, resize) are properly handled in gaphas and in the modification history
Issue #342 drag and drop now drops the state at the mouse position
Bug Fixes:
show library content for OpenGL works again
add as template works again
Issue #343 Text field does not follow cursor
Patch releases 0.9.*¶
2.79. 0.9.8¶
Improvements:
execution history can be logged and is configurable via the config.yaml
2.80. 0.9.7¶
Improvements
logging is configured with a JSON file
logging configuration can be specified by a user and the env variable
RAFCON_LOGGING_CONF
Issue #336: Use custom popup menu in state machine editor to quickly navigate in open state machines
Bug Fixes
Issue #349 Save as library functionality erroneous
Issue #314 Recursion limit reached when including top statemachine as replacement for missing state machine
Issue #341 Reload only selected state machine
Issue #339 Only save the statemachine.json
Issue #338 Selecting a library state should show the data ports widget per default
Issue #327 State machines are not properly selected
Issue #337 Pressing the right arrow in the state machine editor opens a new state machine
Issue #346 Barrier State cannot be deleted
2.81. 0.9.6¶
Bug fixes
fix step mode
2.82. 0.9.5¶
Bug fixes
runtime value flag of library states can be set again
add missing files of last release
2.83. 0.9.4¶
Bug Fixes
change VERSION file install rule to: ./VERSION => ./VERSION
2.84. 0.9.3¶
Bug Fixes
Fix missing VERSION file
2.85. 0.9.2¶
Improvements
Add rmpm env test
First version of setup.py
Version determination now in rafcon.__init__.py
Add another plugin hook, which is called each time a state machine finishes its execution
Bug Fixes
Fix complex issues including the decider state
Issue #322 Group/Ungroup is not working when performed on childs of a BarrierConcurrencyState
Issue #326 RAFCON_INSTANCE_LOCK_FILE exception
2.86. 0.9.1¶
Bug Fix - fix bad storage format in combination with wrong jsonconversion version
2.87. 0.9.0¶
Improvements
Consistent storage format
Renamed modules: mvc to gui and core to statemachine
External editor
Substitute State
Open externally
Save selected state as library
Meta data convert methods with clear interface from Gaphas to OpenGL and OpenGL to Gaphas -> only one type of meta data hold
Undocked side bars can be restored automatically after restart if RESTORE_UNDOCKED_SIDEBARS is set to True.
Bug Fixes
Issue #299: State labels can be placed outside the state borders
Issue #298: Child states can be placed outside hierarchy states
Issue #45: Size of GUI cannot be changed
Issue #284: Core does not check the type of the default values
Issue #282: Input and output data port default_value check does not cover all cases
Issue #280: List of tuples saved as list of lists
Issue #265: jekyll documentation
Issue #277: insert_self_transition_meta_data is never called
Issue #268: Enter key can still be used in greyed out window
Issue #69: Performance measurements
Issue #271: The storage folders are not always clean after re-saving a state machine from old format to new
Issue #273: Cannot refresh state machines
Issue #264: pylint under osl not working
Issue #173: Splash screen for RAFCON GUI initialization and RAFCON icon
Issue #253: Ctrl+V for pasting in list views of state editor does not work
Issue #263: The scrollbar in the io widget has to follow the currently edited text
Issue #255: After refreshing, state machines should keep their tab order
Issue #185: test_backward_stepping_barrier_state not working
Issue #258: Maximum recursion depth reached
Issue #245: Support library data port type change
Issue #251: Handles are added when hovering over a transition handle
Issue #259: Do not hard code version in about dialog
Issue #260: Meta data is loaded several times
Patch releases 0.8.*¶
2.88. 0.8.4¶
Improvements: - allow loading of state machines created with RAFCON 0.9.*
2.89. 0.8.3¶
Bug Fixes: - fix copy paste of library states, consisting of containers - fix error output of not matching output data types
2.90. 0.8.2¶
Bug Fixes: - fix copy and paste for ports - fix backward compatibility test
2.91. 0.8.1¶
Features:
renaming of module paths: core instead of state machine; gui instead of mvc
writing wrong data types into the outputs of the “execute” function produces an error now
Use external source editor: A button next to the source editor allows to open your code in an external editor, which you can configure
Gaphas: When resizing states, grid lines are shown helping states to bea aligned to each other (as when moving states)
Improvements:
Gaphas: Change drawing order of state elements. Transitions are now drawn above states, Names of states are drawn beneath everything. This should ease the manipulation of transitions.
Gaphas: States are easier to resize, as the corresponding handle is easier to grab
states are now saved in folder that are named after: state.name + $ + state.state_id
API:
library paths can now be defined relative to the config file (this was possible before, but only if the path was prepended with “./”
Documentation:
started creation of “Developer’s Guide”
moved
odt
document about commit guidelines intorst
file for “Developer’s Guide”
Fixes:
Issue #5: Fix connection bug
Issue #120: Make state machines thread safe using RLocks
Issue #154: Multi-Selection problems
Issue #159: Transitions cannot be selected
Issue #179: Allow external source editor
Issue #202: RAFCON crash
Issue #221: issue when dragging data flows
Issue #222: Cannot remove transition of root state in TransitionController
Issue #223: rafcon library config relative path undefined behaviour
Issue #224: Switch to respective state when trying to open a state which is already open.
Refactoring:
Widgets have TreeViews not have a common base class. This allowed to get rid of a lot of duplicate code and made some implementations more robust
the code behind connection creation and modification in the Gaphas editor has been completely rewritten and made more robust
2.92. 0.8.0¶
deactivated as not compatible with 0.7.13
Patch releases 0.7.*¶
2.93. 0.7.13¶
states are now saved in forlder that are named after: state.name + $ + state.state_id
Hotfix: - fix unmovable windows for sled11 64bit
2.94. 0.7.12¶
Features:
Bidirectional graphical editor and states-editor selection with multi-selection support
Linkage overview widget redesign for optimized space usage and better interface
Improvements:
Global variable manager and its type handling
Configuration GUI and its observation
State substitution: preserve default or runtime values of ports
Group/ungroup states
LibraryManager
remembers missing ignored librariesNew config option
LIBRARY_TREE_PATH_HUMAN_READABLE
: Replaces underscores with spaces in Library treeUpdate of transition and data flow widgets
API:
ExecutionHistory
is now observableConfigurations are now observable
allow to set
from_state_id
idadd_transition
method for start transitions
Fixes
Issue #177: Data flow hiding not working
Issue #183: Rafcon freeze after global variable delete
Issue #53: Configurations GUI
Issue #181: State type change not working
Several further fixes
Refactorings, optimizations, clean ups
2.95. 0.7.11¶
Features:
Global variables can now be typed, see Feature #81
GUI for modifying the configurations
Config files can be im- and exported
Graphical editor can be shown in fullscreen mode (default with F11), see Feature #36
I18n: RAFCON can be translated into other languages, rudimentary German translation is available
RAFCON core can be started with several state machines
Improvements:
Fix backward compatibility for old
statemachine.yaml
filesIssue #136: Undocked sidebars no longer have an entry in the task bar and are shown on top with the main window
Added tooltips
When starting RAFCON from the console, not only the path to, but also the file name of a config file can be specified. This allows several config files to be stored in one folder
Use correct last path in file/folder dialogs
Show root folder of libraries in the shortcut folder list of file/folder dialogs
new actions in menu bar, menu bar shows shortcuts
Source and description editor remember cursor positions
API:
State machines and their models can be hashed
Fixes
Issue #161: When refreshing a running state machine, the refreshed one is still running
Issue #168: Undocked sidebars cause issues with is_focus()
Issue #169: Wrong dirty flag handling
Issue #182: Test start script waits infinitely
Several further fixes
Refactorings, optimizations, clean ups
2.96. 0.7.10¶
Features
State substitution
Right click menu differentiate between states and library states
Improvements
Graphical editor Gaphas:
way faster
more stable
connections are drawn behind states
small elements are hidden
BuildBot also runs tests on 32bit SLED slave
Core documentation
Issues fixed
Lots of further fixes and improvements
2.97. 0.7.9¶
Features:
Grouping and ungrouping of states
Initial version of possibility to save arbitrary states as libraries and to substitute one state with another one
Right click menu for graphical editor
add flags to
mvc.start.py
Bug fixes
Kill RAFCON with Ctrl+C
Resizing of states in Gaphas
Correctly distinguish string and unicode data port types when using library states (should fix issues with ROS)
Stepping starts a state machine if not started
Improvements
Gaphas works more reliable, especially concerning copy’n’paste and selection
History
Some changes in destruction hooks
Refactorings
Many for Gaphas components, e.g. the border size of a state depends on the state size now
Obsolete models are deleted (=> less memory consumption)
Remove state_helper.py
New network tests
Add missing GUI drafts of Jürgen
2.98. 0.7.8¶
Add tests
ExecutionEngine: Notify condition on all events except pause
2.99. 0.7.7¶
Add three new hooks
main_window_setup
: Passes reference to the main window controller and is called after the view has been registeredpre_main_window_destruction
: Passes reference to the main window controller and is called right before the main window is destroyedpost_main_window_destruction
: is called after the GTK main loop has been terminated
2.100. 0.7.6¶
remove obsolete files
properly destruct states on their deletion (+ test to check unctionality)
jump to state on double-click in ExecutionHistory
fixes in display of ExecutionHistory
fix not shown description of LibraryStates
fix crash on middle-click on state machine tab
Fix copy & paste of ExecutionStates
improve tests
improve documentation (add missing elements)
Show ‘+’ for adding state machines
example on abortion handling
Add config option to hide data flow name
Fix Issue #129
get rid of all plugin dependencies
no more need to change into the mvc-directory when working with the GUI
refactoring (especially in start.py)
more fixes
2.101. 0.7.5¶
Improve Execution-History visualization with proper hierarchical tree view and improved data and logical outcome description (on right-click)
Improve auto-backup and add lock files to offer formal procedure to recover state machine from temporary storage (see Auto Recovery)
Improve Description editor by undo/redo feature similar to the SourceEditor
Improve versions of “monitoring” and “execution hooks” plugins
Improve graphical editor schemes (OpenGL and Gaphas) and Gaphas able to undo/redo state meta data changes
Introduce optional profiler to check for computation leaks in state machine while execution
Bug fixes
2.102. 0.7.4¶
Improve performance of GUI while executing state machine with high frequent state changes
Fix Issue #121 Properly copy nested ExecutionStates
2.103. 0.7.3¶
States are notified about pause and resume (See FAQ about preemption and pause)
Load libraries specified in
RAFCON_LIBRARY_PATH
(See this tutorial)improve stability
refactorings
bug fixes
2.104. 0.7.2¶
improved auto-backup to tmp-folder
fix missing logger messages while loading configuration files
introduced templates to build plugins
re-organized examples to one folder -> share/examples, with examples for API, libraries, plugins and tutorials
introduce short-cut for applying ExecutionState-Scripts
smaller bug fixes
2.105. 0.7.1¶
Allow multiple data flows to same input data ports (in order be remain backward compatibility)
2.106. 0.7.0¶
This is a big minor release including many changes. State machines stored with version 0.6.* are compatible with this version, but not state machines from older releases. Those have to be opened with 0.6.* and then saved again. The following list is probably not complete:
Support for openSUSE Leap
Support for plugins
Major design overhaul: agrees with drafts from design and looks consistent on all platforms
Drag and Drop of states
Libraries from the library tree
Any type of state from the buttons below the graphical state editor
The drop position determines the location and the parent of the new state
All sidebars can now be undocked and moved to another screen
Auto store state machine in background and recover after crash
Improved history with branches
New feature: run until state
Extended stepping mode: step into, over and out
Redesign remote execution of state machines: Native GUI can be used to execute state machine running on different host
Drop support of YAML state machine files
Rename state machine files
Extend documentation
RMC-BuildBot support
Many bug fixes
A lot of refactorings, code optimizations, etc.
Patch releases 0.6.*¶
2.107. 0.6.0¶
Prepare code and folder structure to allow theming (currently only dark theme available)
Refactor GUI configuration and color handling
Fix network_connection initialization
Use python2.7 by default when using RAFCON with RMPM
Gaphas graphical editor:
change cursor when hovering different parts of the state machine
add hover effect for ports
no more traces of states/labels when moving/resizing states/ports
resize handles are scaled depending on zoom level and state hierarchy
do not show handles on lines that cannot be moved
improve behavior of line splitting
refactorings
minor bug fixes
Fix many code issues (line spacing, comments, unused imports, line length, …)
fix bug in global variable manager, causing casual exception when two threads access the same variable
Patch releases 0.5.*¶
2.108. 0.5.5¶
fix start from selected state (the start-from-selected-state functionality modifies the start state of a hierarchy state on the initial execution of the statemachine; the start state was accidentally modified for each execution of the hierarchy state during one run leading to wrong execution of hierarchy states that were executed more often during the execution of a statemachine)
2.109. 0.5.4¶
hotfix for mvc start.py launching with network support enabled
2.110. 0.5.3¶
hotfix for rafcon server
2.111. 0.5.1 + 0.5.2¶
feature: command line parameter to start state machine at an arbitrary state
2.112. 0.5.0¶
State-machines can be stored in JSON files instead of YAML files
Set USE_JSON parameter in config to True
Loads state-machines approximately five times faster
Removed some code ensuring backwards compatibility of old state-machines
If you are having trouble loading older state-machines, open them with the last version of the 0.4.* branch
Save them and try again with the 0.5.* branch
Patch releases 0.4.*¶
2.113. 0.4.6¶
Add start scripts in bin folder
When using RAFCON with RMPM, you can run RAFCON just with the commands
rafcon_start
orrafcon_start_gui
Bug fixes for state type changes
2.114. 0.4.5¶
Feature: Add late load for libraries
State type changes work now with Gaphas graphical editor
Minor code refactorings
2.115. 0.4.4¶
Fix bug: changing the execution state of a statemachine does mark a statemachine as modified
2.116. 0.4.3¶
Fix bug: data port id generation
Fix bug: runtime value handling
2.117. 0.4.2¶
Feature: runtime values
2.118. 0.4.1¶
Fix bug: resize of libraries when loading state machine
Fix bug: error when adding data port to empty root state
2.119. 0.4.0¶
Show content of library states
Keep library tree status when refreshing library
Allow to easily navigate in table view of the GUI using the tab key
Refactor logger (new handlers) and logger view
Many refactorings for Gaphas graphical editor
Introduce caching for Gaphas graphical editor => big speed up
Require port names to be unique
Highlight tab of running state machine
Default values of library states can be set to be overwritten
Improve dialogs
make meta data observable
many bug fixes
clean code
…
Patch releases 0.3.*¶
2.120. 0.3.7¶
rafcon no-gui start script also supports BarrierConcurrency and PreemptiveConcurrencyStates
2.121. 0.3.6¶
bugfix if no runtime_config existing
2.122. 0.3.5¶
rafcon_server can be launched from command line
network config can be passed as an argument on startup
2.123. 0.3.4¶
first version of rafcon server released
2.124. 0.3.3¶
state machines can be launched without GUI from the command line
2.125. 0.3.2¶
Extend and clean documentation (especially about MVC) and add it to the release
Waypoints are moved with transition/data flows (OpenGL editor)
data type of ports of libraries are updated in state machines when being changed in the library
bug fix: error when moving waypoint
bug fix: add new state, when no state is selected
2.126. 0.3.1¶
Support loading of old meta data
bug fix: errors when removing connected outcome
bug fix: network config not loaded
code refactoring: remove old controllers, consistent naming of the rest
2.127. 0.3.0¶
RAFCON server to generate html/css/js files for remote viewer (inside browser)
optimize workflow:
root state of new state machines is automatically selected
new states can directly be added with shortcuts, without using the mouse beforehand
A adds hierarchy state (A for execution states)
support loading of state machines generated with the old editor in the new editor
bug fixes for graphical editor using gaphas (especially concerning the state name)
bug fixes for states editor
Patch releases 0.2.*¶
2.128. 0.2.5¶
update LN include script (use pipe_include and RMPM)
allow configuration of shortcuts
distinguish between empty string and None for ports of type str
bug fixes in GUI (start state)
2.129. 0.2.4¶
introduce env variables RAFCON_PATH and RAFCON_LIB_PATH
automatically set by RMPM
2.130. 0.2.3¶
use of seperate temp paths for different users
2.131. 0.2.2¶
Allow RAFCON to be started from arbitrary paths
2.132. 0.2.1¶
minor code refactoring
RMPM release test
2.133. 0.2.0¶
First release version
Tool was renamed to RAFCON