Releases: useblocks/sphinx-needs
8.1.1
What's Changed
- π Fix Docker build by switching PlantUML source to GitHub releases by @ubmarco in #1708
- β‘οΈ Add
NeedItem.is_in_document()by @chrisjsewell in #1709 - π Fix
needs_schema_definitionstriggering full rebuilds by @ubmarco in #1712 - π Release v8.1.1 by @ubmarco in #1713
Full Changelog: 8.1.0...8.1.1
8.1.0
This release focuses on filter performance improvements and bug fixes.
Full Changelog: 8.0.0...8.1.0
Performance
-
β‘οΈ Short-circuit simple filter expressions to avoid
eval()overhead (#1677)Common filter patterns (e.g.
id == "REQ_001",type == "spec") are now matched and evaluated directly without invoking Python'seval(), significantly reducing filtering time for large need sets. -
β‘οΈ Add
NeedItem.filter_context()to avoid costly{**need}unpacking (#1706)Filter evaluation no longer creates a full dictionary copy of each need on every filter call, reducing memory allocations and improving throughput.
-
β‘οΈ Cache
NeedLinkfilter string (#1705)Pre-compute and store the filter string on
NeedLinkconstruction, avoiding repeated string formatting on every access throughNeedItem.__getitem__.
Bug fixes
-
π Fix
needflowrendering very dark / black nodes when a need type has nocolorset inneeds_types(#1664, #1702).
Previously a hard-coded#000000fallback was used as the fill color, which produced unreadable nodes β especially under browser dark mode. When no color is configured, no color is emitted and the diagram engine's default node color is used.Note: This is a minor behavior change for users with
needs_typesentries that omit thecolorkey: diagrams (needflow,needuml,needgantt) that previously rendered such nodes as solid black will now render them with the diagram engine's default node color (typically light). To preserve the old appearance, set"color": "#000000"explicitly on the affectedneeds_typesentry. -
π Fix
:need:role in section headings by registeringNeedRefnode with Sphinx's LaTeX builder (#1700).
8.0.0
See https://sphinx-needs.readthedocs.io/en/stable/changelog.html
What's Changed
- π Fix 7.0.0 release date by @ubmarco in #1666
- π Fix linkcheck CI job warnings by @Copilot in #1667
- π§ͺ Add tests for variants in links by @ubmarco in #1669
- π DOCS: add sphinx-ai-index to sphinx docs builder by @Felix-Ruh in #1671
- β»οΈ Introduce
NeedLinkstructured internal representation for links by @chrisjsewell in #1670 - π§ Use
NeedLinkdirectly inupdate_back_linksfunction by @chrisjsewell in #1672 - β»οΈ Store
NeedLinkinstead ofstrinLinksLiteralValueandLinksFunctionArrayby @chrisjsewell in #1673 - β»οΈ Add
_split_link_listparser with condition syntax support by @chrisjsewell in #1674 - β¨ Add conditional need link assessment by @Copilot in #1675
- π§ Use
get_links(as_str=False)in needextend to avoid round-trip serialization by @chrisjsewell in #1678 - π§ Store
NeedPartData.backlinksasNeedLinkinstead ofstrby @chrisjsewell in #1679 - π Parse link conditions from imported and external needs by @chrisjsewell in #1680
- π Add
needs_json_include_link_conditionsconfig option by @Copilot in #1681 - β»οΈ Store NeedLink on NeedRef node at parse time instead of re-parsing later by @Copilot in #1682
- π§ Bump ENV_DATA_VERSION to 4 for NeedLink storage format change by @Copilot in #1683
- π Add
parse_conditionsconfiguration for link types by @Copilot in #1684 - β»οΈ Fix
links_from_contentto use parsed doctree nodes instead of regex by @chrisjsewell in #1685 - π§ͺ Add some more tests for links_from_content by @chrisjsewell in #1686
- π Release v8.0.0 by @chrisjsewell in #1688
New Contributors
- @Felix-Ruh made their first contribution in #1671
Full Changelog: 7.0.0...8.0.0
7.0.0
See https://sphinx-needs.readthedocs.io/en/latest/changelog.html#release-7-0-0
What's Changed
- π§ Add
validate_extra_option_schemaby @chrisjsewell in #1602 - π§ Store full schema on
FieldSchemaby @chrisjsewell in #1603 - β»οΈ Move
needs_statusesandneed_tagschecking to schema validation by @chrisjsewell in #1605 - π§ Remove use of
extra_optionsafter config resolution by @chrisjsewell in #1607 - β¨ Add
uniqueItemstoarrayschema validation by @chrisjsewell in #1610 - β¨ Add
needs_fields, deprecateneed_extra_options,need_statuses,need_tagsby @chrisjsewell in #1611 - β¨ Add
defaultandpredicateskeys toneeds_fieldsandneeds_extra_links, deprecatesneeds_global_optionsby @chrisjsewell in #1612 - β¨ Add
nullablekey toneeds_fieldsitems by @chrisjsewell in #1613 - π§ Simplify
import_prefix_link_editby @chrisjsewell in #1615 - β¨π Add
parse_variantstoneeds_fields/needs_extra_link, deprecateneeds_variant_optionsby @chrisjsewell in #1614 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #1600
- π§ Fix typo by @ubmarco in #1618
- π§ Move link
schematoLinkSchemaby @chrisjsewell in #1617 - π§ Add
AGENTS.mdby @chrisjsewell in #1621 - π§ Update Python version for Codecov by @ubmarco in #1625
- π Fix typo in documentation for GitHub service example by @ahamez in #1634
- π Minor improvements for
needs.fieldsinheritance by @chrisjsewell in #1635 - π§ͺ Add tests for
create_inherited_fieldby @chrisjsewell in #1636 - π Fix small grammatical error in need.rst by @ahamez in #1637
- β»οΈ Migrate use of
extra_linksto Schema-Based Access by @chrisjsewell in #1638 - π§ Refactor
populate_field_typeto use type-directed schema walking by @chrisjsewell in #1639 - β»οΈ Add add_field API; deprecate add_extra_option by @chrisjsewell in #1641
- π§ Rename "option" to "field" by @chrisjsewell in #1642
- π Allow
add_fieldAPI to set defaults/predicates by @chrisjsewell in #1643 βΌοΈ Make need fields added by services nullable and default to null by @chrisjsewell in #1644βΌοΈ Makeneeds_fieldsandadd_fielddefault to nullable and no default by @chrisjsewell in #1645- π Default values of extra fields now checked against schema definitions by @chrisjsewell in #1647
- π Fix schema validation returning per need errors by @PhilipPartsch in #1640
- π Fix typo in sort of needtable documentation by @PhilipPartsch in #1619
- π§ Simplify
generate_needsfunction by @chrisjsewell in #1651 β οΈ Separate reduced vs full need representation for schema validation by @chrisjsewell in #1652- π§ simplify field/link validation by @chrisjsewell in #1654
- π§ Refactor schema validation: separate select filtering from local validation by @chrisjsewell in #1655
- β¬οΈ Support Sphinx 9 and Docutils 0.22 by @mitya57 in #1653
β οΈ Migrateneeds_extra_linkstoneeds_linksby @chrisjsewell in #1649- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #1623
- π Fix needextend data purging and deterministic ordering by @chrisjsewell in #1657
- π§ Add GitHub Copilot setup workflow for dev environment configuration by @Copilot in #1628
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #1656
- π Expose
parse_dynamic_functionsin field/link configuration by @chrisjsewell in #1660 - β»οΈ Replace jinja2 with minijinja for template rendering by @Copilot in #1659
- π Fix
needs.jsonread/write when no needs are present by @qznc in #1661 - π Release v7.0.0 by @chrisjsewell in #1662
New Contributors
- @ahamez made their first contribution in #1634
- @mitya57 made their first contribution in #1653
- @Copilot made their first contribution in #1628
- @qznc made their first contribution in #1661
Full Changelog: 6.3.0...7.0.0
v6.3.0
What's Changed
- π Relative paths from toml configuration by @chrisjsewell in #1589
- π Ensure
extra_linksschemacontains item type by @chrisjsewell in #1595 - π Validate all schemas compile during config resolution by @chrisjsewell in #1596
- β»οΈ Remove typeguard dependency by @chrisjsewell in #1597
- β¬οΈ Support Python 3.14 by @chrisjsewell in #1598
- π Fix typo in tutorial documentation by @dskkato in #1591
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #1586
New Contributors
Full Changelog: 6.2.0...6.3.0
6.2.0
What's Changed
- π§ͺ Fix schema benchmark tests by @ubmarco in #1577
- π§ͺ Improve schema process benchmarking by @chrisjsewell in #1579
- π§ Reduce nested functions in
get_ontology_warningsby @chrisjsewell in #1578 - π Improve schema validation performance (pre-compute validators) by @chrisjsewell in #1581
- π Improve schema validation performance (use jsonschema-rs) by @chrisjsewell in #1582
- π Improve schema validation performance (improve reduce_needs) by @chrisjsewell in #1583
- π Improve schema validation performance (cache recursive validators) by @chrisjsewell in #1584
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #1421
- π Release v6.2.0 by @chrisjsewell in #1585
Full Changelog: 6.1.1...6.2.0
v6.1.1
What's Changed
- π Allow . in schema regex by @ubmarco in #1568
- π Fix schema network type injection by @ubmarco in #1570
- π needs.json for nullable fields by @ubmarco in #1571
- π§ Remove mutable global variables by @chrisjsewell in #1575
- β¨ Add
needs_schema_validation_enabledconfiguration by @chrisjsewell in #1574 - β¨ Add
allow_type_coercionconfiguration for external/importneeds.jsonreads by @chrisjsewell in #1573
Full Changelog: 6.1.0...6.1.1
v6.1.0
What's Changed
- π Fix schema rule severity by @ubmarco in #1535
- π Co-locate dynamic and variant function docs by @chrisjsewell in #1544
- π§ͺ Add snapshot test for field schema by @chrisjsewell in #1545
- π§ Derive core
FieldSchemafromNeedsCoreFieldsby @chrisjsewell in #1546 - π Make
incoming/outgoingkeys optional inneeds_extra_linksby @chrisjsewell in #1548 - π§ Removed unused code by @chrisjsewell in #1550
- π Enable link to full schema example by @ubmarco in #1538
- π§ Variable typo by @ubmarco in #1555
- π Improve schema docs by @ubmarco in #1554
- π Fix linkchecks by @ubmarco in #1556
- π§ Run new ubc action on docs by @ubmarco in #1541
- π Improve schema severity handling by @ubmarco in #1561
- β»οΈ Early resolution of schema_debug_path by @ubmarco in #1563
- π Release v6.1.0 by @ubmarco in #1565
Full Changelog: 6.0.1...6.1.0
v6.0.1
What's Changed
- π Add release labels to changelog by @ubmarco in #1523
- π§ Improve error for variant options by @ubmarco in #1524
- π§ Fix schema json missing exc message by @ubmarco in #1526
- π Add schema to add_extra_option by @ubmarco in #1527
- π Fix name error schema_path_contains by @ubmarco in #1530
- π Inject build_tags to variant filter strings by @ubmarco in #1531
- π Release v6.0.1 by @ubmarco in #1532
Full Changelog: 6.0.0...6.0.1
v6.0.0
What's Changed
- π Re-allow dynamic functions for
layoutfield by @chrisjsewell in #1423 - π§ Centralise allowed variant core need fields by @chrisjsewell in #1424
- π Warn on dynamic function with surrounding text by @chrisjsewell in #1426
- π§ Allow pre/post template
global_optionsby @chrisjsewell in #1428 - β¨ Add
is_importneed field by @chrisjsewell in #1429 - π update tox version to py39 by @ubmarco in #1438
- π§ Use ubuntu-latest in CI by @ubmarco in #1439
- π§ Added yamlfmt pre-commit by @ubmarco in #1446
- π Fix cyclic imports by @ubmarco in #1443
- π§ benchmark group non win32 by @ubmarco in #1450
- β¬οΈ Drop Sphinx<7.4, test against Python 3.13 by @ubmarco in #1447
- π§ Allow template global_options by @chrisjsewell in #1454
- Allow
collapseandhideinneeds_global_optionsby @chrisjsewell in #1456 - π Reset directive option specs at start of build by @ubmarco in #1448
- β¬οΈ Drop Python 3.9 by @ubmarco in #1468
- π Improve need part processing by @chrisjsewell in #1469
- π Fix escape sequences by @ubmarco in #1470
- π Format configuration.rst by @chrisjsewell in #1473
- β¨ Schema validation v2 by @ubmarco in #1467
- π Clarify c.this_doc() for needextend by @ubmarco in #1475
βΌοΈ Disallowadd_extra_optionoverriding an internal field by @chrisjsewell in #1477βΌοΈ Improve needs default field application (via needs_global_options) by @chrisjsewell in #1478- β»οΈ Lazily assess directive options by @chrisjsewell in #1482
- π§ Split import item filtering to separate function by @chrisjsewell in #1484
- β»οΈ Store needs as
NeedItem/NeedPartItem, rather than standarddictby @chrisjsewell in #1485 - β»οΈ Set some core need fields to nullable by @chrisjsewell in #1488
- π Fix: disallow need variants for list type fields by @chrisjsewell in #1489
- β»οΈ split
NeedIteminternal data into core, extras, links and backlinks by @chrisjsewell in #1490 - β»οΈ split off
sourcefields inNeedIteminternal data by @chrisjsewell in #1491 - β»οΈ Auto-compute certain need fields by @chrisjsewell in #1496
- π Fix needs_extra_links name by @HolgerPeters in #1501
- π Capture more information about modifications on
NeedItemby @chrisjsewell in #1502 - π§ Improve storage of constraint results on
NeedItemby @chrisjsewell in #1504 - β»οΈ Exclude
is_need/is_partfromneeds.jsonoutput by @chrisjsewell in #1505 - π§ Improve storage of content generation on
NeedItemby @chrisjsewell in #1506 - π§ͺ Improve test for need parts by @chrisjsewell in #1507
- β»οΈ Improve storage of part data on NeedItem by @chrisjsewell in #1509
- π Write schema violations into a JSON file by @iSOLveIT in #1503
- Always generate schema violations.json report file by @iSOLveIT in #1511
- π Avoid leaking auth credentials for ext. need warnings by @cedossan in #1512
- π§ Add
DynamicFunctionParseddataclass by @chrisjsewell in #1514 - π§ Add
VariantFunctionParseddataclass by @chrisjsewell in #1515 βΌοΈ remove parsing of deprecatedneeds_global_optionsformat by @chrisjsewell in #1517- π§ͺ Move to snapshot testing for test_schema by @chrisjsewell in #1519
- β»οΈ Allow for typed
needs_extra_optionsfields by @chrisjsewell in #1516 - β»οΈ Warn for missing needimport files by @PhilipPartsch in #1510
- π§ Improve plantuml check + add tests by @ubmarco in #1521
- π Release v6.0.0 by @ubmarco in #1522
New Contributors
- @HolgerPeters made their first contribution in #1501
- @cedossan made their first contribution in #1512
Full Changelog: 5.1.0...6.0.0