FREETEXT-TEXT migration, adding LINKs to arbitrary nodes, improved validation messages
This release contains a significant, non-breaking change that affects the entire StrictDoc codebase and the SDoc data model: the FREETEXT-TEXT
migration.
The description of the migration and the migration paths are described in the User Guide, https://strictdoc.readthedocs.io/en/stable/strictdoc_01_user_guide.html#freetext-text-migration-june-2024.
/cc @adamgreig @BenGardiner @bernhard-tuvsud @dahbar @elfman2 @fniu @gregshue @haxtibal @i-interprete-on-the-fly @kestewart @lochsh @nicpappler @richardbarlow @RobertoBagnara @simhein @vik378
Other changes in this release:
-
The validation messages for the uniqueness of MID fields were improved for the Document, Section and Requirement/Text nodes. Thanks to @bernhard-tuvsud for the improvement suggestion.
-
Due to the FREETEXT-TEXT migration, it is now possible to add LINKs to arbitrary nodes, such as REQUIREMENT and TEXT. Previously, LINKs could be added only to SECTION nodes. Thanks to @haxtibal for contributing the initial implementation.
-
The UI validations have been added for SingleChoice and MultipleChoice fields. Thanks to @haxtibal for contributing the multiple choice field validation.
-
The experimental Graphviz/Dot traceability graph generator has been removed because this feature didn't show much value, mainly due to the static and non-programmable nature of PDF and SVG outputs produced by Graphviz.
What's Changed
- UI: Form validation: SingleChoice and REQUIRED fields by @stanislaw in #1829
- backend/sdoc: validate grammar from file like a normal grammar by @stanislaw in #1831
- backend/sdoc: instantiate doc/grammar meta models at start time by @stanislaw in #1832
- backend/sdoc: grammar: teach SDocNodeField to parse FreeText parts by @stanislaw in #1833
- backend/reqif: --reqif-multiline-is-html: extend the integration test by @stanislaw in #1834
- tests/integration: add an RST code block test just in case by @stanislaw in #1838
- backend/sdoc: introduce [TEXT] node by @stanislaw in #1837
- Feature: LINK to requirements and custom nodes (static export only for now) by @haxtibal in #1835
- Code climate: remove useless init.py files by @stanislaw in #1840
- Code climate: Introduce THIS_TEST_FOLDER to increase the portability of most itests by @stanislaw in #1842
- Feature: [LINK] from all fields of Requirement or other nodes by @stanislaw in #1843
- export/html, LINK: referenced node shows an anchor link if referenced with [LINK] by @stanislaw in #1844
- UI: requirement_form_object: improve handling of multiline field boundary by @stanislaw in #1845
- Code climate: tests/end2end: anchors -> LINK_AND_ANCHOR by @stanislaw in #1846
- docs: release notes for 0.0.56 by @stanislaw in #1847
- export/html and UI: Rendering [TEXT] node, basic end2end tests by @stanislaw in #1848
- UI: Delete section/node: Add validations to the confirmation window by @stanislaw in #1849
- backend/reqif: when --reqif-multiline-is-xhtml, generate FREETEXT spec type attribute as XHTML by @stanislaw in #1851
- HTML2PDF: Fail early if feature is not enabled by @haxtibal in #1850
- UI: Create node: parse and validate LINK/ANCHOR by @stanislaw in #1852
- UI: Create node: parse, validate, and render LINK/ANCHOR by @stanislaw in #1854
- html: Rename "parent relations" to "parents" and "child relations" to "children" by @haxtibal in #1855
- UI: Delete node: incoming links to anchors validation by @stanislaw in #1859
- UI: Create/Update/Delete node: Implement all existing cases related to LINK/ANCHOR by @stanislaw in #1862
- UI: HTML markup changes and adjust remaining tests, removing dependencies on FREETEXT by @stanislaw in #1866
- UI: Diff screen: Ensure escaping of requirement fields by @stanislaw in #1867
- backend/sdoc: Document: remove .free_texts by @stanislaw in #1868
- Node machine identifiers (MID): improve uniqueness validation message by @stanislaw in #1869
- Bump version to 0.0.57a2 by @stanislaw in #1870
- Remove Graphviz and DocumentDotGenerator by @stanislaw in #1873
- UI: Edit grammar element relations form: TEXT node can have no relations by @stanislaw in #1871
- UI: Ensure that documents with HTML markup get rendered correctly when edited by @stanislaw in #1872
- tasks: remove pylint and flake8, create aliases for most common tasks by @stanislaw in #1874
- docs: prepare the release notes for FREETEXT-TEXT migration by @stanislaw in #1875
- UI: Node form validation: allow empty SingleChoice fields when REQUIRED is False by @stanislaw in #1877
- UI: Support MultipleChoice in requirement form by @haxtibal in #1878
- UI: Do not auto-generate UID for TEXT nodes for now by @stanislaw in #1879
- docs: update release notes by @stanislaw in #1880
- docs: User Guide: implement FREETEXT-TEXT changes by @stanislaw in #1881
- cli: passthrough: --free-text-to-text option to migrate FREETEXT->TEXT by @stanislaw in #1882
- docs: User Guide: describe FREETEXT-TEXT migration path by @stanislaw in #1883
- backend/sdoc: writer: --free-text-to-text for SECTIONs by @stanislaw in #1886
- export/html: update hints on node control by @mettta in #1885
- UI: TRM: Exclude text nodes from the list by @stanislaw in #1893
New Contributors
Full Changelog: 0.0.56...0.0.57