Sonargraph Release Notes ======================== Build 15.0.6.7_2025-04-22 =========================== Improvements ------------ - Sonargraph - Updated the C# Roslyn parser to the newest version. Bug Fixes --------- - Sonargraph - Fixed at least 1 scenario leading to a 'ConcurrentModificationException' when displaying dependencies with the Parser Dependencies views of an Exploration/Architectural view. - Fixed an 'IndexOutOfBoundsException' for the TypeScript source viewer. Build 15.0.6.127_2025-04-04 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (Map of artifacts to nodes must contain artifact) when saving modified Architecture (DSL) files. - SonargraphEclipse - Fixed assertion error (Parameter 'toolItem' of method 'performCanExecute' must not be null). Build 15.0.6.126_2025-03-27 =========================== Bug Fixes --------- - Sonargraph - Selecting elements in Navigation, Logical Namespaces and Files views did no longer fire an element selection event enabling other views to show corresponding data of the selected elements (regression error). Build 15.0.6.125_2025-03-26 =========================== Bug Fixes --------- - Sonargraph - Fixed another scenario that could result in negative metric values for 'Extended Cyclomatic Complexity' for TypeScript. - Changing the scope in the Logical Namespaces view did not work reliably. Build 15.0.6.123_2025-03-24 =========================== Bug Fixes --------- - Sonargraph - For TypeScript the metrics extended cyclomatic complexity and modified extended cyclomatic complexity could have had negative values. This is now fixed. - For C,C++ the directory fragments in path names were not compared correctly for file systems with case-insensitive file names. - For the initial setup of TypeScript projects we required a 'tsconfig.json' file. Now we allow any file ending with .json as the project descriptor file. Build 15.0.6.122_2025-03-20 =========================== Improvements ------------ - Sonargraph - Improved component dependency detection of Angular plugin. - For C,C++ we now check, if a source file is also included by an #include directive. In that case we will add a "Potential Error" to the parser log and also write the issue into the log file. Build 15.0.6.121_2025-03-16 =========================== Improvements ------------ - Sonargraph - Added convenience method to INamedElementAccess of the Script API to retrieve assigned children recursively: public List getChildrenRecursively(); - Added missing programming element metrics to Exploration/Architectural Metrics view for physical and logical views: - 'Other' number of programming elements that are not types, methods, fields. - 'Programming elements' total number of programming elements. - 'Other (external)' number of external programming elements that are not types, methods, fields. - 'Programming elements (external)' total number of external programming elements. Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' when accessing the children (getChildren()) of an instance of ILogicalProgrammingElementAccess in the Script API. Build 15.0.6.120_2025-03-13 =========================== Improvements ------------ - Sonargraph - C,C++ programming elements (classes, routines, ...) in anonymous namespaces are now included in the logical model (shown in the Namespaces view). - The number of C,C++ parser daemons can now be increased to up to 32. - If a C,C++ component contains source files from several directories this component has to be split. As an improvement we now consider header file directories to decide to which of the split up components a header file belongs. - Added convenience method to IArtifactAccess of the Script API to retrieve assigned element including child artifacts (recursively): public List getAssignedElementsRecursively(); Bug Fixes --------- - Sonargraph - Fixed an assertion error ('nextToArtifactNode' of method 'isExpandToArtifactsPossible' must not be null) when requesting the context menu on a selected dependency (arc) in the Exploration/Architectural view. Build 15.0.6.119_2025-03-11 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (Parameter 'fqNamePart' of method 'addLogicalProgrammingElement' must not be empty) when creating the logical model in C,C++ after a refresh. Build 15.0.6.118_2025-03-10 =========================== New Features ------------ - Sonargraph - Added 'Expand to Artifacts' to Exploration/Architectural view. - Added 'Collapse to Artifacts' to Exploration/Architectural view. Improvements ------------ - Sonargraph - The scope setting in the Namespaces view is persisted in the user preferences. The Module scope is now the default. - The Angular plugin now at least uses the source root directories contained in the TypeScript parser model. Bug Fixes --------- - Sonargraph - Fixed an error when creating a logical Exploration view based on an architecture (DSL) file using C# leading to an assertion error (e.g. parameter 'leaf' of method 'addIn' must not be null) applying a focus transitively operation. - Excluding a subset of a partial type group in C# with the Production Code Filter led to an inconsistent logical model (shown in the Namespaces view). This led to a subsequent assertion (e.g. parameter 'leaf' of method 'addIn' must not be null) error when using focus operations in an Exploration view based on a logical architecture model defined in a checked Architecture (DSL) file. - When selecting nodes in the Exploration/Architectural view with incoming violations the Focus dialog will also offer the 'Dependencies' section. - Fixed assertion error ('Parameter 'nodes' of method 'createDependencies' must not be empty') when no more nodes are left in Exploration/Architectural view. - Fixed 1 scenario leading to a NullPoinerException (Cannot invoke "java.util.Map.values()" because "this.m_toToOutgoingDependencies" is null) when updating the Exploration/Architectural Metrics view. - Fixed access to logical programming elements of assigned elements of the architecture model in the Script API. Build 15.0.5.117_2025-03-02 =========================== Improvements ------------ - Sonargraph - Improved performance in Exploration/Architectural view of expand/collapse for bigger systems. - Only re-calculate Exploration/Architectural view metrics when selection changes. - In editors, tables and the Properties view pressing cmd+a (Mac) or ctrl+a (Windows/Linux) selects all content. Bug Fixes --------- - Sonargraph - Fixed assertion error (Unhandled architecture model) creating an artifact in a logical Architectural view. - Deleting a namespace/directory in 'Flat' mode will no longer delete sub namespaces/directories in the Architectural view. - Fixed an error when updating an Exploration view based on an architecture (DSL) file using C# leading to an assertion error (parameter 'leaf' of method 'addIn' must not be null) applying a focus transitively operation. - Focus 'Additional' now also respects the settings of 'Dependencies' and 'Dependency Types'. Build 15.0.5.116_2025-02-20 =========================== Bug Fixes --------- - Sonargraph - Improved Java parser to properly recognize the new Java 21 record patterns in switch statements. Build 15.0.4.115_2025-02-19 =========================== Bug Fixes --------- - Sonargraph - Improved Java parser to properly recognize the new Java 21 type based switch syntax. Build 15.0.4.114_2025-02-14 =========================== New Features ------------ - Sonargraph - Added metrics to Exploration/Architectural Metrics view: - 'Source element count (fully analyzed)' for physical and logical views. - 'Source element count (issue ignoring)' for physical and logical views. - 'Lines of code (fully analyzed)' for physical views. - 'Lines of code (issue ignoring)' for physical views. Improvements ------------ - Sonargraph - 'Alphabetical', 'Lines Of Code' and 'Source Element Count' sort in Exploration/Architectural view now all group artifacts and non-artifacts. Build 15.0.4.112_2025-02-10 =========================== New Features ------------ - Sonargraph - Added 'Angular' plugin. This plugin can be enabled for TypeScript systems and tries to detect and add component dependencies. Improvements ------------ - Sonargraph - 'Alphabetical' sort in Exploration/Architectural view now groups artifacts and non-artifacts. - The Update dialog now shows what the update process is doing. Bug Fixes --------- - Sonargraph - On Linux the logback.xml (logging configuration) could not be located correctly, depending on how Sonargraph was started. - Fixed SWTException (Widget is disposed) in Update dialog. Build 15.0.3.111_2025-01-31 =========================== Bug Fixes --------- - Sonargraph - Fixed an assertion error in the C,C++ parsing cycle. Build 15.0.2.109_2025-01-22 =========================== New Features ------------ - Sonargraph - Exploration/Architectural view now offers additional sort modes 'Alphabetical', 'Lines Of Code' and 'Source Element Count'. - Locations of snapshot and export related actions are now stored in the context of a system (i.e. when exporting images in the context of a system the last location used for the system is offered as default). Improvements ------------ - Sonargraph - Issues and Workspace views can now be closed. Bug Fixes --------- - Sonargraph - Fixed buffer overflow error in the Git data retriever caused by an extremely long commit message. Build 15.0.2.108_2025-01-13 =========================== New Features ------------ - Sonargraph - Now all dependencies in the C++ component construction view can be exported to Excel. Just right-click in the unoccupied area of the view to bring up the context menu. Build 15.0.1.107_2025-01-09 =========================== Improvements ------------ - Sonargraph - Improved speed of SCM Metrics analyzer. - License requester always uses https (instead of http). - SonargraphBuild - SonargraphBuild downloader now uses https (instead of http). Bug Fixes --------- - Sonargraph - Fixed assertion error (Parameter 'modules' of method 'create' must not be empty) when updating a tree map on system refresh. - Fixed 'NullPointerException' when opening a system with an already opened system that is going to be closed with a selection of a logical namespace. Build 15.0.0.106_2024-12-06 =========================== New Features ------------ - Sonargraph - Available for Linux AArch64/ARM64. - Available for Mac OS AArch64/ARM64. Improvements ------------ - Sonargraph - Architecture assignment info now is also shown in Properties view when selecting logical programming elements in logical system scope Namespaces view. - Author properties shown in Properties view are sorted by time period length. - Supported languages and description of Sonargraph plugins are shown on plugin preference pages. - Auto-update can now be turned of in the 'Help' menu. NOTE: The Sonargraph platform uses Java 21. A Java 21 runtime is required! Build 14.0.1.868_2024-12-05 =========================== Bug Fixes --------- - Sonargraph - For C# sometimes generic parameter dependencies were not recognized properly. This is now fixed. IMPORTANT INFORMATION: In the next few days we will release Sonargraph 15.0.0 (including all it's clients and plugins). It has undergone a lot of internal rework. All used libraries have been updated and the internal module structure has been streamlined. Sonargraph now uses Java 21 and requires Java 21 to be executed. Sonargraph will now also support Linux AArch64/ARM64 and Mac OS AArch64/ARM64. It will not be possible to auto-update from Sonargraph 14.x (and older) to 15.x. A fresh install will be needed. The corresponding download for your platform can be found as usual on our web site here: https://www.hello2morrow.com/products/downloads. The new update sites will be: - https://eclipse.hello2morrow.com/Sonargraph.site for Sonargraph (auto-update) - https://eclipse.hello2morrow.com/SonargraphEclipse.site for the Sonargraph Eclipse plugin Build 14.0.1.867_2024-11-25 =========================== Improvements ------------ - Sonargraph - Added 'Source Element Count' metric to Architectural/Exploration Metrics view. - Added 'CSharpIsEnum' attribute retriever to Architecture DSL, check manual for details. Bug Fixes --------- - Sonargraph - Fixed a problem with internal fully qualified names for TypeScript. This prevented a generated report (xml) file to be read successfully. - Fixed 'IllegalArgumentException' (HistogramBin(): startBoundary > endBoundary.) when creating a Histogram. - Fixed 'NCCD' (John Lakos) metric calculation leading to invalid float values (NaN). Build 14.0.1.866_2024-11-14 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (AssertionError: maxValue >= minValue) when creating a Histogram. - Fixed stack overflow error for TypeScript attribute retrievers. Build 14.0.1.865_2024-11-07 =========================== New Features ------------ - Sonargraph - Added 4 attribute retrievers for TypeScript: TypescriptImplementsInterface, TypescriptExtendsClass, TypescriptTypeof and TypescriptFileName. Please find the details in the documentation. Bug Fixes --------- - Sonargraph - Fixed assertion error (Unexpected call: getLogicalModuleScopeRecursiveElementRefactoringDescriptor) when opening an Exploration view on a 'logical' Architecture file (DSL) for a TypeScript system. TypeScript does not have a logical domain. The statement 'model "logical"' is now ignored and generates a warning. Build 14.0.1.864_2024-10-29 =========================== Improvements ------------ - Sonargraph - If an internal TypeScript module is also found under the external 'node_modules' directory, the external variant will be merged into the internal version. Bug Fixes --------- - Sonargraph - Fixed assertion error (XML System object must not be null!) when using undo/redo of a system file modification in a C# system. Build 14.0.1.863_2024-10-18 =========================== Improvements ------------ - Sonargraph - Improved logging in the 'Architecture Check' to hunt down a spurious 'NullPointerException'. Bug Fixes --------- - Sonargraph - Fixed assertion error ('nextRecursiveElementCreationDescriptor' of method 'loadArchitecturalView' must not be null) when trying to create a logical Architectural view for TypeScript. In TypeScript no logical domain exists. The logical Architectural view creation is no longer available in the corresponding wizard dialog. Build 14.0.1.862_2024-10-02 =========================== Improvements ------------ - Sonargraph - TypeScript source files can now be moved/renamed (refactorings). - The metric 'number of methods' is now available for TypeScript and Python. Bug Fixes --------- - Sonargraph - Fixed layout of product information in About dialog on Linux. - Fixed assertion error (Same points) in Cycle view. - The C# parser now should also work on Mac's with an Arm64 processor. - Fixed a stack overflow problem in the TypeScript parser. Build 14.0.1.861_2024-09-24 =========================== Bug Fixes --------- - Sonargraph - Fixed a regression bug in the TypeScript analyzer. Build 14.0.1.860_2024-09-13 =========================== Improvements ------------ - Sonargraph - Decorators are now properly added as dependencies for TypeScript. - Better resolution of ambiguous TypeScript dependencies when namespaces and elements of the same name as the namespace are involved. Build 14.0.1.859_2024-09-13 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' in C# solution import wizard. - Replaced commons-text-1.9.jar with the newest version 1.12 due to a vulnerability. Build 14.0.1.858_2024-08-29 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (already contains child) in background task when analyzing package cycles adding an element to a detected cycle. - SonargraphEclipse - Fixed assertion error (unexpected class) in delta refresh. Build 14.0.1.857_2024-08-23 =========================== Bug Fixes --------- - Sonargraph - Corrected the positioning of 'added' signs of newly added nodes (using a baseline) in the Cycle view applying the circular layout. - Enforced the selection of a root directory for the Python system creation wizard. - Fixed an assertion error that occurred when TypeScript directory dependencies were analyzed in a Graph view. Build 14.0.1.856_2024-08-09 =========================== Improvements ------------ - Sonargraph - Updated Roslyn libraries (C# parser) to the newest version. Bug Fixes --------- - Sonargraph - In C,C++ we now resolve symbolic links for internal header files. That avoids phantom duplicates of header files found via symbolic links. - Fixed an assertion error that would occur when creating a graph view from the architecture view of a Python project. - Double clicking a dependency in the Cycle view sometimes left the viewer unresponsive. Build 14.0.1.855_2024-08-02 =========================== New Features ------------ - SonargraphBuild - Added dynamic report goals for Python and TypeScript (Maven and Gradle). Now you can create a report by just specifying a source root directory. For Python you can also add a virtual environment. Improvements ------------ - Sonargraph - Made several small modifications to the Cycle Breakup algorithm to achieve a balance between performance and quality of the found break up set. This might result in small deviations from the previously found break up sets. Sorry for any inconvenience this might cause. Bug Fixes --------- - Sonargraph - Fixed a regression error that would not allow multiple elements to be selected and open an Exploration view based on all those elements (only 1 would be used). - The TypeScript preference dialog now works properly if NodeJS can't be found. Build 14.0.0.854_2024-07-23 =========================== Improvements ------------ - Sonargraph - Now it is possible to select a NodeJS executable in the TypeScript preferences. Bug Fixes --------- - Sonargraph - Ignoring violations or deleting violating dependencies in an Exploration view based on an Architecture (DSL) file did affect violations produced by all checked Architecture (DSL) files and not only the ones produced by the file the Exploration view was based on. This has been fixed. - Fixed another error that would prevent the Cycle Breakup algorithm from finding the minimal breakup dependency set. - Using 'File->Save As...' to a different directory made source control metrics unavailable. Now it works as expected. Build 14.0.0.853_2024-07-17 =========================== Improvements ------------ - Sonargraph - The Exploration/Architectural view now uses the cycle breakup set to order the nodes in cycles. - Highlighting edges in the Cycle view triggered by the edge selection in the corresponding Cycle Breakup view no works faster. Bug Fixes --------- - Sonargraph - Fixed another error that would prevent the Cycle Breakup algorithm from finding the minimal breakup dependency set. - C comments in tsconfig.json files will not create problems any longer. Build 14.0.0.852_2024-07-09 =========================== Bug Fixes --------- - Sonargraph - Fixed several issues in the TypeScript parser and model builder. Build 14.0.0.851_2024-07-08 =========================== Bug Fixes --------- - Sonargraph - Fixed some issues with interpretation and parsing of the tsconfig.json file for TypeScript systems. - Fixed a 'NullPointerException' when parsing a TypeScript system. - Fixed an error that would prevent the Cycle Breakup algorithm from finding the minimal breakup dependency set. - The bin size in the Histogram was not calculated correctly when a lower threshold was defined. Build 14.0.0.850_2024-07-04 =========================== New Features ------------ - Sonargraph - TypeScript support added. TypeScript based systems can be created based on tsconfig.json files. NOTE: You need a working Node.js installation to be able to parse TypeScript source code. Improvements ------------ - Sonargraph - The product information in the about dialog can be copied. Bug Fixes --------- - Sonargraph - Selecting a dependency in the Cycle Breakup view now also updates the Parser Dependencies views if connected to the corresponding Cycle view (since the dependency is also revealed in the corresponding Cycle view). - When a Cycle view is updated due to a modification the connected Cycle Breakup view is reset. This avoids showing incorrect (stale) information.