Releases: bmw-software-engineering/lobster
Release 0.13.2
-
lobster-html-report
- The timestamp for git SHA now appends
UTC
to make it clear about the timeszone.
- The timestamp for git SHA now appends
-
lobster-codebeamer
- The retry logic uses exponential backoff feature instead of retrying successively
without any time gap. The exponential backoff factor is set to 1 so the
interval of calls will be 1s, 2s, 4s, 8s and so on.
- The retry logic uses exponential backoff feature instead of retrying successively
-
lobster-cpp
:-
Supporting comma-separated lists of tags in one line.
The code snippet below shows that there are two tags,namespace.requirement_id1
and
namespace.requirement_id2
in the same line. -
If
clang-tidy
reports an error which is not part of the exclusion list given through
--skip-clang-errors
, thenlobster-cpp
repeats this error and prints it to standard out. -
Include more characters like
<
and>
as valid C++ function name characters,
which are needed e.g. for C++ templating and operator overloading.
That is, now an operator overload can be traced against a requirement.
Here is an example:std::ostream& operator<<(std::ostream& os, const Fruit<double>& fruit) { // lobster-trace: namespace.requirement_id1, namespace.requirement_id2 os << "Hi there!"; return os; }
With an earlier version this would result in a message like this:
could not parse line file.cpp:10:15: warning: function operator<< traces to namespace.requirement_id [lobster-tracing]
-
Release 0.13.1
-
Introduced API functions:
apply_github_urls
:
Instead of running the toollobster-online-report-nogit
users
can write their own Python scripts and import the function
to achieve the same result as when running the tool.cb_query_to_lobster_file
:
This function downloads items from codebeamer and serializes them in the
LOBSTER interchange format to a file.
This is similar to running the toollobster-codebeamer
.
-
lobster-report
:- Removed the features to use the
with kind
andwith prefix
filter expressions
and thewith valid_status
validation condition in the tracing policy.
It is no longer possible to use those.
The LOBSTER development team has made the design decision that filtering or
validating the input items is not the duty of LOBSTER.
The LOBSTER tools shall follow the philosophy to "do one thing only".
If a user wants to filter out certain items, or make sure that the input is in a
certain quality state, then the user has to take care to prepare the input data
to LOBSTER accordingly.
The reason behind this decision is to focus more on tool stability and tool
qualification in the sense of ISO 26262.
A tool with less features and less lines of code is easier to qualify.
If really necessary, it takes only little effort to write a script and use the
LOBSTER api to read*.lobster
files (generated by e.g.lobster-trlc
), filter it,
and save it back.
- Removed the features to use the
-
lobster-cpptest
- Improve the requirement detection regex. The sub-comment-blocks starting
with@requirement
and ending with@
would be considered.
- Improve the requirement detection regex. The sub-comment-blocks starting
-
lobster-cpp
:- Fixed handling of
--skip-clang-errors
where a closing bracket]
needed to be appended to the error names.
Previously the command line option had to be specified like this:With this fix the bracket is not needed, as one would expect:--skip-clang-errors=clang-diagnostic-error]
See also issue 276.--skip-clang-errors=clang-diagnostic-error
- Fixed handling of
-
lobster-codebeamer
:- Improved error message in case the specified path to the configuration file
is a directory and not a path. - Added error message if neither
import_query
norimport_tagged
is specified
in the configuration file. - Add warning message if the file given through the configuration parameter
import_tagged
contains references which cannot be converted to integer
in base 10. Codebeamer IDs are always integer values, so such a reference
cannot represent a Codebamer item.
- Improved error message in case the specified path to the configuration file
-
lobster-online-report
:- Fixed escaping of characters in paths.
If a path contained whitespace or other characters that are not
allowed in a URL, these are now properly converted.
For example, whitespace becomes%20
, orß
becomes%C3%9F
. - Fixed issue on MacOS: The computation of the relative path between a file
and the repository root failed unless all paths were given in a normalized
form.
Now paths are resolved before computing the relative path.
- Fixed escaping of characters in paths.
-
lobster-online-report-nogit
:- Fixed escaping of characters in paths.
If a path contained whitespace or other characters that are not
allowed in a URL, these are now properly converted.
For example, whitespace becomes%20
, orß
becomes%C3%9F
. - Improved the error message in case a file is not found.
The tool exits with return code 1 instead of crashing with an exception.
- Fixed escaping of characters in paths.
-
lobster-html-report
:- Fixed rendering of HTML in case the input data contained HTML code.
If a LOBSTER item in the input file contained for example the text<s>
in its name, then that was injected into the generated HTML.
This caused an HTML injection issue.
- Fixed rendering of HTML in case the input data contained HTML code.
Release 0.13.0
-
lobster-online-report-nogit
This new tool is similar to
lobster-online-report
, but does not
call thegit
tool to obtain information about the repository.
Instead it relies solely on information provided by the user through
command line arguments. -
lobster-report
- If there are zero items in one level of the tracing policy, then this level now
shows a coverage of 0%.
Previously its coverage was 100%.
Note that the coverage ratio cannot be computed in a mathematical way if there
are zero items, because the formula requires to divide by the total number of items.
If this denominator is zero, obviously the division cannot be performed.
So neither 100% nor 0% makes sense, but choosing 0% is the safe decision
when the tool is used in a safety-critical context.
Having zero input items is probably not what the user intended to do,
and shall be notified about this empty input.
The user has a greater chance to detect this empty input if the report shows 0% coverage
compared to 100%, which indicates that everything is okay.
- If there are zero items in one level of the tracing policy, then this level now
-
lobster-cpp
- The file basename is used to construct the function UID.
A counter is then appended to the basename to handle situations where files in
different folders have the same basename.
Nowlobster-cpp
andlobster-cpptest
use the same logic to generate function UIDs. - The
*.lobster
output file uses the absolute path for location entries instead of a
relative path.
This simplifies the usage of the LOBSTER tools, for instance in a CI system, where
different tools are called from different working directories.
- The file basename is used to construct the function UID.
-
lobster-codebeamer
- Fix for handling
references
as a list of field names instead of a dictionary.
- Fix for handling
-
lobster-html-report
- The SVG's in the HTML report were rendered on every use. Now the SVGs
are rendered once and reused for at all the remaining occurences.
This will reduce the overall HTML file size. - Displays custom data (if provided) in the top-right corner of the HTML report.
- Added Markdown rendering support for the description field in the HTML report.
Added a new command line flag--render-md
to enable this feature.
- The SVG's in the HTML report were rendered on every use. Now the SVGs
-
Separate Coverage Reports
- Separate coverage reports for unit tests (
.coverage.unit
) and system tests (.coverage.system
).
- Separate coverage reports for unit tests (
lobster-0.12.2
-
lobster-online-report
:
Fix for git hash generation for submodules when the tool is executed from
outside a git repository where the submodule is specified as a relative path. -
lobster-cpptest
:
Add support for identical test case files in different folders:
If test cases exist in different files with the same file names, same test case names
and same line numbers, then previously these were treated as duplicate definitions
bylobster-report
.
Nowlobster-cpptest
generates a unique ID by appending a counter to the file base
name, which is used as tag in the final report.
An alternative had been to use the absolute or relative path of the file instead of
just the file base name, but that would have decreased the readability of the report. -
lobster-html-report
:- Fix bug where
/cb
appeared twice in codebeamer URLs, leading to an incorrect URL. - Fix bug where codebeamer URLs always pointed to the HEAD version of the codebeamer item,
even if a specific version was given. - Add encoding tag to HTML header.
This fixes rendering issues of symbols in the generated HTML file.
- Fix bug where
Release 0.12.1
-
Fix for timestamp generation of git hashes in
lobster-html-report
for git
submodules. -
Added configurable retry logic for HTTPS requests in
lobster-codebeamer
.
Introduced support for two new YAML configuration parameters:retry_error_codes
: A list of HTTP status codes (e.g.,[429, 503, 504]
) that should trigger a retry.num_request_retry
: An integer specifying the maximum number of retry attempts if a request fails with a status code fromretry_error_codes
.
-
lobster-cpptest
now writes orphan tests into all output files. -
Fix for
.netrc
-based authentication handling in thelobster-codebeamer
tool when
fetching the machine name (domain name). -
Fix for git hash generation when the
lobster-online-report
tool is executed from
outside a git repository where the .git folder is not available. -
lobster-cpp
uses the relative file path of a c++ file to generate
the unique identifier of a function in that file. This way files with identical
names (but in different folders) are supported, and they can even have
C++ functions with identical names without running into a
"duplicate definition" problem.
Previously only the file's base name was used. -
Reformulate the summary message of
lobster-online-report
so that it becomes
clear whether the input file has been modified, or whether a new output file has been
created. -
lobster-cpptest
now displays a test-name instead of a fixture-name
in the lobster-report and lobster-html-report. -
Add command line argument
--skip-clang-errors
tolobster-cpp
.
This argument allows the user to specify a list ofclang-tidy
errors which shall be skipped.
Release 0.12.0
-
Update installation instructions with
pip3
andpipx
. -
lobster-trlc
andlobster-json
: All command-line arguments except--config
and--out
are
moved to Yaml based config file.--config
and--out
command-line arguments are still supported. -
Add a note to lobster-python
that it can be used for Bazel files, too. -
When running
lobster-python --activity
the tool assumes that Python methods
with the following name pattern are tests:- name starting with
_test
ortest
- or name ending with
test
Previously only
test
was considered. - name starting with
Release 0.11.0
-
Change the behavior of
lobster-codebeamer
such that an output file is always created,
even if the codebeamer server has returned zero items. -
Include dependency to
PyYAML
in requirements.txt. -
lobster-trlc
now requires at least version 2.0.1 of TRLC,
as TRLC 2.0.1 contains the important bug fix
Detecting duplicated components,
including an essential improvement in the
Language Reference Manual.
Without the TRLC bug fixlobster-trlc
will not detect all traces if TRLC authors exploit the bug.
Imagine the following TRLC snippet:Requirement Windscreen_Wiper { derived_from = [Safety_Critical_Requirement] derived_from = [Boring_Requirement] }
Here the trace from
Windscreen_Wiper
toSafety_Critical_Requirement
will not
be detected bylobster-trlc
if the version oftrlc
is less than 2.0.1. -
The
--commit
command line argument fromlobster-online-report
tool is now
removed and no longer available. It was redundant and is already replaced by the
automated git hash feature that doesn't require user intervention and is handled
by the code. See changelog0.10.0
for more information. -
Removed limitation from
lobster-cpptest
which skipped output files that had
less than two LOBSTER items. -
Minor fix of handling multithreading in
lobster-json
. -
Introduced YAML-based configuration for
lobster-json
, replacing individual command-line arguments.- Added a
--config
argument to specify a YAML configuration file. - Eliminated the command-line arguments
--single
,--inputs
, and--inputs-from-file
,
unifying user interaction across all lobster tools. Values can now be specified
using the YAML configuration file. - The argument
--out
is still supported as command line argument, and takes
precedence over any value given in the YAML configuration file.
- Added a
-
The title and placeholder for search box is renamed to
Filter
in
lobster-html-report
tool. -
If the constraint
valid_status
is omitted in the configuration file oflobster-report
,
then no status check is performed. -
lobster-html-report
gives consistent error message if the input file does not exist,
even if the user specified no value. In that case the tool tries to open the file
calledlobster.report
in the current working directory as input, and it gives the
same error message if that file does not exist. -
lobster-codebeamer
used to append/cb
to theroot
parameter in config file
and now the user explicitly needs to add it while specifying theroot
.
Release 0.10.0
- lobster-html-report adds actual git commit hashes to the source in the HTML report.
- lobster-online-report - now contains the actual git commit hashes when the user executes the tool.
- The configuration management for the following tools has been migrated from command-line arguments to YAML configuration files.
- lobster-cpptest
- lobster-codebeamer
Release 0.9.21
-
lobster-codebeamer
now supports query string along with query ID, query string (cbQL) can be passed
as a command line argument to--import-query
for the toollobster-codebeamer
. -
lobster-html-report
has the following updates.- Filter items by status (Ok, Missing, Partial, Warning, Justified)
- Hide/Unhide Issues.
- Search in issues and detailed report.
-
Add support to view version for lobster tools for following tools:
lobster-ci-report
lobster-codebeamer
lobster-cpp
lobster-cpptest
lobster-gtest
lobster-html-report
lobster-json
lobster-online-report
lobster-python
lobster-report
lobster-trlc
Release 0.9.20
-
Add
--compile-commands
flag tolobster-cpp
. This allows to specify a path to the
compile command database and is effectively a wrapper around the-p
argument of
clang tidy
. See the official documentation ofclang tidy
for more details on this
parameter. -
lobster-cpptest
writes absolute paths into its*.lobster
output files instead of
paths relative to the current working directory. -
If a
*.lobster
file contains a tag more than once, then an error message
("duplicated definition") is printed for each consecutive entry with the same tag,
instead of printing it just for the first entry.
The following tools are affected:lobster-codebeamer
lobster-report
-
lobster-gtest
accepts XML nodes other thantestcase
, but ignores them.