Several enhancements in Diff/Changelog and source node parsing, legacy @sdoc markers removed, several bug fixes, and improvements for edge cases
This release includes several enhancements, the removal of legacy @sdoc markers, several bug fixes, and improvements for edge cases.
The Diff/Changelog feature has been extended to support the new --generate-diff-git option which allows generating the Diff/Changelog screens for a given pair of Git revisions.
The legacy @sdoc marker has been removed from the codebase. From now on, only the @relation markers are recognized when linking requirements with source code files.
An edge case has been fixed where StrictDoc's FileFinder was detecting Linux pipe files that could not be processed meaningfully by StrictDoc’s source file generator. With this release, such files are now ignored.
The Diff/Changelog feature has been extended to better support change tracking of included documents. Previously, only the contents of included documents were visualized, but not the root nodes of the documents themselves. Now, changes to included documents, such as their UID or TITLE, are displayed correctly.
The ReqIF-to-SDoc converter has been improved to handle integer fields by treating them as string grammar fields. Since StrictDoc does not yet support INTEGER fields, they are converted to STRING fields during import. This workaround was sufficient to support the user’s use case. Thanks to @kerfallaCisse for reporting this issue.
The HTML2PDF generator has been fixed to correctly resolve document paths when printing a bundle document that includes other documents. This edge case involved a combination of three features — HTML2PDF, bundle documents, and composable documents — that had not previously been tested to work together. Thanks to @CMon for reporting this issue.
The source code node parser has been updated to recognize only those field names defined in the corresponding document grammar. This change prevents the parser from mistakenly interpreting unrelated FIELD: VALUE strings found in source code. In addition, several improvements have been made to the functionality that extracts SDoc nodes from source code comments, inspired by our proof-of-concept work on modeling Linux kernel requirements directly within the Linux source code. Some aspects of this work are not yet documented but will be once the overall concept becomes more mature. Many thanks to @haxtibal for contributing these improvements.
What's Changed
- Bump version to 0.14.0 by @stanislaw in #2501
- fix(FileFinder): ignore Linux pipe files by @stanislaw in #2502
- docs: clarify that single-line fields are not rendered by RST/LINK parser by @stanislaw in #2505
- fix(backend/reqif): improve handling of documents with no relations and treat integer fields as string grammar fields by @stanislaw in #2506
- fix(html2pdf_generator): resolve the document output path correctly by @stanislaw in #2508
- docs: update release notes, slide deck, roadmap and backlog by @stanislaw in #2509
- feat(html2pdf): enable correct resolution of LINKs when included document is printed to bundle document by @stanislaw in #2510
- trace: add missing traces between L2, source code and tests by @stanislaw in #2511
- trace: add missing traces between L2, source code and tests (focus on tests) by @stanislaw in #2512
- trace: add missing traces between L2, source code and tests (focus on tests - part 2) by @stanislaw in #2513
- trace: add traces for Create/Update node relation by @stanislaw in #2514
- trace: add itest traces to L2 ReqIF by @stanislaw in #2516
- chore(tests/end2end): remove all init.py files by @stanislaw in #2515
- trace: more traces to L2: ReqIF, clone node, delete node, tool identification by @stanislaw in #2517
- fix(backend/sdoc_source_code): general reader: always set function marker to entire file by @stanislaw in #2518
- feat(export/html): remove legacy --filter-sections, rename: --filter-requirements -> --filter-nodes by @stanislaw in #2519
- chore(export/html): drop the legacy 'passthrough' command, migrate itests to export --formats=sdoc by @stanislaw in #2520
- feat(server): generate only a source single file when requested, not all source files by @stanislaw in #2521
- chore(backend/sdoc_source_code): remove legacy @sdoc/nosdoc by @stanislaw in #2522
- feat(diff/changelog): support basic change tracking for included documents by @stanislaw in #2523
- feat(backend/sdoc_source_code): add support for multiline scope=line markers in Python code by @stanislaw in #2524
- feat(diff/changelog): cli: add generation of diff/changelog from a pair of Git revisions by @stanislaw in #2525
- feat(diff/changelog): add a quick shortcut to viewing HEAD^ vs HEAD and origin/main vs HEAD by @stanislaw in #2526
- Add sanity checks for source_nodes configuration by @haxtibal in #2527
- docs: update roadmap and workspace by @stanislaw in #2528
- fix(export/html2pdf): implement a proper handling of LINKs to documents in bundle and non-bundle documents by @stanislaw in #2533
- feat(backend/sdoc_source_code): tighten lark grammar for custom source nodes by @haxtibal in #2532
- docs: update release notes by @stanislaw in #2534
- chore: configure Dependabot for GitHub Actions and Python by @stanislaw in #2535
- chore: bump the github-actions group with 3 updates by @dependabot[bot] in #2536
- feat(core): introduce framework for user-defined plugins by @stanislaw in #2537
- chore: rename: DocumentCachingIterator -> SDocDocumentIterator by @stanislaw in #2538
- feat(backend/sdoc_source_code): Support merging sdoc nodes with soure nodes by @haxtibal in #2539
- feat: display node validations on the HTML screens by @stanislaw in #2541
- fix(export/html): Consider MARKUP = Text option in source file view by @haxtibal in #2545
- feat(backend/sdoc_source_code): Support remapping custom tags to sdoc fields by @haxtibal in #2543
- fix(backend/sdoc_source_code): Don't auto-generate sdoc nodes for function comments without fields by @haxtibal in #2547
- fix(backend/sdoc_source_code): Don't auto-generate sections for merged source nodes by @haxtibal in #2548
- docs: update release notes and roadmap by @stanislaw in #2550
New Contributors
- @dependabot[bot] made their first contribution in #2536
Full Changelog: 0.14.0...0.15.0