Skip to content

Releases: nokia/ntt

v0.19.1

15 Nov 09:06
Compare
Choose a tag to compare
v0.19.1 Pre-release
Pre-release

Linter

Linter-checks have been extended to list types, enumerated values and fields of structured types.

IDE support

Inlay hints have been added. Hover and auto-completion has been improved visually and functionally. Support for Titan TTCN-3 files has been improved, too.

TTCN-3 Language Features

The language parser has been extended to support classes and multiline string literals. Various parsing issues with new language constructs and Nokia internal extensions have been resolved.

Bugfixes

Various bug fixes and code improvements have been released, too. Details are in the changelogs.

New Contributors

Big shout out to our contributors. Most changes in this release are thanks to you!

v0.18.2

11 Nov 10:41
Compare
Choose a tag to compare

Changelog

v0.18.1

07 Nov 10:28
Compare
Choose a tag to compare

This release provides a proper version string for builds from source.

Changelog

v0.18.0

24 Oct 16:22
d01a609
Compare
Choose a tag to compare

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:

Of course, we also appreciate all the users who reported issues and helped us improve ntt.

v0.17.1

12 Sep 07:34
Compare
Choose a tag to compare
  • Fix release artifacts for Windows

v0.17.0

11 Sep 09:57
Compare
Choose a tag to compare

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 to github.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

05 Sep 17:08
033fbe9
Compare
Choose a tag to compare

Changelog

v0.16.0

05 Sep 16:51
1c391c8
Compare
Choose a tag to compare

Show Hover

Show additional information on the definition of objects while hovering the mouse on it. By @sneznaj and @moosq (#577, #578, #596, #598)

Fixes

  • Fix handling missing test_result.json by @5nord (#603)
  • Fix embedded fields in ntt dump command by @5nord (#597)

Full Changelog: v0.15.3...v0.16.0

v0.15.3

03 Jul 12:47
Compare
Choose a tag to compare

What's Changed

v0.15.2

22 Jun 15:15
Compare
Choose a tag to compare

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