Skip to content

Latest commit

 

History

History
308 lines (240 loc) · 12.2 KB

CHANGELOG.md

File metadata and controls

308 lines (240 loc) · 12.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

v3.10.20 - 2021-10-18

Fixed

  • Fixed a bug that caused an index out of bounds error when parsing Python code.

v3.10.18 - 2021-10-08

Changed

  • Updated minimum required version for bonsai.

Added

  • Added basic extraction capabilities for ROS parameters in Python source code.

v3.10.17 - 2021-10-08

Fixed

  • Fixed a bug that skipped Python node parsing.

[3.10.16] - 2021-09-04

Fixed

  • Fixed a crash when reading non-ASCII source files.

[3.10.15] - 2021-08-27

Fixed

  • Fixed a crash when parsing certain types of HPL properties.

[3.10.14] - 2021-08-19

Fixed

  • Fixed a Python 2/3 compatibility bug.
  • Fixed issue #70 and issue #111.

[3.10.13] - 2021-08-16

Fixed

  • Fixed a Python 2/3 compatibility bug.

[3.10.12] - 2021-08-16

Fixed

  • Fixed bug that prevented parsing caches from being invalidated.

[3.10.11] - 2021-08-13

Fixed

  • Fixed a crash when running haros without arguments.

[3.10.10] - 2021-08-12

Fixed

  • Fixed a crash when plugins reported ignored rules.

[3.10.9] - 2021-08-12

Fixed

  • Fixed an issue when analysing Python bytecode files not encoded in UTF-8 (bytecode should not be treated as text files).

[3.10.7] - 2021-08-12

Fixed

  • Fixed a Python packaging issue.

[3.10.6] - 2021-08-11

Fixed

  • Fixed a bug when parsing XML tags without text in package.xml files, e.g., <author email="[email protected]" />.

[3.10.5] - 2021-08-09

Fixed

  • Fixed a bug when parsing launch files that complained about unicode strings.

[3.10.4] - 2021-08-06

Changed

  • Internal code changes to support Python 3 environments.

[3.10.3] - 2021-08-03

Added

  • Added the news command, to print out some news updates.

[3.10.2] - 2021-08-02

Fixed

  • Fixed a bug with namespace resolution when extracting topic/service/param function calls.

Added

  • Added convenience methods to some metamodel classes.

[3.10.1] - 2021-07-19

Added

  • analysis section to project files, same as in ~/.haros/configs.yaml.

[3.10.0] - 2021-06-18

Fixed

  • Viz now shows which conditional statement is associated with each conditional expression (e.g., if, for, etc.).
  • Node HPL properties were not being properly read from project files.

Changed

  • Docker files moved over to the make-haros-easy repository. New and improved files have been added in that repository, thanks to @ipa-nhg.
  • HPL parsing is now delegated to the external hpl-specs package.

[3.9.3] - 2021-04-07

Fixed

  • added missing --ws argument to the full command.

[3.9.2] - 2021-03-03

Fixed

  • viz/export bug where multiple queries with the same rule id were aggregated; each query report is now highlighted individually.
  • bug when declaring configurations as lists of launch files that caused a crash.

Added

  • --ws option to analyse.

[3.9.0] - 2020-02-19

Changed

  • Reworked the HAROS dashboard to replace unimplemented statistics with more relevant ones.
  • Added a summary panel to the Configuration model viewer in Viz.

[3.8.1] - 2019-11-25

Changed

  • Fixed a bug that caused the init and viz commands to crash.
  • Fixed a bug that caused the CMake parser to crash when trying to read directories that do not exist.

[3.8.0] - 2019-11-24

