0.27.x¶
0.27.0¶
- Released:
19.03.2026
✨ New Features¶
Conditional link assessment (sphinx-needs v8 compatibility)
ubCode now supports inline conditions on need links, matching the conditional link assessment feature introduced in sphinx-needs 8.0.0.
Append a filter expression in square brackets after a target ID to assert that the linked need satisfies a condition:
.. spec:: My Specification :links: REQ_001[status=="open"], REQ_002[version>=3]
Each condition is evaluated against the target need’s fields at index time. Links without conditions continue to work exactly as before.
When the condition contains square brackets (e.g. for list indexing), use multiple opening brackets — the parser matches N opening
[with N closing]:.. spec:: My Specification :links: REQ_001[["important" in tags]]
Two new diagnostic codes are emitted:
needs.link_condition_failed— the condition evaluated tofalseagainst the target need.needs.link_condition_invalid— the condition has invalid syntax and could not be parsed.
Condition evaluation is incremental: when a target need changes (e.g. its
statusfield is updated), all needs linking to it with conditions are automatically re-validated.A new per-link-type
parse_conditionsoption controls whether bracket syntax is interpreted as a condition expression or treated as literal ID text (defaults totrue):[needs.links.raw_links] parse_conditions = false
🐛 Fixes¶
Fixed Windows configuration directory path to match pre v0.22.0b1 behavior
The Rust-based license checker introduced in
v0.22.0b1changed the ubCode config directory on Windows, which could break license activation. The pre v0.22.0b1 behavior is now restored., so the config file is expected atC:\Users\<username>\AppData\Local\useblocks\ubcode\ubcode.tomlagain. See the ublicense documentation for more details: Commercial.