|
| 1 | +# Code Graph Analysis Pipeline - Changelog |
| 2 | + |
| 3 | +This document describes the changes to the Code Graph Analysis Pipeline. The changes are grouped by version and date. The latest version is at the top. |
| 4 | + |
| 5 | +## v2.0.0 (2024-12-15) TypeScript Source Code Analysis |
| 6 | + |
| 7 | +For all details see: https://github.com/JohT/code-graph-analysis-pipeline/releases/tag/v2.0.0 |
| 8 | + |
| 9 | +### 🌟 Highlights 🌟 |
| 10 | + |
| 11 | +* ✨[TypeScript](https://github.com/jqassistant-plugin/jqassistant-typescript-plugin) ✨ Source Code Analysis (experimental) |
| 12 | +* [Git](https://github.com/kontext-e/jqassistant-git-plugin) data included |
| 13 | +* [Npm package.json](https://github.com/jqassistant-plugin/jqassistant-npm-plugin) data included |
| 14 | +* Multiple source folders |
| 15 | +* Symbolic links |
| 16 | +* Incoming and Outgoing dependencies considering Java subpackages |
| 17 | +* [Path finding algorithms](https://neo4j.com/docs/graph-data-science/current/algorithms/pathfinding) reports |
| 18 | +* [Bridges](https://neo4j.com/docs/graph-data-science/current/algorithms/bridges) centrality algorithm report |
| 19 | +* JavaEE and Spring REST endpoint reports |
| 20 | + |
| 21 | +### 🚀 Features |
| 22 | + |
| 23 | +* Skip analysis for empty projections by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/114 |
| 24 | +* Small Improvements by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/117 |
| 25 | +* Incoming and outgoing package dependencies with sub packages by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/124 |
| 26 | +* Introduce Typescript Analysis by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/112 |
| 27 | +* Separate report reference documentation generation by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/143 |
| 28 | +* Add optional data validation before Jupyter notebook execution. by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/144 |
| 29 | +* Assure that t-SNE perplexity parameter is lower than the sample size for small graphs by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/147 |
| 30 | +* Use pnpm as package manager for react-router by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/148 |
| 31 | +* Migrate from sklearn.manifold TSNE to openTSNE for visualizing node embeddings by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/155 |
| 32 | +* Provide script to import git log as csv by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/157 |
| 33 | +* Add parent git commit nodes and connect them by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/159 |
| 34 | +* Use latest stable open graph-data-science version 2.6.7 by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/161 |
| 35 | +* Use latest stable open-graph-data-science version 2.6.8 by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/162 |
| 36 | +* Ignore duplicate Typescript analysis json files scan by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/173 |
| 37 | +* Fix missing declarationCount property on DEPENDS_ON relationships by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/183 |
| 38 | +* Add file distance to DEPENDS_ON relationships by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/184 |
| 39 | +* Support npm package.json files by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/185 |
| 40 | +* Add script to sort out external Java jar libraries. by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/186 |
| 41 | +* Support multiple source directories by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/178 |
| 42 | +* Support Typescript scan for existing sources without clone by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/191 |
| 43 | +* Refine nodes and relationships for multi typescript project graphs by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/194 |
| 44 | +* Support scanning files outside "artifacts" and switch to plugin for git data by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/195 |
| 45 | +* Use Renovate to update jQAssistant plugins by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/198 |
| 46 | +* Fix error when tsconfig has file as reference path. by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/200 |
| 47 | +* Improve useability by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/203 |
| 48 | +* Auto detect latest git tag if no version is specified by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/208 |
| 49 | +* Detect, mark and filter test related modules in Typescript analysis by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/209 |
| 50 | +* Improve file and npm relationships for Typescript projects by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/210 |
| 51 | +* Add statistics about resolved external Typescript modules by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/215 |
| 52 | +* Scan every Typescript source directory separately. by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/224 |
| 53 | +* Support scanning large code bases by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/229 |
| 54 | +* Improvements for Typescript by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/231 |
| 55 | +* Support Typescript version numbers by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/223 |
| 56 | +* Scan each contained Typescript package when the scan of the whole source repository failed by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/244 |
| 57 | +* Fix missing support for dashes in profile names. by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/245 |
| 58 | +* Improve RESOLVES_TO relationships between external and internal Typescript modules by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/248 |
| 59 | +* Improve internal dependencies reports by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/255 |
| 60 | +* Fix minor Typescript issues by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/259 |
| 61 | +* Improve naming of external Typescript nodes by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/260 |
| 62 | +* Improve Typescript scanning and git import by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/265 |
| 63 | +* Improvements for large scala Typescript analysis by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/268 |
| 64 | +* Fix missing IS_IMPLEMENTED_IN relationship for Typescript declarations by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/277 |
| 65 | +* Fix broken link check using workaround by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/279 |
| 66 | +* Install Typescript project dependencies explicitly by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/280 |
| 67 | +* Update jQAssistant TypeScript Plugin to v1.3.2 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/282 |
| 68 | +* Add details to algorithm result code unit names by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/285 |
| 69 | + |
| 70 | +### 📈 Reports |
| 71 | + |
| 72 | +* Add reports containing JavaEE and Spring REST resources by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/102 |
| 73 | +* Add Graph visualizations for Typescript Modules by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/142 |
| 74 | +* Add graph data science algorithms for Typescript by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/137 |
| 75 | +* Add external dependencies reports for Typescript by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/154 |
| 76 | +* Add internal dependencies reports for Typescript by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/167 |
| 77 | +* Add Overview reports by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/174 |
| 78 | +* Add visibility reports for Typescript by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/175 |
| 79 | +* Introduce path finding algorithm reports by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/216 |
| 80 | +* Add Bridges centrality algorithm report by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/283 |
| 81 | + |
| 82 | +## v1.0.1 (2023-12-16) Fix Graph Visualization |
| 83 | + |
| 84 | +For all details see: https://github.com/JohT/code-graph-analysis-pipeline/releases/tag/v1.0.1 |
| 85 | + |
| 86 | +### ⚙️ Optimization |
| 87 | + |
| 88 | +* Update and add old results by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/91 |
| 89 | +* Improve visualization error handling by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/89 |
| 90 | + |
| 91 | +### 🛠 Fixes |
| 92 | + |
| 93 | +* Fix JavaScript Graph Visualization by running it after all CSV reports that write data into the Graph by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/89 |
| 94 | + |
| 95 | +### 📦 Dependency Updates |
| 96 | + |
| 97 | +* Update dependency AxonFramework/AxonFramework to v4.9.1 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/90 |
| 98 | + |
| 99 | +## v1.0.0 (2023-12-09) First major version release |
| 100 | + |
| 101 | +### 🚀 Features |
| 102 | + |
| 103 | +* Update to Neo4j v5 and jQAssistant CLI 2.0 by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/6 |
| 104 | +* Introduce explore mode to start a manual analysis by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/13/commits/53d60458589d5bfae07958fad57f0533f9eb9cb1 |
| 105 | +* Support for open packaged graph-data-science plugin by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/15 |
| 106 | +* Support query parameters by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/42 |
| 107 | + |
| 108 | +### 📈 Reports |
| 109 | + |
| 110 | +* Graph Visualization by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/24 |
| 111 | +* Render visualization as png using puppeteer by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/26 |
| 112 | +* Add artifact reports by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/31 |
| 113 | +* Add node embeddings reports by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/47 |
| 114 | +* Add reports with metrics about detected communities by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/73 |
| 115 | +* Add java specific queries and reports by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/83 |
| 116 | + |
| 117 | +### 📖 Documentation |
| 118 | + |
| 119 | +* Auto-generate reference documentation by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/22 |
| 120 | +* Bring documentation up-to-date by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/74 |
| 121 | + |
| 122 | +### ⚙️ Optimization |
| 123 | + |
| 124 | +* Rename "package dependencies" to "internal dependencies" by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/12 |
| 125 | +* Separate artifacts and their download from the analysis by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/13 |
| 126 | +* Performance Tuning by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/19 |
| 127 | +* Update old analysis reports by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/23 |
| 128 | +* Parametrize Topological Sort by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/51 |
| 129 | +* Refine Community Detection by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/52 |
| 130 | +* Fail-fast approach for error handling by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/54 |
| 131 | +* Optimize centrality reports using in-memory mutate by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/55 |
| 132 | +* Optimize Similarity using in-memory mutation by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/60 |
| 133 | +* Minor improvements and refinements by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/88 |
| 134 | + |
| 135 | +### 🛠 Fixes |
| 136 | + |
| 137 | +* Fix missing Jupyter reports by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/72 |
| 138 | + |
| 139 | +## v0.9.0 (2023-06-26) Initial Release Version |
| 140 | + |
| 141 | +For all details see: https://github.com/JohT/code-graph-analysis-pipeline/releases/tag/v0.9.0 |
| 142 | + |
| 143 | +### 🚀 Features |
| 144 | + |
| 145 | +* Analyze static code structure, dependencies, metrics, ... |
| 146 | +* Fully automated [pipeline](./.github/workflows/code-reports.yml) from tool installation and artifact download to report generation |
| 147 | +* Runtime and library independent automation using [shell scripts](./scripts/SCRIPTS.md) |
| 148 | +* Comprehensive list of [Cypher queries](./cypher/CYPHER.md) |
| 149 | +* Example Analysis for [AxonFramework](https://github.com/AxonFramework/AxonFramework) |
| 150 | + |
| 151 | +### 📖 Jupyter Notebook Reports |
| 152 | + |
| 153 | +* [External Dependencies](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/external-dependencies-java/ExternalDependenciesJava.md) contains detailed information about external library usage ([Notebook](./jupyter/ExternalDependenciesJava.ipynb)). |
| 154 | +* [Object Oriented Design Quality Metrics](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/object-oriented-design-metrics-java/ObjectOrientedDesignMetricsJava.md) is based on [OO Design Quality Metrics by Robert Martin](https://api.semanticscholar.org/CorpusID:18246616) ([Notebook](./jupyter/ObjectOrientedDesignMetricsJava.ipynb)). |
| 155 | +* [Overview](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/overview-java/OverviewJava.md) contains overall statistics and details about methods and their complexity. ([Notebook](./jupyter/OverviewJava.ipynb)). |
| 156 | +* [Internal Dependencies](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/internal-dependencies-java/InternalDependenciesJava.md) is based on [Analyze java package metrics in a graph database](https://joht.github.io/johtizen/data/2023/04/21/java-package-metrics-analysis.html) and also includes cyclic dependencies ([Notebook](./jupyter/InternalDependenciesJava.ipynb)). |
| 157 | +* [Visibility Metrics](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/visibility-metrics-java/VisibilityMetricsJava.md) ([Notebook](./jupyter/VisibilityMetricsJava.ipynb)). |
| 158 | +* [Wordcloud](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/wordcloud/Wordcloud.md) contains a visual representation of package and class names ([Notebook](./jupyter/Wordcloud.ipynb)). |
| 159 | + |
| 160 | +### 📖 Graph Data Science Reports |
| 161 | + |
| 162 | +Here are some reports that utilize Neo4j's [Graph Data Science Library](https://neo4j.com/product/graph-data-science): |
| 163 | + |
| 164 | +* [Centrality](./scripts/reports/CentralityCsv.sh) ([Example](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/centrality-csv/Package_Centrality_Page_Rank.csv)) |
| 165 | +* [Community Detection](./scripts/reports/CommunityCsv.sh) ([Example](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/community-csv/Package_communityLeidenId_Community__Metrics.csv)) |
| 166 | +* [Similarity](./scripts/reports/SimilarityCsv.sh) ([Example](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/similarity-csv/Package_Similarity.csv)) |
| 167 | + |
| 168 | +### 📖 Other Reports |
| 169 | + |
| 170 | +* [External Dependencies (CSV)](./scripts/reports/ExternalDependenciesCsv.sh) ([Example](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/external-dependencies-csv/External_package_usage_overall.csv)) |
| 171 | +* [Object Oriented Design Metrics (CSV)](./scripts/reports/ObjectOrientedDesignMetricsCsv.sh) ([Example](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/object-oriented-design-metrics-csv/MainSequenceAbstractnessInstabilityDistanceJava.csv)) |
| 172 | +* [Overview (CSV)](./scripts/reports/OverviewCsv.sh) ([Example](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/overview-csv/Cyclomatic_Method_Complexity.csv)) |
| 173 | +* [Internal Dependencies - Cyclic (CSV)](./scripts/reports/PackageDependenciesCsv.sh) ([Example](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/internal-dependencies-csv/Cyclic_Dependencies_Breakdown_Backward_Only.csv)) |
| 174 | +* [Internal Dependencies - Interface Segregation (CSV)](./scripts/reports/PackageDependenciesCsv.sh) ([Example](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/internal-dependencies-csv/InterfaceSegregationCandidates.csv)) |
| 175 | +* [Visibility Metrics (CSV)](./scripts/reports/VisibilityMetricsCsv.sh) ([Example](https://github.com/JohT/code-graph-analysis-examples/blob/main/analysis-results/AxonFramework/latest/visibility-metrics-csv/RelativeVisibilityPerArtifact.csv)) |
0 commit comments