Added

  • --junit-xml-output option to full, analyse, export and parse commands to output JUnit XML reports.
  • Support to detect ROS2 workspaces.
  • Ability to exclude directories from the analysis by including a COLCON_IGNORE, AMENT_IGNORE or CATKIN_IGNORE file within.
  • Pure Python packages in ROS2 that do not have a CMakeLists.txt use Python files that contain a def main() function to identify nodes.
  • --minimal-output option to full, analyse and export commands, to export just the bare minimum files to view the HTML report.
  • Experimental support to parse Python nodes.
  • Setting in the ~/.haros/configs.yaml file to skip the analysis for certain files based on glob patterns.

[3.7.0] - 2019-09-08

Added

  • Command parse, a convenience command to run model extraction without running plugin analysis.
  • A database of pre-parsed ROS nodes from select distribution packages.
  • A new issue reporting function for plugins, focusing on runtime (Configuration-related) issues.

Changed

  • Fixed and improved the way extraction hints are handled when merging possible candidates.
  • Exported JSON files now have proper indentation.

[3.6.0] - 2019-08-19

Added

  • Top-level --config option to pass a path to a custom configuration YAML file.

[3.5.6] - 2019-08-09

Changed

  • Fixed a bug that required arguments for the analyse -w PLUGIN and analyse -b PLUGIN commands to start with the haros_plugin_ prefix.
  • Improved error messages to distinguish between no plugins being found (at all) and finding no plugins that match user-provided names.

[3.5.5] - 2019-06-25

Changed

  • Fixed a bug that caused a crash when analyse was called on a new HAROS home directory, without calling init before, and using the default YAML project file.

[3.5.4] - 2019-06-24

Changed

  • Fixed a bug that caused the wrong default project file to be loaded when using the --home option.

[3.5.3] - 2019-06-24

Added

  • A new section in project files, nodes, where users can provide extraction hints for nodes outside of the scope of a particular configuration. This avoids duplication of hints across similar configurations.

Changed

  • Fixed a minor bug during error handling that would cause the wrong error to be reported.

[3.5.2] - 2019-06-17

Changed

  • Fixed a bug where user-defined queries were being ignored.

[3.5.1] - 2019-06-17

Changed

  • Fixed an issue where packages had to be included for analysis (with source available) for nodes belonging to such packages, appearing in a launch file, to appear in extracted models.

[3.5.0] - 2019-06-15

Added

  • Added the --home option to the base haros command. This option receives a directory as argument, to use in place of the default $HOME/.haros data directory. It is useful, for instance, to have multiple settings profiles.

Changed

  • All commands (haros analyse, haros export, etc.) perform the necessary setup operations formerly performed with haros init.
  • haros init is no longer required before the first run of HAROS, and it is now used just to reset the ~/.haros directory (or any other given with --home) to a fresh state.

[3.4.1] - 2019-06-15

Changed

  • Improved extraction accuracy for a specific case in C++ where primitives are called within a constructor and the NodeHandle is a default-initialized class member.

[3.4.0] - 2019-06-14

Changed

  • The model extraction process should now be able to resolve typedefs.

Added

  • Support to extract image_transport::SubscriberFilter calls.
  • Support to extract message_filters::Subscriber calls.
  • Support to extract image_transport::Subscriber calls.
  • Support to extract image_transport::Publisher calls.

[3.3.3] - 2019-06-12

Changed

  • Dependency on rosgraph is now optional.
  • Fixed a bug that prevented unresolved namespaces to match with valid extraction hints (e.g. /?/topic would not match with a topic hint).

[3.3.0] - 2019-06-03

Changed

  • Plugins are no longer cloned and installed by HAROS. Instead they are distributed and installed as a pip requirement.
  • The plugin discovery mechanism had to change, in order to comply with the point above. Plugins are now discovered by naming convention (package names starting with haros_plugin_).

[3.2.2] - 2019-05-14

Changed

  • Fixed bug in CMake parser where include_directories expected at least one argument.

[3.2.1] - 2019-04-12

Changed

  • Fixed the auto-generated ~/.haros/configs.yaml to include the new sections to ignore rules and tags.

