Releases: nokia/ntt
v0.18.2
v0.18.1
v0.18.0
Welcome to the ntt version 0.18.0 release! This is a substantial update that lays the groundwork for exciting future features. While many of these changes may not be immediately obvious, they are essential for the project's evolution. Here's a summary of what's new:
Improved Hover Information
Analyzing test cases can sometimes be challenging when trying to locate port configuration statements. In this release, we've enhanced the hover feature to display related map
and connect
calls when you hover over a port, making your workflow more efficient. Additionally, the hover information is now displayed in a format that's best supported by your editor.
Experimental Features
In the spirit of Agile Development, we've begun to introduce "unfinished" features, allowing for early feedback and providing you with a say in the project's direction. These features can be enabled by manually adding the feature toggle to your settings file. Keep in mind that these features are experimental and may undergo significant changes between releases.
Automatic Formatting
Source code formatting is now automated, leveraging the computational speed and consistency of computers. We have kept configuration options minimal, as we are working on establishing an official ETSI TTCN-3 style in collaboration with ETSI TTCN-3 standardization. The current implementation handles indentation, removes trailing whitespaces, and consolidates empty lines. You can adjust tab and space preferences in your editor's configuration.
Feature toggle: ttcn3.experimental.format.enabled
Semantic Highlighting
Building on syntax highlighting, we've introduced semantic highlighting, which highlights words differently based on their context. For instance, component variables are highlighted differently from local variables, which is particularly beneficial for TTCN-3. Please note that this initial implementation may experience delays when working with large files.
Feature toggle: ttcn3.experimental.semanticTokens.enabled
Diagnostics
To enhance your productivity, we've started implementing diagnostics in this release. Currently, we support syntax-error diagnostics, with more useful diagnostic features in the pipeline.
Feature toggle: ttcn3.experimental.diagnostics.enabled
Core
While less visible than IDE support, the ntt core has received substantial attention. We've refactored, addressed technical debt, fixed bugs, and introduced new features. Here's a overview:
- Added support for XDG Base Directory Specification.
- Extended the TTCN-3 index with build targets to enhance build-system integration.
- Aligned with Nokia internal tools (k3 TCI/TM interface and mtcd).
- Improved the performance of the TTCN-3 scanner, making it three times faster.
- Enhanced the memory efficiency of the syntax tree.
- Added a parser generator experiment.
- Introduced support for non-standard verdicts, including
skipped
. - Passed debug variables through the environment (#686).
- Added support for testcase configuration files.
- Removed the
k3s
backend. - Began initial support for Titan descriptor files.
- Prepared for support of multiple runtimes (Titan, k3r, k3s, and more).
- Enabled support for gdbserver and k3 runtime processes.
- Passed
K3_TEST_LOG
to test hooks. - Resolved lint errors on nested select/case statements (#689).
- Removed the unused T3XF package (#630).
TTCN-3
- Added support for optional semicolons and trailing commas (#664).
- Implemented TTCN-3 type inference rules.
Command Line Interfaces
TTCN-3 Source Code Formatter
The ntt format
command provides automated formatting for your TTCN-3 source code, following the same rules as the experimental automatic formatting feature mentioned earlier. Please note that these rules are not yet stable and might disrupt your development cycle.
Test Anything Protocol (TAP)
You can now enable TAP-formatted output when running tests with ntt. This makes integration with other TAP consumers more straightforward.
Describing K3 Log-Events
A new command, describe-events
, offers detailed descriptions for K3 log events in various formats, including colored, human-readable output, JSON for integration, and The Logfile Navigator format.
Generating ntt Documentation
The ntt docs
command generates markdown descriptions for all ntt commands and options, indirectly contributing to keeping the online documentation up-to-date.
Runtime Environment
We've added several new built-in functions to the runtime environment, including int2bin
(#621), int2char
(#622), int2enum
, int2str
(#634), str2float
(#681), str2int
(#680), unichar2int
, and int2unichar
(#626).
Bugfixes
We've addressed some key issues in this release, including fixing unexpected characters in hover and resolving a malformed struct tag (#649).
Gratitudes
We extend our heartfelt thanks to the following contributors for their valuable support in making this release possible:
- Salvador Cavadini (@chavacava)
- Dawid Urbański (@dawidurbanski)
- Michal Wypustek (@michalwypustek)
- Michal Liszcz (@mliszcz)
Of course, we also appreciate all the users who reported issues and helped us improve ntt.
v0.17.1
- Fix release artifacts for Windows
v0.17.0
Incompatible Changes
This release does not provide any new feature or bugfixes, but introduces some incompatibility to previous versions:
- drop support for
ttcn3c
- drop support for
ntt-mcov
- change binary path from
github.com/nokia/ntt/cmd/ntt
togithub.com/nokia/ntt
This measure helps us to assure future maintainability and simplifies repository layout. We hope we did not cause much inconvenience.
v0.16.1
v0.16.0
v0.15.3
v0.15.2
This release provides many performance improvements, bug fixes and new tools and features.
We also refactored a lot of code and improved test coverage as well.
Semantic Tokens
This release adds initial support for semantic tokens.
Semantic tokens are disabled by default, to enable them you have to set environment variable NTT_SEMANTIC_TOKENS
to on
.
Test Configuration
This release adds support for test configurations (see #487 for details). Third party tools may use ntt show --json
to conveniently extract test suite configuration.
TTCN-3 Package Manager
Building a test executable with all its adapters, code generators and dependencies tends to be more sophisticated than building the SUT itself. This release adds another important piece towards a TTCN-3 package manager: the build tool ntt build
. This initial version only supports the (Nokia internal) k3 backend, but support for Titan is planned for future releases.
Clang JSON Compilation Database
The build tool has support for compile_commands.json to help with external build system integration.
CLI for Running Tests
This release provides a preview of our test runner: ntt run
is a handy tool to quickly run TTCN-3 tests. It's nicely integrated with the ntt report tool and provides various output formats. Similarly to ntt build
it only supports the (Nokia internal) k3 backend for now. Sup;port for other backends and test frameworks will be added over time.
TTCN-3 Shell (REPL)
A rudimentary TTCN-3 shell has been added (ntt --interactive
). It can evaluate simple TTCN-3 expressions, but nothing more yet. It's mostly for for us, for playing around and testing things. We may extend TTCN-3 support and syntax highlighting in the future, though.
JSON Output
JSON formatted output as been added to various tools (ntt build
, ntt run
, ntt show
, ntt list
, ntt dump
) to simplify automation and integration into third party tools.
Caveats and known Bugs
The YAML library has been replaced. This new library has nicer error messages, but is sometimes a little picky with maps and strings. If you have syntax errors try explicitly quoting string-keys.
We added a semantic TTCN-3 database and refactored the goto definition code to be much faster. However the lookup of record fields in assignment lists ({ a:= 1, b:= 2}
) is not fully implemented, yet.
New Contributors
Full Changelog: v0.14.3...v0.15.2
v0.14.3
Fix Nokia Runner
Nokia uses a custom runner internally. This internal runner was never
called, because ntt's run command registered as soon as environment
variable K3_40_RUN_POLICY
was not set.
This release fixes the condition and improves its readability to
prevent similar issues in the future.