Releases: OpenSimulationInterface/osi-validation
v1.1.0 - ASAM OSI-Validation "Accurate Arnoux"
What's Changed
- Recommended use of Python venv
- Changed TravisCI to GitHub Actions
- remove doxygen xml support
- remove sqlite log processing only use plaint text for validation log output (simplification)
- move default rules into
rules
folder fromrequirements-osi-3
folder - replace progressbar with tqdm
- remove lzma decoding and encoding (simplification)
- bugfix: BaseMoving nested attribute validation
- bugfix: update yaml loading ruaml
- bugfix: setup.py fix the default rules folder copying into site-packages with different python versions
- remove protocpp from osi validator dependency
- Remove kpi folder
- Remove pre-parsed rules in rules folder
- Remove lfs
- Remove lzma from docs
- Update test trace file
- Replace rules folder in docs
- Port rst to adoc
- Update README.md: links and example commands
- Created requirements_develop.txt for workflow
- Pinned package versions
- Used Python 3.8 in workflow
- bump actions versions
- pin black to black==23.12.1
- removed unused packages
- Update OSI submodule to version 3.6.0 (#54)
- Use same protobuffer version as in OSI repository
- use protobuf 3.20.1 in ci workflow and pin version to the same version in requirements.txt and setup.py
- remove optional installation method in README
- allow higher package versions
- bump year in license
- add git+osi requirement
- add note about OSI CCB
- Fix parallel run
Resolves #49
Resolves #46
Resolves #45
Resolves #44
Resolves #43
Resolves #42
Resolves #31
Full Changelog: v1.0.0...v1.1.0
v1.0.0 - OSI Validator
Purpose
This is the first release of the OSI Validator. Its purpose is to parse a set of rules from the osi repository and apply them on a *.osi trace file according to their definition in the OSI message documentation. The overall principle is illustrated in the following grafic. Have fun and provide feedback!
Change Notes
- Added git lfs for storing trace files
- Created PR and issue templates for the repository
- Added OSI and proto2cpp as submodule packages
- Implemented travis CI to test the whole validation process with different arguments
- Added validation for the *.osi file format
- Added validation for *.lzma compressed files since they are efficiently compressed
- Added MP License to the repo
- Updated README according to the (K)eep (I)t (S)imple (S)tupid principle
- Added blast und buffersize to the command line argument of osi-validator
- Added parallel execution as command line argument
- Added installation instructions for the validator with global and local python environment
- Added local documentation for the validator
- Added reference documentation into the sphinx documentation of each python class in osi-validator
- Added a simple contributor's guideline
- Added a simple usage guideline with an example
- Added a rules2yml.py script to parse rules from OSI comments and generate yml files which can be used for validation
- Added unit tests for each implemented rule
- Formatted the code with black formatter
- Added code analyzer vulture to find dead unused python code
- Added all dependencies to the setup.py
- Renamed rules with intuitive names
0.1a0
This is the first release of the OSI Validation Software.
Overview
The OSI Validation Software checks if an OSI scenario comply with rules that are explained in the KPIs documentation (see README.md). These rules try to make the scenario using realistic data.
Implementation
The software is made with Python 3.7 and use the Protocol Buffers Library for Python and YAML to store the rules.
Detailed description
Message checking
The message checking use the Python Protobuf library and parallelize the messages checking (no correlations between different timestamp except for uniqueness of timestamps).
Current available rules for message attributes are:
- first_element
- in_range
- is_global_unique
- is_iso_country_code
- is_maximum
- is_minimum
- is_set
- is_set_if
- is_valid
- last_element
The details for each rule are in the documentation.
Customizable rules
The rules are now stored in YAML files and can be customized there.