Changelog¶
Our versioning scheme uses a two-digit year, a two-digit month, and a release counter within month. Previously the release counter was omitted when zero.
Changes necessitating migration reference the corresponding migration section. References are only rendered correctly as part of the Sphinx documentation. Within GitLab please find the migration document here.
If we’re deprecating features you rely on, please speak up.
20.06.0 (2020-06-29)¶
Added¶
System user for unauthenticated requests
System groups for all unauthenticated users
Granular access control for collections and datasets (EE)
HTTP API to trigger scans and node runs (EE)
Support split bags without prefix
Dropdown container widget (EE)
Database version checks on marv startup
Changed¶
Streamline action verbs supported by access control profiles, needs migration: 20.06.0
Collections are reflected in the database schemas, needs migration: 20.06.0
Publish permissions on a granular per resource basis
Improve test coverage of web APIs for site administration
Improve testing fixtures and general test coverage
Update mpld3 version (EE)
20.04.0 (2020-04-30)¶
This release contains important security fixes. We strongly recommend that all affected MARV installations be upgraded immediately.
Security¶
Fix directory traversal bug that allowed arbitrary filesystem reads when running without nginx. The faulty code got introduced with 19.09.0. Earlier versions and setups using nginx are not affected.
Upgrade tortoise-orm for CVE-2020-11010
Added¶
Support uninstall of python packages in single binary mode (EE)
Support for leaves to upload datasets (EE)
Add infrastructure to manage deprecations warnings
Introduce marv_api package to bundle public API for node development
Changed¶
Update python dependencies and tooling
Update to most recent tortoise-orm, needs migration: 20.04.0
Improved map layer controls
Prepare for asynchronous node execution in multiple processes
Simplify node testing by introducing a wrapper for run_nodes
Start moving code from marv into newly introduced marv_api
Use DAG based on pydantic models to represent node graph
Change marv serve to bind per default only to localhost for development
State clearly that gunicorn without nginx as reverse-proxy is only meant for development
Deprecated¶
In 20.07, marv.api_endpoint and marv.api_group will be removed, please let us know if you need these
All marv.* controls are now available via marv_api and will be removed from old location in 20.07
Removed¶
Unittest dependency of node testing base class
Unused and long deprecated code
Support for shortened setids on CLI
Internally used marv.fork and marv.get_stream controls
Fixed¶
Fix color conversion for bayer mask images
Fix marv discard argument parsing
Fix queries for outdated datasets
Fix documentation for widget pre
Fix pip dist-info discovery for packages contained in bundle (EE)
Fix position of CLI config option in docs
Fix time-wise sorting of messages from different bags
Run ffmpeg in sanitized environment to prevent exec errors in single binary mode (EE)
Load marv pip managed user site only when running from pyinstaller bundle (EE)
Remove distutils trove classifiers that are not applicable anymore
Warning when building documentation
Do not reset map zoom on window resize #67
Properly shutdown node and driver generators upon driver restart
Support passing parameters to marv serve in docker setup #74
Properly close stream file handles before cleaning up temporary directories #75
19.11.1 (2019-12-13)¶
Fixed¶
Let marv pip install understand what packages are contained within bundle (EE)
Let marv python see marv pip installed packages (EE)
19.11.0 (2019-12-01)¶
Added¶
Add query API
Add single binary installation method (EE)
Changed¶
Provide marv serve cli to replace gunicorn, needs migration: 19.11.0
Speedup database queries
Switch from sqlalchemy to tortoise-orm, needs migration: 19.11.0
Remove need for four slashes for absolute database URI #68
Contribution guide to require contributions to documentation be licensed under CC-BY-4.0 instead of CC-BY-SA-4.0
Upgrade python gnupg library and silence log message upon import
Make opencv an optional dependency
Removed¶
Remove unneeded dependencies
Drop support for ancient rosbag formats
Drop support to reference multiple datasets by common prefix
19.09.0 (2019-09-09)¶
Added¶
Add linter and editorconfig
Add marv_ros Python package as new home of ROS specific code
Ship versions of genmsg, genpy, and rosbag to make MARV independent of a ROS installation
Add support for sensor_msgs/CompressedImage #60
Changed¶
Include default matplotlibrc in marv-robotics Python distribution
Replace cv_bridge with pure python conversions
BREAKING Switch to Ubuntu Bionic base image without ROS but Python 3.7
BREAKING Require Python 3.7
Migrate code to Python 3.7
Cleanup code according to linter feedback
Ignore internal tables of newer sqlite versions for dump and restore
Update Python requirements to latest versions
Clean older changelog entries and add links to issues and MRs
Speed up rendering and sorting of tables with large number of rows
Drop flask-sqlalchemy in favour of plain sqlalchemy
Switch from flask to aiohttp powered by gunicorn needs migration: 19.09.0
Removed¶
Remove unneeded dependencies
Fixed¶
Security¶
Rebuild images published on dockerhub for latest release and master branch by GitLab CI nightly if a newer base image is available
19.07.0 (2019-07-14)¶
Fixed¶
Fix pycapnp wrapper to handle nested lists
Fix broken CE docker image builds #66
Fix pasting into multi-select input field #65
Automatically cleanup node output from unsuccessful previous runs #64
Let gnss node gracefully handle bags without valid messages !65
Fix loading of raster tiles during window resize #63
19.04.0 (2019-04-30)¶
Added¶
Contribution guide and workflow to accept contributions
High-lighting of last visited dataset when returning from detail view to listing view
Support display of dates and times in local time, server time, or UTC (EE)
Option to filter on table columns (EE)
Option to hide table columns (EE)
Documentation for adding custom static frontend files
Generation and validation of hashes for Python requirements
Tests for CE merge requests as part of internal CI runs
Filter types for float and int
Changed¶
End-to-end tests run reliably (EE)
Move to GitLab to consolidate tooling #54
Remove quickstart instructions from README in favour of normal installation instructions
Mount scanroot readonly in docker container
Manage requirements files in central location for ease of use
Derive MARV package inter-dependencies from requirements files
Upgrade Python tooling to latest versions
Upgrade Python dependencies to latest versions
Reformat changelog
Improve error message in ffmpeg node when conversion fails
Fixed¶
Include requirements.in files in Python source distributions
Set default unit of timedelta filters to seconds #58
Hitting enter key in subset filter now applies filters
Fix initial zoom level for maps with empty geometries
Fix support for GeoJSON points in trajectory widget #50
Let trajectory node produce correct GeoJSON for segments with only one coordinate
Fix filtering of date fields with greater than or equals operation
Only display successfully converted videos in video detail section
Security¶
Upgrade pyyaml library for CVE-2017-18342
Upgrade requests library for CVE-2018-18074
19.02.0 (2019-02-09)¶
18.07 (2018-07-22)¶
Added¶
Document pattern for reducing multiple streams
Add cli command for database dump and restore
Add controls to adjust point cloud playback speed
Support querying for datasets with missing files
Support link widgets with download attribute
Changed¶
Fixed¶
Allow fulltext node to be used while directly subscribing to string topics
Document the need for configured nodes to define a schema
Document the need for setting stream headers
Improve cli exception handling and error messages for certain edge cases
Reset graphical tag filters on collection switch
Fix utm conversion for gnss node #39
Properly set and reset outdated state of datasets
Consistently set cache control header to disable caching of all content
18.05 (2018-05-08)¶
Added¶
Enable loading dataset node output in comparison views
Support setting UID and GID for docker installation #34
Changed¶
Auto-initialise previously unintialised site upon start
Set docker container timezone to host timezone
Set default matplotlib backend to Agg, removing the need to set it manually
18.04 (2018-04-30)¶
Added¶
Add command-line group management to Community Edition
Support configuration of access control lists
Add docker setup with example site
Changed¶
Speed-up streaming of videos and point clouds with NGINX reverse-proxy
Improve point cloud player controls
Improve trajectory player controls
Make styling of widgets more consistent
Switch from nosetest to pytest and cleanup requirements
Drop Bootstrap v3 in favour of slim custom Bootstrap v4 derivate
Merge and cleanup individual repositories
Installation methods have significantly changed, reinstall is recommended: 18.04
Fixed¶
Fix trajectory generation
Fix erroneous self-referentiality of some capnp structs
Fix color format for opencv bridge
18.03 (2018-03-10)¶
Added¶
Add more flexible GeoJSON properties to map widget
Make marker geometry configurable on map widget
Draw markers using last known heading on map in absence of explicit rotation values
Document creation of custom capnp types
Ship capnp types for atomic values and timed values
Add, list, and remove comments via command-line
Fixed¶
Display correct tags when paging in listing
Render GeoJSON lines with correct width in Firefox
Fix command-line tagging #26
Gnss node handles absence of valid GPS messages #28
Add missing int and float formatters
Validate names for newly added users and groups
Document disabling of uwsgi buffering to enable downloads larger than 1GB #24
Fix tags displayed in listing table for any but the first page #27
Fix documentation in several places
18.02 (2018-02-05)¶
Added¶
Support bag sets without timestamp in filenames #16
Support running selected nodes for all collections
Support listing of and force running dependent nodes
Support loading of custom.css and custom frontend files
Changed¶
Fixed¶
Fix sexpr for getting node without dot qualifier
Fix filtering for datetime fields
Fix loading of cloned persistent nodes
Handle empty bag files
Log error messages instead of several exceptions
17.11 (2017-11-17)¶
Added¶
Document MARV Robotics nodes
Document configuration directives
Document HTTP API
Document migration from Community Edition 16.10
Support import of datasets from Community Edition 16.10
Co-release 17.11 Community and Enterprise Edition
17.08 (2017-08-23)¶
Added¶
Custom widget support
OAuth support
Improve documentation for scanners
Improve documentation for frontend widgets
Video widget improvements
Support more image formats
Support system-wide configuration
Improve cli error handling and logging
Fixed¶
Frontend bug and styling fixes
17.06 (2017-06-16)¶
Added¶
Allow concurrent execution of multiple node run processes
Admin panel for user and group management
Changed¶
Make node syntax clearer to improve the node authoring experience
Human readable pathnames in store
Improve dataset query via command line
Improve CLI logging
Advanced access control
Improve point cloud handling
Fixed¶
Improve tag cloud styling with a responsive design
Keep frontend state and scroll positions between page refreshes
Speed up loading of large collections
Render multi colored trajectories with markers correctly
17.05 (2017-05-05)¶
Added¶
Implement generator based node concurrency
Optionally spawn node instances per topic or message type
Allow collections to define an arbitrary number of scanroots #4
Improve performance with reduced JavaScript footprint
Improve node runner and introduce basic query cli
Add configurable compare view to display data of multiple datasets
Add graphical live filters to listing page
Make summary section of detail view customizable
Display time added column
Support most of rosbag play switches in marv ros play
Changed¶
Store data in an efficient binary format
Use schemas to enforce data integrity
Manage multiple collections of different datasets
Configure detail views in Python nodes
Replace Python code in config file with simpler expressions
Redesign map widget, support trajectory animations
Stream huge datasets to point cloud widget
Improve mass tagging performance
Improve listing update performance
16.10 (2016-10-07)¶
Initial release