Skip to content

[pull] main from mhatzl:main - #2

Open
pull[bot] wants to merge 179 commits into
WiresmithTech:mainfrom
mhatzl:main
Open

[pull] main from mhatzl:main#2
pull[bot] wants to merge 179 commits into
WiresmithTech:mainfrom
mhatzl:main

Conversation

@pull

@pull pull Bot commented Jun 26, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

mhatzl and others added 30 commits April 9, 2025 18:26
Useful to display covered lines in reports.
Moved content fields to indirections via hashes to reduce duplicating
content if related fields change but not the content.
This allows to e.g. track the git repository+commit traces and
requirements where retrieved from.
Renames projects to products
mhatzl and others added 12 commits June 24, 2026 18:04
Since excluded and deprecated requirements cannot be verified, it would
not be possible to hit 100% manuals verified even if all usable ones are
verified
Needed for cargo publish mantra to include the stored queries
Switching to mantra-macros and mantra-procm.
Re-exported mantra-macros in mantra under feature "macros"
The underlying database is now able to handle:

multiple products in one database
multiple parents for requirements
well-known test & coverage formats such as JUnit and Cobertura
test result overrides from reviews
different trace kinds such as satisfies, verifies, clarifies and link
optional requirements
line coverage data is stored in the database
coverage exclusions from annotations found in code
Easier interfacing with external tools:

JSON schemas are defined for every collection type mantra manages (e.g. requirements, test runs, annotations, reviews)
built-in collection internally converts to structs representing those schemas
Report restructuring:

reports are now split into multiple files
structure is built to publish a report as static HTML website
prevents large single report files
easier customization for specific pages through templates
Current limitations:

traces only detected in Rust code
traces in (doc-)comments are not detected
Markdown format to define requirements is not yet implemented
macro traces do not generate defmt logs
Next steps:

Option to set defmt logs for embedded requirements coverage detection
Markdown formats to define requirements and create reviews
detect traces in Rust comments
detect traces in plain text and Markdown files
GitHub and local dev behave differently especially with the wiki git
submodule
@pull pull Bot locked and limited conversation to collaborators Jun 26, 2026
@pull pull Bot added the ⤵️ pull label Jun 26, 2026
Hoverbear and others added 16 commits June 27, 2026 16:49
Adds `rustfmt` and `clippy` in rust-toolchain.toml for GitHub runners to install all needed components for CI jobs.

Note: job using `clippy` is currently commented due to mantra containing some unused code parts
Crates.io cannot handle relative links from a workspace README, causing a difference between the GitHub landing page and crates.io
Indirect unverified or skipped state was not properly forwarded to parent requirement of mandatory child if the child itself only had optional, excluded, or deprecated children
Fix only in the mantra crate, so all others stay at v0.8.0
* Add test data for the Markdown requirements format

* Allow traces to explicitly set the product id

besides string literal for the requirement ID, traces now accept
"{ id: "<requirement ID>", product_id: "<product ID>" }"

* Adapt requirement trace tables

It is now possible to explicitly set a product id for a requirement trace.
A replaced requirement is marked as deprecated
* Add basic Markdown parsing for req definitions

Settings from bullet lists are not yet extracted

* Add initial Markdown parsing to define requirements

* Add req Markdown parsing tests

* Fix db connection pooling for mult products

"try_begin()" may fail to start a transaction if more than one product is collected in one "mantra collect" call. Switched to "begin()".
Likely due to the prev. connection not being fully released when trying to aquire connection for the next product.

* Add multi-product Markdown test

Tests explicit product-id filtering in frontmatter

* Add requirement origin to report template

Test content added to show how origin is displayed for reqs from Markdown files

* Switch tree to blob for origin

This fits with GitHub's URL for files of any branch.

* Highlight req Markdown syntax in test content

Explicitly stating product id makes switching between branches as base easier.
Missed to set `no_std`. Crate would have already been compatible.
* Make mantra-macros no_std compatible

Missed to set `no_std`. Crate would have already been compatible.

* Add feature to set and extract coverage defmt logs

With the "defmt" feature enabled, macros will print a defmt msg including the line and file the macros are used at.
This allows to get coverage information from embedded targets

* Set defmt and log logs for mantra-macros

* Impl Error for ExtractError in mantra-macros

Allows passing it as error context.
* Fix exclude propagation

* Fix optional propagation

* Fix manual propagation

* Update stored query data

* Add indirect verified state test

Checks effects of marker propagations like manual and optional
* Fix indirect state propagation from unverified manual reqs

* Add test case for manual unverified state propagation
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants