Changelog¶
- Released:
17.04.2025
0.11.0¶
New and Improved¶
✨ Add
server.index_on_save
configurationSetting
server.index_on_save = true
in theubproject.toml
will cause the project indexing be triggered for every save of a file in that project (currently only.rst
files).✨ Add
ubc quickstart
For creating an new example ubCode project.
✨ Add handling of need parts, including:
Parsing:
parse
need_part
/np
roles and storing parts in the needs indexparse
parts
sections inneeds.json
, for external and imported needs
Diagnostics
Creating warnings for
need_part
/np
roles that are not within need directivesCreate warnings for
need
/need_incoming
/need_outgoing
that reference non-existentID.PART_ID
Writing
Write
parts
section toneeds.json
VS Code
Show parts in needs index tree view (including jump-to-part)
Jump to defining
need_part
/np
role, fromneed
/need_incoming
/need_outgoing
rolesShow references from
need_part
/np
role“Select ID” in needs index tree view, from
need_part
/np
role
👌 Correctly handle
title_from_content
option in needs directives👌 Correctly handle
id_prefix
for links in external and imported needs
Fixes¶
🐛 Do not show empty outgoing link sections in VS Code needs index tree view
0.10.0¶
- Released:
11.04.2025
New and Improved¶
✨ Parse
need
,need_incoming
andneed_outgoing
roles.These roles are now stored in the index, allowing for:
“Referencing Roles” section of the LSP needs index view, per need
“Jump-to-definition” and “Find all references” when selecting the role
Roles are included in “Find all references” for the need ID
needs.link_ref
diagnostics are emitted for roles referencing unknown need IDs
✨ Add config
lint.lsp_select
Specify a list of linting codes to select in LSP file diagnostics, which overrides the
lint.ignore
list. This is useful for users transitioning to ubcode, who want to ignore existing linting violations in CI checks, but show them to users in the VS Code extension.
0.9.0¶
- Released:
07.04.2025
New and Improved¶
✨ First official release on the VS Code Marketplace.
With this version the ubCode extensions leaves the pre-release state.
Note
The extension is made available in a release state for better accessibility. It should be noted though, that
ubCode
is still in beta phase and not yet feature complete in terms of Sphinx-Needs support.✨ First official release of the ubCode CLI app
ubc
.The CLI provides a way to view all diagnostics of projects in the terminal. Projects can be built and exported to various formats. Finally, licenses can be viewed and activated.
Download
ubc
for your platform from:Platform
URL
Windows (x64)
https://download.useblocks.com/ubc/0.9.0/ubc-windows-x64-0.9.0.exe
macOS (arm64)
https://download.useblocks.com/ubc/0.9.0/ubc-darwin-arm64-0.9.0
Linux (x64)
https://download.useblocks.com/ubc/0.9.0/ubc-linux-x64-0.9.0
Linux (arm64)
https://download.useblocks.com/ubc/0.9.0/ubc-linux-arm64-0.9.0
The files are directly executable on all platforms and have no dependencies. The first execution might be a bit slower due to the bootstrapping process of the application.
See the Installation section for latest links and installation instructions.
✨ Add dynamic function parsing
ubCode is now aware of the dynamic function syntax (e.g.
[[func()]]
) and checks for syntax errors. Dynamic functions are not yet executed, but will no longer show in link ID lists.✨ Write Kuzu DB from
needs.json
A
needs.json
can now be converted to a Kùzu graph DB. Kùzu version is 0.9.0 (storage version 37).
Fixes¶
🐛 Omit ignored diagnostics codes from diagnostic tree view
🐛 Omit warnings for allowed global_options constraints/layout/style keys
0.8.0¶
- Released:
13.03.2025
Breaking Changes¶
The handling of licenses has been refactored to handle more licensing scenarios, including offline licenses and system proxies for license activation.
This has necessitated a change in the configuration file format,
from ubcode.key.text
to ubcode.toml
, and must now also include a user e-mail/identifier:
[license]
key = "AAAAA-BBBBB-CCCCC-DDDDD"
user = "mail@example.com"
See License configuration for more information.
New and Improved¶
✨ Add Diagnostics tree view to VS Code.
This view shows all diagnostics encountered during the project index, such as linting errors and duplicate need IDs, and allows for filtering by diagnostic code
✨ Add handling of
needs.global_options
configuration.This allows for the definition of defaults for need fields. It follows the new format as introduced in sphinx-needs v5.1.0 (see needs_global_options for more information).
0.7.0¶
- Released:
25.02.2025
Breaking Changes¶
The configuration section
rst_lint
has been renamed tolint
. See Configuring a project with ubproject.toml for details.
New and Improved¶
⚡️ Improve speed of index build: the index build is now ~33% faster for large projects.
✨ Add support for Python filter expressions in need queries. See Python syntax for details.
This is exposed in the needs index view in VS Code, using the “Select ubcode need ID or filter in view” command, and allows for support of the
filter
option inneedimport
andneedextend
directives.✨ Compute closest match for unknown directive name/option
This is used to provide quick fixes for unknown directive names and need directive options.
0.6.2¶
- Released:
04.02.2025
Fixes¶
🐛 ubCode Marketplace URLs
0.6.1¶
- Released:
04.02.2025
New and Improved¶
👌 Add quickstart command
👌 Add
chain
option to thescripts
configuration📚 Improve the documentation
0.6.0¶
- Released:
03.02.2025
New and Improved¶
👌 Add diagnostic for unknown need directive options.
👌 Add autocompletion of
needextend
directive options.✨ Add need directive
status
auto-completions, with items fromneeds.statuses
configuration, if set.👌 Add config
needs.external_needs.skip_in_ubcode
, which will skip reading of the external source when indexing.✨ goto definition / references for need directive links, when cursor is on the link value:
.. req:: :link_name: value ^^^^^
✨ Add “select ubcode ID in view” command. Available in command palette or right-click menu.
✨ Add
scripts
configuration and use in VS Code, for defining/running commands in the terminal (see Configuring a project with ubproject.toml):[scripts] sphinx = "sphinx-build -b html . _build/html {{filepath}}" sphinx = { cmd = "sphinx-build -b html . _build/html {{filepath}}", env.SPHINXOPTS = "-W", terminal = "name", jinja = true }
In VS Code they can be accessed via the command palette (Ctrl+Shift+P) by selecting “ubCode: Run Command in Terminal”.
👌 Add
Project
item to needs index view, with configuration, current file and indexing issues children.👌 Add
n.is_directive
,l.type
,o.id
filter fields for needs index view.👌 Persist needs index view filter query, when re-starting VS Code.
✨ Add context button to open external URLs in need index view, for needs originating from external sources. These are resolved from the
base_url
/target_url
on theextend_needs
configuration.👌 Add restart server button to home view.
0.5.0¶
- Released:
29.01.2025
New and Improved¶
✨ Cache license checks for offline use. The remote license check is now cached for 3 days, allowing for offline use during this time.
✨ Add processing of
needextend
directives. These directives are now gathered and applied to the needs index. Needs with associatedneedextend
can be filtered for in the index tree view, using then.is_modified
filter expression.Note, currently only
needextend
with “single ID” filters are applied; expression filter processing is planned for a future release.👌 Make external need reads more fault tolerant. External
needs.json
with invalid extra/link field value types will no longer error the entire read. Instead, the errors are stored (and reported in the tree view) and the fields are skipped.✨ Add Linux ARM64 build target
0.4.0¶
- Released:
22.01.2025
New and Improved¶
✨ Add external and import needs parsing:
Add
needs.import_keys
configurationAdd
project.srcdir
configuration (to resolveneedimport
sources starting with/
)Note, the
filter
option ofneedimport
is not yet supported
VS Code index tree view:
⚡️ Improve performance of updates and item expansion
✨ Show need indexing issues
👌 Expand querying capabilities
👌 Add copy link ID to clipboard buttons for incoming/outgoing need links
👌 Improve rst-preview CSS: do not word-wrap directive option names
👌 Complete find references on directive
id
named_option
0.3.0¶
- Released:
12.12.2024
New and Improved¶
⚡️ Improve performance of diagnostics/needs index builds.
Including parallel file reads, better caching, and background (non-blocking) processing.
✨ Add initial filtering of needs in index tree-view.
Using a sub-set of the Cypher query syntax.
Note, currently it is constrained to
n.id
andn.type
queries; this will be expanded in the future.✨ Add find references for need directives.
Activated by placing the cursor on the directive name, and using the context menu or pressing
SHIFT+F12
.✨ Add quick fix for
inline.role_no_name
diagnostic.👌 Add
index
directive to built-ins.✨ Add “Re-index project” to VS Code command palette.
✨ Add “Remove project cache” to VS Code command palette.
👌 Open license path from VS Code Home tree.
0.2.3¶
- Released:
03.12.2024
New and Improved¶
✨ Add
:
role and directive option auto-completions✨ Allow for
named_options
to be specified onparse.extend_directives
(see Configuring a project with ubproject.toml)
0.2.2¶
- Released:
24.11.2024
Improved¶
✨ Add
extend
configuration, for sharing configuration between multiple projects (see Configuring a project with ubproject.toml)✨ Add auto-completion and hover information of directives in rST files
👌 Graph DB performance improvements
0.2.1¶
- Released:
21.11.2024
Fixes¶
🐛 Build manylinux2014 compatible wheels to support systems such as Ubuntu 20.04 LTS
0.2.0¶
- Released:
20.11.2024
Initial release of the new ubCode VS Code extension.
This is a complete rewrite of the existing ubCode extension (v0.1.2).
This version features a new language server that understands RST, generates HTML previews in real-time and provides diagnostics for RST problems.
The extension integrates with Sphinx-Needs via a new ubproject.toml file format. The new needs index can be used to navigate to needs without running a Sphinx build.