[3.2.0] - 2019-04-04

Added

  • ~/.haros/configs.yaml file can be used to ignore specific rules or tags.
  • C++ files can be annotated with // haros:ignore-line and // haros:ignore-next-line to exclude specific lines from analysis.
  • Python files can be annotated with # haros:ignore-line and # haros:ignore-next-line to exclude specific lines from analysis.

[3.1.2] - 2019-03-20

Added

  • requirements.txt file.

Changed

  • Replaced yaml.load with yaml.safe_load.
  • Added a monkey patch for pyflwor, so that it now works from a pip install.

[3.1.1] - 2019-03-04

Changed

  • Made the dependency on pyflwor optional (#38).
  • Updated README to reflect this (#40).

[3.1.0] - 2019-01-30

Added

  • HAROS can now detect workspaces built with catkin_make_isolated and catkin build.

[3.0.7] - 2018-12-17

Changed

  • Fixed some bugs when parsing CMake files.

[3.0.4] - 2018-03-08

Changed

  • Fixed a bug crashing first-time runs.

[3.0.2] - 2018-03-08

Changed

  • Fixed a bug preventing the full command from working.

[3.0.0] - 2018-03-08

Added

  • Parsers for CMake and Launch files.
  • Extractor for nodes within packages (which files compile a node).
  • Configuration builder: define your ROS applications (Configurations) to be automatically extracted (C++ only with clang parser).
  • Query engine to operate on extracted models.
  • Graph visualiser for extracted models (in HAROSviz).
  • Plugin entry point to analyse extracted Configurations.
  • User settings file in default .haros directory.

Changed

  • HAROS uses a new metamodel to represent its data.
  • The source code indexing and analysis process was changed, although most (if not all) of these changes should not be noticeable by end users.
  • Command line options for analyse and full have changed.
  • Changed project files (package index files), so that they now allow the definition of custom Configurations and custom queries.
  • Exported JSON formats have changed as a result of the new metamodel.

[2.1.2] - 2017-11-27

Changed

  • Fixed an issue where full and viz commands were crashing if the -d option was not present.

[2.1.1] - 2017-11-05

Changed

  • --headless option for viz does not require any user input.

[2.1.0] - 2017-11-04

Added

  • --headless option for viz and full to allow the server to run without opening a web browser.

[2.0.0] - 2017-11-04

Added

  • A reserved project name all. When running export -p all all available projects will be exported.
  • Dependency on PyLint.

Changed

  • -C base option has been renamed to -c or --cwd.
  • --repositories long option for analyse and full has been renamed to --use-repos.
  • -t/--target-dir option for analyse and full has been renamed to -d/--data-dir.
  • When -d is given, HAROS will try to load an existing analysis database from that directory. If there is one, new analysis reports will be added and stored on that database.
  • analyse -d DIR and export -v DIR will no longer delete the contents of DIR.
  • Changed the directory structure for exported results. For analyse -d DIR and export -v DIR, viz files go into DIR, with an additional projects directory for databases. For export DIR all results go directly into DIR/PROJECT.
  • The main haros module has been rewritten to be more modular and maintainable. It is completely backwards incompatible.

Removed

  • -a option that allowed a specific analysis database to be imported. See -d for more.

[1.0.0] - 2017-10-31

Added

  • Concept of project, more or less equivalent to an index file.
  • -a option for analyse and full commands, to import an existing analysis database.

Changed

  • -d option from viz is now -t for consistency with analyse and full commands.
  • Directory structure for viz and Haros data.
  • Viz dashboard now allows selection of displayed project.

[0.3.0] - 2017-10-25

Added

  • Change log.
  • -t option for analyse and full commands, to specify a target export dir.
  • -v option for export command, to also install viz files.
  • -d option for viz command, to allow the server to serve a custom dir.

Changed

  • Plugins now use a random tmp dir for their operation. This allows multiple instances of haros at the same time.