diff --git a/.github/workflows/public-analyze-code-graph.yml b/.github/workflows/public-analyze-code-graph.yml index ff3ebf7cb..4ae3efeb3 100644 --- a/.github/workflows/public-analyze-code-graph.yml +++ b/.github/workflows/public-analyze-code-graph.yml @@ -37,10 +37,10 @@ on: analysis-arguments: description: > The arguments to pass to the analysis script. - Default: '--profile Neo4jv5-low-memory' + Default: '--profile Neo4j-latest-low-memory' required: false type: string - default: '--profile Neo4jv5-low-memory' + default: '--profile Neo4j-latest-low-memory' typescript-scan-heap-memory: description: > The heap memory size in MB to use for the TypeScript code scans (default=4096). @@ -71,7 +71,7 @@ jobs: matrix: include: - os: ubuntu-22.04 - java: 17 + java: 21 python: 3.12 miniforge: 24.9.0-0 steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fe4ce389..a94232248 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,91 @@ 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. +## v2.1.4 + +### 🛠 Fix + +* [Remove debug prints](https://github.com/JohT/code-graph-analysis-pipeline/commit/4d0a419dc4344e1008ad9d08f8a572421758b191) + +## v2.1.3 + +### 🚀 Feature + +* Improve git history rendering by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/371 +* Add git history csv reports by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/372 + * Add git history CSV reports ([7ea6c28](https://github.com/JohT/code-graph-analysis-pipeline/pull/372/commits/7ea6c2823bdf0bda4012e13a629d5f29fd8a86c3)) + * Use PREPARE_CONDA_ENVIRONMENT to fully skip conda ([2d0b800](https://github.com/JohT/code-graph-analysis-pipeline/pull/372/commits/2d0b800c48beb80164dd9a5c8f5d145d6923b991)) + +### 🛠 Fix + +* Fix missing pairwise changed dependencies by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/368 + * Calculate p-values only if there are enough samples ([71d3519](https://github.com/JohT/code-graph-analysis-pipeline/pull/368/commits/71d3519d50c7336e083841aaada0f3d8619fd0ec)) +* Fix git commitCount to only contain unique hashes ([14dceef](https://github.com/JohT/code-graph-analysis-pipeline/pull/372/commits/14dceef6c7eb38a376606a068b484f917cf8551b)) by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/372 + +### 📦 Dependency Updates + +* Update jQAssistant TypeScript Plugin to v1.4.0-M2 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/364 +* Update dependency com.buschmais.jqassistant.cli:jqassistant-commandline-neo4jv5 to v2.7.0-RC1 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/366 +* Update actions/setup-java digest to c5195ef by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/365 + +## v2.1.2 + +### 🚀 Feature + +[Compare pairwise changed files with their dependency weights](https://github.com/JohT/code-graph-analysis-pipeline/pull/362/commits/7e5886904bcfe503a73dfba654aa972418f064b0) by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/362: +The [GitHistoryGeneral.ipynb](https://github.com/JohT/code-graph-analysis-pipeline/blob/cb47f814332f517807b9e144df352f68146cddfe/jupyter/GitHistoryGeneral.ipynb) notebook now includes a section that analyzes pairwise file changes alongside their code dependencies (e.g., imports). It calculates correlations, p-values, and visualizes the results using a scatter plot. + +### 🛠 Fix + +[Fix missing git changes due to not reliably present label](https://github.com/JohT/code-graph-analysis-pipeline/pull/362/commits/5242804ad517b82b928e7ebd87c9d64b1d2f8a0e) by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/362 + +### 📦 Dependency Updates + +* Update Node.js to v23.11.0 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/355 +* Update dependency com.buschmais.jqassistant.cli:jqassistant-commandline-neo4jv5 to v2.7.0-M1 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/359 +* Update Neo4j and APOC to 5.26.5 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/360 +* Update dependency JohT/open-graph-data-science-packaging to v2.13.4 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/361 + +## v2.1.1 + +### 🚀 Features + +* Auto update Conda Environment by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/353 + * [Update conda environment if its outdated compared to the `environment.yml`](https://github.com/JohT/code-graph-analysis-pipeline/pull/353/commits/7f5b2811963b94631d7bb4ef4da57bad98a8f0d4): Previously, Jupyter notebooks failed to import libraries that had been added lately. An already existing Conda environment "codegraph" was sufficient, even it was outdated. Now, it will automatically be updated if necessary so that there are no more import errors. + * [Add PREPARE_CONDA_ENVIRONMENT to skip Conda environment setup](https://github.com/JohT/code-graph-analysis-pipeline/pull/353/commits/f13df113a691b55168dbc02cf5b94d5d838b688e): Previously, Conda environment activation was skipped when the `codegraph` environment was already active. Now, `PREPARE_CONDA_ENVIRONMENT="false` needs to be set additionally to explicitly skip that part. This is needed in GitHub Action pipelines because `conda init` doesn't work as expected but is taken care of by [setup-miniconda](https://github.com/marketplace/actions/setup-miniconda#important). + * [Introduce script testing](https://github.com/JohT/code-graph-analysis-pipeline/pull/353/commits/7b735b0abfa037e090580ca5e5cfc80835b80e16): The first (for now framework-free) script test is implemented in the pipeline 🎉. + +* Improve git history treemap visualizations and uncover pairwise changed files by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/352 + * [Add CHANGED_TOGETHER_WITH edge for git file nodes](https://github.com/JohT/code-graph-analysis-pipeline/pull/352/commits/10e202e45e5d4ba602b6023277f63ddf60c97f2e): With this change, there is now the new relationship `CHANGED_TOGETHER_WITH` between `File` nodes (git as well as code) including a property `commitCount` on how often they were changed together. This adds an additional way of uncovering dependencies of files, besides code dependencies via imports. + +### 📈 Reports + +* Improve git history treemap visualizations and uncover pairwise changed files by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/352 + * [Add plot highlighting directories with very few authors](https://github.com/JohT/code-graph-analysis-pipeline/pull/352/commits/46290acd5451ce7e4628f118cd67846bc47e535d) + * [Add treemap plot that shows commit counts of pairwise changed files](https://github.com/JohT/code-graph-analysis-pipeline/pull/352/commits/30349a77160acd1cde612c199c74b3c67f4cafdb): Now you can additionally see which areas in the code base where changed in conjunction with at least one other file. + +### ⚙️ Optimizations + +* Auto update Conda Environment by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/353 + * [Improve change file detection](https://github.com/JohT/code-graph-analysis-pipeline/pull/353/commits/41260dfb02dc6ed7f4f3ff88ff463330b809efd3): + * Log output is now colored (red = error, dark grey = info) + * Given `--paths` are now validated + * File statistics are now correctly extracted for MacOS and Linux + +* Improve git history treemap visualizations and uncover pairwise changed files by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/352 + * [Change default svg rendering size to 1080x1080](https://github.com/JohT/code-graph-analysis-pipeline/pull/352/commits/b898b1611717497e2176b368db8ab5bd27a017e8) + +### 🛠 Fixes + +* Auto update Conda Environment by @JohT in https://github.com/JohT/code-graph-analysis-pipeline/pull/353 + * [Defer download URL check for offline mode](https://github.com/JohT/code-graph-analysis-pipeline/pull/353/commits/a1d141fee5398fd32c57a453c39aa78f40b63d2c): Previously, it was not possible to get an artifact from the download script in offline mode, even if it had already been downloaded and ready to use in the cache. This is now resolved by deferring the check of the URL until right before the actual download, since it needs an internet connection. + * [Fix wrong variable for Jupyter notebook directory](https://github.com/JohT/code-graph-analysis-pipeline/pull/353/commits/59571c42f9b7c2f9bbb67554a08c1643deb56bb4): Conda environment creation still used an old variable from another file that kept working since these files are called consecutively. However, can break easily and is now resolved. + +### 📦 Dependency Updates + +* Update actions/download-artifact digest to 95815c3 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/351 +* Update actions/cache digest to 5a3ec84 by @renovate in https://github.com/JohT/code-graph-analysis-pipeline/pull/350 + ## v2.1.0 (2025-03-22) Public GitHub Actions Workflow, GraphViz Visualization and Git History Treemaps For all details see: https://github.com/JohT/code-graph-analysis-pipeline/releases/tag/v2.1.0 diff --git a/COMMANDS.md b/COMMANDS.md index b240cb460..acb850198 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -67,18 +67,19 @@ The [analyze.sh](./scripts/analysis/analyze.sh) command comes with these command - `--report Csv` only generates CSV reports. This speeds up the report generation and doesn't depend on Python, Jupyter Notebook or any other related dependencies. The default value os `All` to generate all reports. `Jupiter` will only generate Jupyter Notebook reports. `DatabaseCsvExport` exports the whole graph database as a CSV file (performance intense, check if there are security concerns first). -- `--profile Neo4jv4` uses the older long term support (june 2023) version v4.4.x of Neo4j and suitable compatible versions of plugins and JQAssistant. `Neo4jv5` will explicitly select the newest (june 2023) version 5.x of Neo4j. Without setting -a profile, the newest versions will be used. Other profiles can be found in the directory [scripts/profiles](./scripts/profiles/). +- `--profile Neo4jv4` uses the older long term support (june 2023) version v4.4.x of Neo4j and suitable compatible versions of plugins and JQAssistant. Without specifying a profile, the newest versions will be used. Other profiles can be found in the directory [scripts/profiles](./scripts/profiles/). -- `--profile Neo4jv5-continue-on-scan-errors` is based on the default profile (`Neo4jv5`) but uses the jQAssistant configuration template [template-neo4jv5-jqassistant-continue-on-error.yaml](./scripts/configuration/template-neo4jv5-jqassistant-continue-on-error.yaml) to continue on scan error instead of failing fast. This is temporarily useful when there is a known error that needs to be ignored. It is still recommended to use the default profile and fail fast if there is something wrong. Other profiles can be found in the directory [scripts/profiles](./scripts/profiles/). +- `--profile Neo4jv5` uses the older long term support (march 2025) version v5.26.x of Neo4j and suitable compatible versions of plugins and JQAssistant. Without specifying a profile, the newest versions will be used. Other profiles can be found in the directory [scripts/profiles](./scripts/profiles/). -- `--profile Neo4jv5-low-memory` is based on the default profile (`Neo4jv5`) but uses only half of the memory (RAM) as configured in [template-neo4j-low-memory.conf](./scripts/configuration/template-neo4j-low-memory.conf). This is useful for the analysis of smaller codebases with less resources. Other profiles can be found in the directory [scripts/profiles](./scripts/profiles/). +- `--profile Neo4j-latest-continue-on-scan-errors` is based on the default profile (`Neo4j-latest`) but uses the jQAssistant configuration template [template-neo4j-remote-jqassistant-continue-on-error.yaml](./scripts/configuration/template-neo4j-remote-jqassistant-continue-on-error.yaml) to continue on scan error instead of failing fast. This is temporarily useful when there is a known error that needs to be ignored. It is still recommended to use the default profile and fail fast if there is something wrong. Other profiles can be found in the directory [scripts/profiles](./scripts/profiles/). + +- `--profile Neo4j-latest-low-memory` is based on the default profile (`Neo4j-latest`) but uses only half of the memory (RAM) as configured in [template-neo4j-low-memory.conf](./scripts/configuration/template-neo4j-low-memory.conf). This is useful for the analysis of smaller codebases with less resources. Other profiles can be found in the directory [scripts/profiles](./scripts/profiles/). - `--explore` activates the "explore" mode where no reports are generated. Furthermore, Neo4j won't be stopped at the end of the script and will therefore continue running. This makes it easy to just set everything up but then use the running Neo4j server to explore the data manually. ### Notes -- Be sure to use Java 17 for Neo4j v5 and Java 11 for Neo4j v4 +- Be sure to use Java 21 for Neo4j v2025, Java 17 for v5 and Java 11 for v4. Details see [Neo4j System Requirements / Java](https://neo4j.com/docs/operations-manual/current/installation/requirements/#deployment-requirements-java). - Use your own initial Neo4j password - For more details have a look at the script [analyze.sh](./scripts/analysis/analyze.sh) diff --git a/INTEGRATION.md b/INTEGRATION.md index 9b3c44cf5..2f375248f 100644 --- a/INTEGRATION.md +++ b/INTEGRATION.md @@ -36,7 +36,7 @@ The workflow parameters are as follows: - **sources-upload-name**: The name of the sources uploaded with [actions/upload-artifact](https://github.com/actions/upload-artifact/tree/65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08) containing the content of the 'source' directory for the analysis. It also supports sub-folders for multiple source code bases. This parameter is optional and defaults to an empty string. Please use 'include-hidden-files: true' if you also want to upload the git history. - **ref**: The branch, tag, or SHA of the code-graph-analysis-pipeline to checkout. This parameter is optional and defaults to "main". -- **analysis-arguments**: The arguments to pass to the analysis script. This parameter is optional and defaults to '--profile Neo4jv5-low-memory'. You can find all available options in section [Command Line Options of COMMANDS.md/](./COMMANDS.md#command-line-options). +- **analysis-arguments**: The arguments to pass to the analysis script. This parameter is optional and defaults to '--profile Neo4j-latest-low-memory'. You can find all available options in section [Command Line Options of COMMANDS.md/](./COMMANDS.md#command-line-options). - **typescript-scan-heap-memory**: The heap memory size in MB to use for the TypeScript code scans. This value is only used for the TypeScript code scans and is ignored for other scans. This parameter is optional and defaults to '4096'. It will set the environment variable `TYPESCRIPT_SCAN_HEAP_MEMORY` which leads to `NODE_OPTIONS` set to `--max-old-space-size=4096` for TypeScript scans. See [Questions and Answers of README.md](./README.md#thinking-questions--answers) for more information. The workflow also provides an output parameter: diff --git a/README.md b/README.md index b180d2035..2ce0fd259 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,10 @@ Contained within this repository is a comprehensive and automated code graph ana - Example analysis for [AxonFramework](https://github.com/AxonFramework/AxonFramework) - Example analysis for [react-router](https://github.com/remix-run/react-router) +### :newspaper: News + +- May 2025: Migrated to [Neo4j 2025.x](https://neo4j.com/docs/upgrade-migration-guide/current/version-2025/upgrade) and Java 21. + ### :notebook: Jupyter Notebook Reports Here is an overview of [Jupyter Notebooks](https://jupyter.org) reports from [code-graph-analysis-examples](https://github.com/JohT/code-graph-analysis-examples). For a complete list, see the [Jupyter Notebook Report Reference](#page_with_curl-jupyter-notebook-report-reference). @@ -66,7 +70,8 @@ Here are some fully automated graph visualizations utilizing [GraphViz](https:// ## :hammer_and_wrench: Prerequisites -- Java 17 is [required for Neo4j](https://neo4j.com/docs/operations-manual/current/installation/requirements/#deployment-requirements-software) (Neo4j 5.x requirement). +- Java 21 is [required since Neo4j 2025.01](https://neo4j.com/docs/operations-manual/current/installation/requirements/#deployment-requirements-java). See also [Changes from Neo4j 5 to 2025.x](https://neo4j.com/docs/upgrade-migration-guide/current/version-2025/upgrade). +- Java 17 is [required for Neo4j 5](https://neo4j.com/docs/operations-manual/current/installation/requirements/#deployment-requirements-java). - On Windows it is recommended to use the git bash provided by [git for windows](https://github.com/git-guides/install-git#install-git-on-windows). - [jq](https://github.com/jqlang/jq) the "lightweight and flexible command-line JSON processor" needs to be installed. Latest releases: https://github.com/jqlang/jq/releases/latest. Check using `jq --version`. - Set environment variable `NEO4J_INITIAL_PASSWORD` to a password of your choice. For example: @@ -254,17 +259,17 @@ The [Code Structure Analysis Pipeline](./.github/workflows/internal-java-code-an ``` - How can i continue on errors when scanning Typescript projects instead of cancelling the whole analysis? - 👉 Use the profile `Neo4jv5-continue-on-scan-errors` (default = `Neo4jv5`): + 👉 Use the profile `Neo4j-latest-continue-on-scan-errors` (default = `Neo4j-latest`): ```shell - ./../../scripts/analysis/analyze.sh --profile Neo4jv5-continue-on-scan-errors + ./../../scripts/analysis/analyze.sh --profile Neo4j-latest-continue-on-scan-errors ``` - How can i reduce the memory (RAM) consumption? - 👉 Use the profile `Neo4jv5-low-memory` (default = `Neo4jv5`): + 👉 Use the profile `Neo4j-latest-low-memory` (default = `Neo4j-latest`): ```shell - ./../../scripts/analysis/analyze.sh --profile Neo4jv5-low-memory + ./../../scripts/analysis/analyze.sh --profile Neo4j-latest-low-memory ``` ## 🕸 Web References diff --git a/cypher/Centrality/Centrality_10d_Bridges_Stream.cypher b/cypher/Centrality/Centrality_10d_Bridges_Stream.cypher index e09657aae..b906855c4 100644 --- a/cypher/Centrality/Centrality_10d_Bridges_Stream.cypher +++ b/cypher/Centrality/Centrality_10d_Bridges_Stream.cypher @@ -1,7 +1,8 @@ // Centrality 10d Bridges Stream CALL gds.bridges.stream($dependencies_projection + '-cleaned') - YIELD from, to +// The field "remainingSizes" is only needed until https://github.com/neo4j/graph-data-science/issues/354 is resolved. + YIELD from, to, remainingSizes WITH gds.util.asNode(from) AS fromMember ,gds.util.asNode(to) AS toMember WITH *, coalesce(fromMember.declaringType + ': ', '') + diff --git a/cypher/Centrality/Centrality_10e_Bridges_Write.cypher b/cypher/Centrality/Centrality_10e_Bridges_Write.cypher index be2bb4a4d..9f3ee263f 100644 --- a/cypher/Centrality/Centrality_10e_Bridges_Write.cypher +++ b/cypher/Centrality/Centrality_10e_Bridges_Write.cypher @@ -1,7 +1,8 @@ // Centrality 10e Bridges Stream - Write Relationship Property "isBridge" CALL gds.bridges.stream($dependencies_projection + '-cleaned') - YIELD from, to +// The field "remainingSizes" is only needed until https://github.com/neo4j/graph-data-science/issues/354 is resolved. + YIELD from, to, remainingSizes WITH gds.util.asNode(from) AS fromMember ,gds.util.asNode(to) AS toMember MATCH (fromMember)-[dependency:DEPENDS_ON]-(toMember) diff --git a/renovate.json b/renovate.json index 7e5e9bc6d..1502230c5 100644 --- a/renovate.json +++ b/renovate.json @@ -76,7 +76,7 @@ "description": "Update NEO4J_VERSION constant in shell scripts", "customType": "regex", "fileMatch": [ - "^scripts/profiles/Neo4jv5.*\\.sh$", + "^scripts/profiles/Neo4j-latest.*\\.sh$", "^scripts/profiles/Default\\.sh$", "^scripts/[^/]*\\.sh$" ], @@ -90,7 +90,7 @@ "description": "Update NEO4J_APOC_PLUGIN_VERSION constant in shell scripts", "customType": "regex", "fileMatch": [ - "^scripts/profiles/Neo4jv5.*\\.sh$", + "^scripts/profiles/Neo4j-latest.*\\.sh$", "^scripts/profiles/Default\\.sh$", "^scripts/[^/]*\\.sh$" ], @@ -104,7 +104,7 @@ "description": "Update NEO4J_GDS_PLUGIN_VERSION constant in shell scripts", "customType": "regex", "fileMatch": [ - "^scripts/profiles/Neo4jv5.*\\.sh$", + "^scripts/profiles/Neo4j-latest.*\\.sh$", "^scripts/profiles/Default\\.sh$", "^scripts/[^/]*\\.sh$" ], @@ -118,7 +118,7 @@ "description": "Update NEO4J_OPEN_GDS_PLUGIN_VERSION constant in shell scripts", "customType": "regex", "fileMatch": [ - "^scripts/profiles/Neo4jv5.*\\.sh$", + "^scripts/profiles/Neo4j-latest.*\\.sh$", "^scripts/profiles/Default\\.sh$", "^scripts/[^/]*\\.sh$" ], @@ -134,7 +134,7 @@ "description": "Update JQASSISTANT_CLI_VERSION constant in shell scripts", "customType": "regex", "fileMatch": [ - "^scripts/profiles/Neo4jv5.*\\.sh$", + "^scripts/profiles/Neo4j-latest.*\\.sh$", "^scripts/profiles/Default\\.sh$", "^scripts/[^/]*\\.sh$" ], diff --git a/scripts/analysis/analyze.sh b/scripts/analysis/analyze.sh index fd163693a..07238bca2 100755 --- a/scripts/analysis/analyze.sh +++ b/scripts/analysis/analyze.sh @@ -17,7 +17,7 @@ # Note: The argument "--profile" is optional. The default value is "Default". # It selects a settings profile that sets all suitable variables for the analysis. -# This makes it possible to run an analysis with e.g. Neo4j v4 instead of v5. Further profiles might come in future. +# This makes it possible to run an analysis with e.g. Neo4j v4 or v5. Further profiles might come in future. # Implemented is this as a script in "scripts/profiles" that starts with the settings profile name followed by ".sh". # Note: The argument "--explore" is optional. It is a switch that is deactivated by default. @@ -28,7 +28,7 @@ # when it comes to subsequent executions. # Existing downloads, installations, scans and processes will be detected. -# Requires setupNeo4j.sh,setupJQAssistant.sh,startNeo4j.sh,resetAndScanChanged.sh,prepareAnalysis.sh,stopNeo4j.sh,comilations/*.sh,profiles/*.sh +# Requires setupNeo4j.sh,setupJQAssistant.sh,startNeo4j.sh,resetAndScanChanged.sh,prepareAnalysis.sh,stopNeo4j.sh,compilations/*.sh,profiles/*.sh # Fail on any error ("-e" = exit on first error, "-o pipefail" exist on errors within piped commands) set -o errexit -o pipefail diff --git a/scripts/configuration/template-neo4j-remote-jqassistant-continue-on-error.yaml b/scripts/configuration/template-neo4j-remote-jqassistant-continue-on-error.yaml new file mode 100644 index 000000000..57e3ef3e5 --- /dev/null +++ b/scripts/configuration/template-neo4j-remote-jqassistant-continue-on-error.yaml @@ -0,0 +1,228 @@ +jqassistant: + # Controls whether the execution of jQAssistant shall be skipped + # + # -Djqassistant.skip: true|false + skip: false + + # Defines the local and remote Maven repositories for retrieving additional plugins. + repositories: + # The path to the local repository. + # + # -Djqassistant.repositories.local (optional) + local: ./../downloads/jqassistant-repository + + # The list of plugins to load and activate. + # + # Each plugin is identified using its Maven coordinates: + # + # -Djqassistant.plugins[0].group-id + # -Djqassistant.plugins[0].artifact-id + # -Djqassistant.plugins[0].version + # -Djqassistant.plugins[0].classifier (optional) + # -Djqassistant.plugins[0].type (optional) + #plugins: + # - group-id: + # artifact-id: + # version: + # classifier: + # type: + plugins: + - group-id: org.jqassistant.plugin.typescript + artifact-id: jqassistant-typescript-plugin + version: 1.4.0-M2 + - group-id: org.jqassistant.plugin + artifact-id: jqassistant-npm-plugin + version: 2.1.0 + - group-id: de.kontext-e.jqassistant.plugin + artifact-id: jqassistant.plugin.git + version: 2.4.0 + + + # The store configuration + store: + # URI of the database to connect to. Supported URI schemes are 'file' for embedded databases and 'bolt' for connecting to a running Neo4j instance (3.x+), e.g. + # + # -Djqassistant.store.uri + #uri: file://target/jqassistant/store + uri: bolt://localhost:${NEO4J_BOLT_PORT:7687} + + # Settings for the embedded Neo4j store + embedded: + # Enable the HTTP and BOLT connector for the embedded store + # + # -Djqassistant.store.embedded.connector-enabled: true|false + connector-enabled: false + + # The listen address for the HTTP and BOLT connectors + # + # -Djqassistant.store.embedded.listen-address + listen-address: localhost + + # The BOLT connector port + # + # -Djqassistant.store.embedded.bolt-port + bolt-port: 7687 + + # The HTTP connector port + # + # -Djqassistant.store.embedded.http-port: 7474 + http-port: 7474 + + # Settings for connecting to a remote Neo4j store + remote: + # The user name for authentication. + # + # -Djqassistant.store.username + username: ${NEO4J_USER:neo4j} + + # The password for authentication. + # + # -Djqassistant.store.password + password: ${NEO4J_INITIAL_PASSWORD} + + # Activate encryption level for 'bolt' connections. + # + # -Djqassistant.store.encryption: true|false + encryption: false + + #The trust strategy for 'bolt' connections + # + # -Djqassistant.store.trust-strategy: trustAllCertificates|trustCustomCaSignedCertificates|trustSystemCaSignedCertificates + trust-strategy: trustAllCertificates + + # The file containing the custom CA certificate for trust strategy. + # + # -Djqassistant.store.trust-certificate + trust-certificate: + + # Additional properties to be passed to the remote store as key-value pairs. + # + # -Djqassistant.store.properties + properties: + + # The Scanner configuration + scan: + # Indicates whether to initially reset the store (i.e. clear all nodes and relationships) before scanning. + # + # -Djqassistant.scan.reset: true|false + reset: true + + # Specifies if a scan shall be continued if an error is encountered. + # + # -Djqassistant.scan.continue-on-error: true|false + continue-on-error: true + + # The items to include for scanning. + include: + # A list of files to include. + # + #jqassistant.scan.include.files[0] + files: + # - src/folder + + # A list of URLs to include. + # + #jqassistant.scan.include.urls[0] + urls: + # - maven:repository::https://nexus/repository + + # The properties to configure scanner plugins as key-value pairs. The supported properties are plugin specific. + # + # -Djqassistant.scan.properties + properties: + # plugin.property.key: value + file.exclude: "*/.DS_Store" + json.file.exclude: "*/.reports/jqa/ts-output.json" + + # The analyze configuration + analyze: + # The rule configuration + rule: + # The name of the directory containing project rules. + # + # -Djqassistant.analyze.rule.directory + directory: jqassistant/rules + + # The default severity of concepts without an explicit severity. + # + # -Djqassistant.analyze.rule.default-concept-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER + default-concept-severity: MINOR + + # The default severity of constraint without an explicit severity. + # + # -Djqassistant.analyze.rule.default-constraint-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER + default-constraint-severity: MAJOR + + # The default severity of groups without an explicit severity. + # + # -Djqassistant.analyze.rule.default-group-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER + default-group-severity: + + # The report configuration + report: + # The properties to configure report plugins. The supported properties are plugin specific. + # + # -Djqassistant.analyze.report.properties + properties: + # plugin.property.key: value + + # Determines the severity level for reporting a warning. + # + # -Djqassistant.analyze.report.warn-on-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER|NEVER + warn-on-severity: MINOR + + # Determines the severity level for reporting a failure. + # + # -Djqassistant.analyze.report.fail-on-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER|NEVER + fail-on-severity: MAJOR + + # Determines if jQAssistant shall continue the build if failures have been detected. + # + # -Djqassistant.analyze.report.continue-on-failure: true|false + continue-on-failure: false + + # Create an archive containing all generated reports. + # + # -Djqassistant.analyze.report.create-archive: true|false + create-archive: false + + # Output directory for analysis reports + directory: ./runtime/jqassistant/report + + # The concepts to be applied. + # + # -Djqassistant.analyze.concepts[0] + # https://github.com/jQAssistant/jqa-java-plugin/blob/e17fc3032fb0d4258d4f5ca0c64099a6c789c070/src/main/asciidoc/release-notes.adoc#L9 + concepts: + - java-classpath:Resolve + - java:PackageDependency + - java:ArtifactDependency + - java:JavaVersion + + # The constraints to be validated. + # + # -Djqassistant.analyze.constraints[0] + constraints: + # - my-constraint + + # The groups to be executed. + # + # -Djqassistant.analyze.groups[0] + groups: + # - spring-boot:Default + + # The parameters to be passed to the executed rules. + # + # -Djqassistant.analyze.rule-parameters."parameterName" + rule-parameters: + # parameterName: value + + # Execute concepts even if they have already been applied before + # + # -Djqassistant.analyze.execute-applied-concepts: true|false + execute-applied-concepts: false + + # The execution time [seconds] for rules (concepts/constraints) to show a warning. Can be used as a hint for optimization. + # + # -Djqassistant.analyze.warn-on-rule-execution-time-seconds + warn-on-rule-execution-time-seconds: 5 diff --git a/scripts/configuration/template-neo4j-remote-jqassistant.yaml b/scripts/configuration/template-neo4j-remote-jqassistant.yaml new file mode 100644 index 000000000..95f6cb787 --- /dev/null +++ b/scripts/configuration/template-neo4j-remote-jqassistant.yaml @@ -0,0 +1,228 @@ +jqassistant: + # Controls whether the execution of jQAssistant shall be skipped + # + # -Djqassistant.skip: true|false + skip: false + + # Defines the local and remote Maven repositories for retrieving additional plugins. + repositories: + # The path to the local repository. + # + # -Djqassistant.repositories.local (optional) + local: ./../downloads/jqassistant-repository + + # The list of plugins to load and activate. + # + # Each plugin is identified using its Maven coordinates: + # + # -Djqassistant.plugins[0].group-id + # -Djqassistant.plugins[0].artifact-id + # -Djqassistant.plugins[0].version + # -Djqassistant.plugins[0].classifier (optional) + # -Djqassistant.plugins[0].type (optional) + #plugins: + # - group-id: + # artifact-id: + # version: + # classifier: + # type: + plugins: + - group-id: org.jqassistant.plugin.typescript + artifact-id: jqassistant-typescript-plugin + version: 1.4.0-M2 + - group-id: org.jqassistant.plugin + artifact-id: jqassistant-npm-plugin + version: 2.1.0 + - group-id: de.kontext-e.jqassistant.plugin + artifact-id: jqassistant.plugin.git + version: 2.4.0 + + + # The store configuration + store: + # URI of the database to connect to. Supported URI schemes are 'file' for embedded databases and 'bolt' for connecting to a running Neo4j instance (3.x+), e.g. + # + # -Djqassistant.store.uri + #uri: file://target/jqassistant/store + uri: bolt://localhost:${NEO4J_BOLT_PORT:7687} + + # Settings for the embedded Neo4j store + embedded: + # Enable the HTTP and BOLT connector for the embedded store + # + # -Djqassistant.store.embedded.connector-enabled: true|false + connector-enabled: false + + # The listen address for the HTTP and BOLT connectors + # + # -Djqassistant.store.embedded.listen-address + listen-address: localhost + + # The BOLT connector port + # + # -Djqassistant.store.embedded.bolt-port + bolt-port: 7687 + + # The HTTP connector port + # + # -Djqassistant.store.embedded.http-port: 7474 + http-port: 7474 + + # Settings for connecting to a remote Neo4j store + remote: + # The user name for authentication. + # + # -Djqassistant.store.username + username: ${NEO4J_USER:neo4j} + + # The password for authentication. + # + # -Djqassistant.store.password + password: ${NEO4J_INITIAL_PASSWORD} + + # Activate encryption level for 'bolt' connections. + # + # -Djqassistant.store.encryption: true|false + encryption: false + + #The trust strategy for 'bolt' connections + # + # -Djqassistant.store.trust-strategy: trustAllCertificates|trustCustomCaSignedCertificates|trustSystemCaSignedCertificates + trust-strategy: trustAllCertificates + + # The file containing the custom CA certificate for trust strategy. + # + # -Djqassistant.store.trust-certificate + trust-certificate: + + # Additional properties to be passed to the remote store as key-value pairs. + # + # -Djqassistant.store.properties + properties: + + # The Scanner configuration + scan: + # Indicates whether to initially reset the store (i.e. clear all nodes and relationships) before scanning. + # + # -Djqassistant.scan.reset: true|false + reset: true + + # Specifies if a scan shall be continued if an error is encountered. + # + # -Djqassistant.scan.continue-on-error: true|false + continue-on-error: false + + # The items to include for scanning. + include: + # A list of files to include. + # + #jqassistant.scan.include.files[0] + files: + # - src/folder + + # A list of URLs to include. + # + #jqassistant.scan.include.urls[0] + urls: + # - maven:repository::https://nexus/repository + + # The properties to configure scanner plugins as key-value pairs. The supported properties are plugin specific. + # + # -Djqassistant.scan.properties + properties: + # plugin.property.key: value + file.exclude: "*/.DS_Store" + json.file.exclude: "*/.reports/jqa/ts-output.json" + + # The analyze configuration + analyze: + # The rule configuration + rule: + # The name of the directory containing project rules. + # + # -Djqassistant.analyze.rule.directory + directory: jqassistant/rules + + # The default severity of concepts without an explicit severity. + # + # -Djqassistant.analyze.rule.default-concept-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER + default-concept-severity: MINOR + + # The default severity of constraint without an explicit severity. + # + # -Djqassistant.analyze.rule.default-constraint-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER + default-constraint-severity: MAJOR + + # The default severity of groups without an explicit severity. + # + # -Djqassistant.analyze.rule.default-group-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER + default-group-severity: + + # The report configuration + report: + # The properties to configure report plugins. The supported properties are plugin specific. + # + # -Djqassistant.analyze.report.properties + properties: + # plugin.property.key: value + + # Determines the severity level for reporting a warning. + # + # -Djqassistant.analyze.report.warn-on-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER|NEVER + warn-on-severity: MINOR + + # Determines the severity level for reporting a failure. + # + # -Djqassistant.analyze.report.fail-on-severity: INFO|MINOR|MAJOR|CRITICAL|BLOCKER|NEVER + fail-on-severity: MAJOR + + # Determines if jQAssistant shall continue the build if failures have been detected. + # + # -Djqassistant.analyze.report.continue-on-failure: true|false + continue-on-failure: false + + # Create an archive containing all generated reports. + # + # -Djqassistant.analyze.report.create-archive: true|false + create-archive: false + + # Output directory for analysis reports + directory: ./runtime/jqassistant/report + + # The concepts to be applied. + # + # -Djqassistant.analyze.concepts[0] + # https://github.com/jQAssistant/jqa-java-plugin/blob/e17fc3032fb0d4258d4f5ca0c64099a6c789c070/src/main/asciidoc/release-notes.adoc#L9 + concepts: + - java-classpath:Resolve + - java:PackageDependency + - java:ArtifactDependency + - java:JavaVersion + + # The constraints to be validated. + # + # -Djqassistant.analyze.constraints[0] + constraints: + # - my-constraint + + # The groups to be executed. + # + # -Djqassistant.analyze.groups[0] + groups: + # - spring-boot:Default + + # The parameters to be passed to the executed rules. + # + # -Djqassistant.analyze.rule-parameters."parameterName" + rule-parameters: + # parameterName: value + + # Execute concepts even if they have already been applied before + # + # -Djqassistant.analyze.execute-applied-concepts: true|false + execute-applied-concepts: false + + # The execution time [seconds] for rules (concepts/constraints) to show a warning. Can be used as a hint for optimization. + # + # -Djqassistant.analyze.warn-on-rule-execution-time-seconds + warn-on-rule-execution-time-seconds: 5 diff --git a/scripts/executeQuery.sh b/scripts/executeQuery.sh index b8d7cf4e3..9c662e6a1 100755 --- a/scripts/executeQuery.sh +++ b/scripts/executeQuery.sh @@ -19,7 +19,7 @@ set -o errexit -o pipefail # Overrideable Defaults NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"} # Neo4j HTTP API port for executing queries -NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} # Neo4j v5: "db//tx/commit", Neo4j v4: "db/data/transaction/commit" +NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} # Since Neo4j v5: "db//tx/commit", Neo4j v4: "db/data/transaction/commit" # Local constants ERROR_COLOR='\033[0;31m' diff --git a/scripts/profiles/Neo4j-latest-continue-on-scan-errors.sh b/scripts/profiles/Neo4j-latest-continue-on-scan-errors.sh new file mode 100755 index 000000000..3ae564101 --- /dev/null +++ b/scripts/profiles/Neo4j-latest-continue-on-scan-errors.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +# Sets all settings variables for an analysis with the latest version of Neo4j. +# The chosen settings are tested to be compatible and working. + +NEO4J_VERSION=${NEO4J_VERSION:-"2025.03.0"} # Neo4j Graph Database Version. Current versions: >= 2025.03.0. Version 4.4.42 and 5.26.5 are the previous LTS (long term support) versions as of April 2025. +NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} +NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j.conf"} + +# Awesome Procedures (APOC) Plugin for Neo4j +NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"2025.03.0"} +NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} +NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} + +NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.16.0"} +NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.16.0"} +NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} + +JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} +JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv5"} +JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4j-latest-jqassistant-continue-on-error.yaml"} \ No newline at end of file diff --git a/scripts/profiles/Neo4j-latest-low-memory.sh b/scripts/profiles/Neo4j-latest-low-memory.sh new file mode 100755 index 000000000..5dc6e06ad --- /dev/null +++ b/scripts/profiles/Neo4j-latest-low-memory.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +# Sets all settings variables for an analysis with Neo4j v5.x (newest version as of june 2023). +# The chosen settings are tested to be compatible and working. + +NEO4J_VERSION=${NEO4J_VERSION:-"2025.03.0"} # Neo4j Graph Database Version. Current versions: >= 2025.03.0. Version 4.4.42 and 5.26.5 are the previous LTS (long term support) versions as of April 2025. +NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} +NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j-low-memory.conf"} + +# Awesome Procedures (APOC) Plugin for Neo4j +NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"2025.03.0"} +NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} +NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} + +NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.16.0"} +NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.16.0"} +NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} + +JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} +JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv5"} +JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4j-remote-jqassistant.yaml"} \ No newline at end of file diff --git a/scripts/profiles/Neo4j-latest.sh b/scripts/profiles/Neo4j-latest.sh new file mode 100755 index 000000000..730b2a2ee --- /dev/null +++ b/scripts/profiles/Neo4j-latest.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +# Sets all settings variables for an analysis with the latest version of Neo4j. +# The chosen settings are tested to be compatible and working. + +NEO4J_VERSION=${NEO4J_VERSION:-"2025.03.0"} # Neo4j Graph Database Version. Current versions: >= 2025.03.0. Version 4.4.42 and 5.26.5 are the previous LTS (long term support) versions as of April 2025. +NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} +NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j.conf"} + +# Awesome Procedures (APOC) Plugin for Neo4j +NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"2025.03.0"} +NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} +NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} + +NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.16.0"} +NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.16.0"} +NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} + +JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} +JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv5"} +JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4j-remote-jqassistant.yaml"} \ No newline at end of file diff --git a/scripts/profiles/Neo4jv4-low-memory.sh b/scripts/profiles/Neo4jv4-low-memory.sh index 91c312e53..5debc1873 100755 --- a/scripts/profiles/Neo4jv4-low-memory.sh +++ b/scripts/profiles/Neo4jv4-low-memory.sh @@ -3,25 +3,19 @@ # Sets all settings variables for an analysis with Neo4j v4.4.x (long term support (LTS) version as of may 2023). # The chosen settings are tested to be compatible and working. -NEO4J_VERSION=${NEO4J_VERSION:-"4.4.20"} # Version 4.4.x is the current long term support (LTS) version (may 2023) -NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/data/transaction/commit"} # Since Neo4j v5 it is "db//tx/commit" -NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j-v4-low-memory.conf"} # Name of the template file ("configuration" folder) for the Neo4j configuration - -# Overrideable settings variables for ports (optional, defaults also defined in sub scripts where needed) -# Override them if you need to run multiple neo4j database servers in parallel. -NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"} # Neo4j HTTP API port for executing queries -NEO4J_HTTPS_PORT=${NEO4J_HTTPS_PORT:-"7473"} # Neo4j HTTPS port for encrypted querying -NEO4J_BOLT_PORT=${NEO4J_BOLT_PORT:-"7687"} # Neo4j's own "Bolt Protocol" port +NEO4J_VERSION=${NEO4J_VERSION:-"4.4.42"} # Neo4j Graph Database Version. Current versions: >= 2025.03.0. Version 4.4.42 and 5.26.5 are the previous LTS (long term support) versions as of April 2025. +NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/data/transaction/commit"} +NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j-v4-low-memory.conf"} # Awesome Procedures (APOC) Plugin for Neo4j -NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"4.4.0.15"} # Version number matches Neo4j version -NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"all"} # Since Neo4j v5 only the core edition is maintained -NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j-contrib/neo4j-apoc-procedures"} # Location for the old plugins compatible to Neo4j v4 +NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"4.4.0.15"} +NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"all"} +NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j-contrib/neo4j-apoc-procedures"} -NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.3.4"} # Graph Data Science Plugin Version 2.3.x is compatible with Neo4j 4.4.x -NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.6.8"} # Open package variant of the graph-data-science plugin for Neo4j (https://github.com/JohT/open-graph-data-science-packaging). Since version 2.4. compatible with Neo4j 5.x. -NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} # Graph Data Science Plugin Edition: "open" for OpenGDS, "full" for the full version with Neo4j license +NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.3.4"} +NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.6.8"} +NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} -JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"1.12.2"} # Version number of the jQAssistant command line interface. Version 1.12.2 is compatible with Neo4j v4 +JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"1.12.2"} JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv4"} -JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv4-jqassistant.yaml"} # Name of the template file for the jqassistant configuration \ No newline at end of file +JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv4-jqassistant.yaml"} \ No newline at end of file diff --git a/scripts/profiles/Neo4jv4.sh b/scripts/profiles/Neo4jv4.sh index f6405cd99..4b5e522cf 100755 --- a/scripts/profiles/Neo4jv4.sh +++ b/scripts/profiles/Neo4jv4.sh @@ -3,25 +3,19 @@ # Sets all settings variables for an analysis with Neo4j v4.4.x (long term support (LTS) version as of may 2023). # The chosen settings are tested to be compatible and working. -NEO4J_VERSION=${NEO4J_VERSION:-"4.4.20"} # Version 4.4.x is the current long term support (LTS) version (may 2023) -NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/data/transaction/commit"} # Since Neo4j v5 it is "db//tx/commit" -NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j-v4.conf"} # Name of the template file ("configuration" folder) for the Neo4j configuration - -# Overrideable settings variables for ports (optional, defaults also defined in sub scripts where needed) -# Override them if you need to run multiple neo4j database servers in parallel. -NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"} # Neo4j HTTP API port for executing queries -NEO4J_HTTPS_PORT=${NEO4J_HTTPS_PORT:-"7473"} # Neo4j HTTPS port for encrypted querying -NEO4J_BOLT_PORT=${NEO4J_BOLT_PORT:-"7687"} # Neo4j's own "Bolt Protocol" port +NEO4J_VERSION=${NEO4J_VERSION:-"4.4.42"} # Neo4j Graph Database Version. Current versions: >= 2025.03.0. Version 4.4.42 and 5.26.5 are the previous LTS (long term support) versions as of April 2025. +NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/data/transaction/commit"} +NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j-v4.conf"} # Awesome Procedures (APOC) Plugin for Neo4j -NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"4.4.0.15"} # Version number matches Neo4j version -NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"all"} # Since Neo4j v5 only the core edition is maintained -NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j-contrib/neo4j-apoc-procedures"} # Location for the old plugins compatible to Neo4j v4 +NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"4.4.0.15"} +NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"all"} +NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j-contrib/neo4j-apoc-procedures"} -NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.3.4"} # Graph Data Science Plugin Version 2.3.x is compatible with Neo4j 4.4.x -NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.6.8"} # Open package variant of the graph-data-science plugin for Neo4j (https://github.com/JohT/open-graph-data-science-packaging). Since version 2.4. compatible with Neo4j 5.x. -NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} # Graph Data Science Plugin Edition: "open" for OpenGDS, "full" for the full version with Neo4j license +NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.3.4"} +NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.6.8"} +NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} -JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"1.12.2"} # Version number of the jQAssistant command line interface. Version 1.12.2 is compatible with Neo4j v4 +JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"1.12.2"} JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv4"} -JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv4-jqassistant.yaml"} # Name of the template file for the jqassistant configuration \ No newline at end of file +JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv4-jqassistant.yaml"} \ No newline at end of file diff --git a/scripts/profiles/Neo4jv5-continue-on-scan-errors.sh b/scripts/profiles/Neo4jv5-continue-on-scan-errors.sh index 0485a6887..011846d89 100755 --- a/scripts/profiles/Neo4jv5-continue-on-scan-errors.sh +++ b/scripts/profiles/Neo4jv5-continue-on-scan-errors.sh @@ -3,25 +3,19 @@ # Sets all settings variables for an analysis with Neo4j v5.x (newest version as of june 2023). # The chosen settings are tested to be compatible and working. -NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} # Version 5.9.0 is the current version of june 2023 -NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} # Since Neo4j v5 it is "db//tx/commit" -NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j.conf"} # Name of the template file ("configuration" folder) for the Neo4j configuration - -# Overrideable settings variables for ports (optional, defaults also defined in sub scripts where needed) -# Override them if you need to run multiple neo4j database servers in parallel. -NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"} # Neo4j HTTP API port for executing queries -NEO4J_HTTPS_PORT=${NEO4J_HTTPS_PORT:-"7473"} # Neo4j HTTPS port for encrypted querying -NEO4J_BOLT_PORT=${NEO4J_BOLT_PORT:-"7687"} # Neo4j's own "Bolt Protocol" port +NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} # Neo4j Graph Database Version. Current versions: >= 2025.03.0. Version 4.4.42 and 5.26.5 are the previous LTS (long term support) versions as of April 2025. +NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} +NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j.conf"} # Awesome Procedures (APOC) Plugin for Neo4j -NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"5.26.5"} # Version number matches Neo4j version since 5.x -NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} # Since Neo4j v5 the core edition is updated with Neo4j -NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} # Core edition was moved to "neo4j/apoc" for Neo4j v5 +NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"5.26.5"} +NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} +NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} -NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.15.0"} # Version 2.4.0 is the newest version of june 2023 and compatible with Neo4j v5 -NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.13.4"} # Open package variant of the graph-data-science plugin for Neo4j (https://github.com/JohT/open-graph-data-science-packaging). Since version 2.4. compatible with Neo4j 5.x. -NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} # Graph Data Science Plugin Edition: "open" for OpenGDS, "full" for the full version with Neo4j license +NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.15.0"} +NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.13.4"} +NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} -JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} # Version number of the jQAssistant command line interface. Version 1.12.2 is compatible with Neo4j v4 +JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv5"} -JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv5-jqassistant-continue-on-error.yaml"} # Name of the template file for the jqassistant configuration \ No newline at end of file +JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4j-latest-jqassistant-continue-on-error.yaml"} \ No newline at end of file diff --git a/scripts/profiles/Neo4jv5-low-memory.sh b/scripts/profiles/Neo4jv5-low-memory.sh index 39ca1cec6..4146bbb70 100755 --- a/scripts/profiles/Neo4jv5-low-memory.sh +++ b/scripts/profiles/Neo4jv5-low-memory.sh @@ -3,25 +3,19 @@ # Sets all settings variables for an analysis with Neo4j v5.x (newest version as of june 2023). # The chosen settings are tested to be compatible and working. -NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} # Version 5.9.0 is the current version of june 2023 -NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} # Since Neo4j v5 it is "db//tx/commit" -NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j-low-memory.conf"} # Name of the template file ("configuration" folder) for the Neo4j configuration - -# Overrideable settings variables for ports (optional, defaults also defined in sub scripts where needed) -# Override them if you need to run multiple neo4j database servers in parallel. -NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"} # Neo4j HTTP API port for executing queries -NEO4J_HTTPS_PORT=${NEO4J_HTTPS_PORT:-"7473"} # Neo4j HTTPS port for encrypted querying -NEO4J_BOLT_PORT=${NEO4J_BOLT_PORT:-"7687"} # Neo4j's own "Bolt Protocol" port +NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} # Neo4j Graph Database Version. Current versions: >= 2025.03.0. Version 4.4.42 and 5.26.5 are the previous LTS (long term support) versions as of April 2025. +NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} +NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j-low-memory.conf"} # Awesome Procedures (APOC) Plugin for Neo4j -NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"5.26.5"} # Version number matches Neo4j version since 5.x -NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} # Since Neo4j v5 the core edition is updated with Neo4j -NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} # Core edition was moved to "neo4j/apoc" for Neo4j v5 +NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"5.26.5"} +NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} +NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} -NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.15.0"} # Version 2.4.0 is the newest version of june 2023 and compatible with Neo4j v5 -NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.13.4"} # Open package variant of the graph-data-science plugin for Neo4j (https://github.com/JohT/open-graph-data-science-packaging). Since version 2.4. compatible with Neo4j 5.x. -NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} # Graph Data Science Plugin Edition: "open" for OpenGDS, "full" for the full version with Neo4j license +NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.15.0"} +NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.13.4"} +NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} -JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} # Version number of the jQAssistant command line interface. Version 1.12.2 is compatible with Neo4j v4 +JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv5"} -JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv5-jqassistant.yaml"} # Name of the template file for the jqassistant configuration \ No newline at end of file +JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv5-jqassistant.yaml"} \ No newline at end of file diff --git a/scripts/profiles/Neo4jv5.sh b/scripts/profiles/Neo4jv5.sh index 1de7daf81..fab729d07 100755 --- a/scripts/profiles/Neo4jv5.sh +++ b/scripts/profiles/Neo4jv5.sh @@ -3,25 +3,19 @@ # Sets all settings variables for an analysis with Neo4j v5.x (newest version as of june 2023). # The chosen settings are tested to be compatible and working. -NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} # Version 5.9.0 is the current version of june 2023 -NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} # Since Neo4j v5 it is "db//tx/commit" -NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j.conf"} # Name of the template file ("configuration" folder) for the Neo4j configuration - -# Overrideable settings variables for ports (optional, defaults also defined in sub scripts where needed) -# Override them if you need to run multiple neo4j database servers in parallel. -NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"} # Neo4j HTTP API port for executing queries -NEO4J_HTTPS_PORT=${NEO4J_HTTPS_PORT:-"7473"} # Neo4j HTTPS port for encrypted querying -NEO4J_BOLT_PORT=${NEO4J_BOLT_PORT:-"7687"} # Neo4j's own "Bolt Protocol" port +NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} # Neo4j Graph Database Version. Current versions: >= 2025.03.0. Version 4.4.42 and 5.26.5 are the previous LTS (long term support) versions as of April 2025. +NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/neo4j/tx/commit"} +NEO4J_CONFIG_TEMPLATE=${NEO4J_CONFIG_TEMPLATE:-"template-neo4j.conf"} # Awesome Procedures (APOC) Plugin for Neo4j -NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"5.26.5"} # Version number matches Neo4j version since 5.x -NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} # Since Neo4j v5 the core edition is updated with Neo4j -NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} # Core edition was moved to "neo4j/apoc" for Neo4j v5 +NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"5.26.5"} +NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} +NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} -NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.15.0"} # Version 2.4.0 is the newest version of june 2023 and compatible with Neo4j v5 -NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.13.4"} # Open package variant of the graph-data-science plugin for Neo4j (https://github.com/JohT/open-graph-data-science-packaging). Since version 2.4. compatible with Neo4j 5.x. -NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} # Graph Data Science Plugin Edition: "open" for OpenGDS, "full" for the full version with Neo4j license +NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.15.0"} +NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.13.4"} +NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} -JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} # Version number of the jQAssistant command line interface. Version 1.12.2 is compatible with Neo4j v4 +JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv5"} -JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv5-jqassistant.yaml"} # Name of the template file for the jqassistant configuration \ No newline at end of file +JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv5-jqassistant.yaml"} \ No newline at end of file diff --git a/scripts/resetAndScan.sh b/scripts/resetAndScan.sh index 5aaf56b32..8ec7bddf1 100755 --- a/scripts/resetAndScan.sh +++ b/scripts/resetAndScan.sh @@ -15,7 +15,7 @@ set -o errexit -o pipefail JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"2.7.0-RC1"} # Version number of the jQAssistant command line interface. Version 1.12.2 is compatible with Neo4j v4 JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv5"} # Name of the jQAssistant Maven artifact -JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4jv5-jqassistant.yaml"} # Neo4j v5: "template-neo4jv5-jqassistant.yaml", Neo4j v4: "template-neo4jv4-jqassistant.yaml" +JQASSISTANT_CONFIG_TEMPLATE=${JQASSISTANT_CONFIG_TEMPLATE:-"template-neo4j-remote-jqassistant.yaml"} # Name of the template file for the jqassistant configuration. Neo4j >= 2025.x: "template-neo4j-remote-jqassistant.yaml", Neo4j v5: "template-neo4jv5-jqassistant.yaml", Neo4j v4: "template-neo4jv4-jqassistant.yaml" NEO4J_INITIAL_PASSWORD=${NEO4J_INITIAL_PASSWORD:-""} # Neo4j login password that was set to replace the temporary initial password ARTIFACTS_DIRECTORY=${ARTIFACTS_DIRECTORY:-"artifacts"} # Directory with the Java artifacts to scan and analyze diff --git a/scripts/setupNeo4j.sh b/scripts/setupNeo4j.sh index 67a9c8ae0..705146a09 100755 --- a/scripts/setupNeo4j.sh +++ b/scripts/setupNeo4j.sh @@ -10,13 +10,16 @@ set -o errexit -o pipefail NEO4J_EDITION=${NEO4J_EDITION:-"community"} # Choose "community" or "enterprise" -NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} -NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"5.26.5"} #Awesome Procedures for Neo4j Plugin, Version needs to be compatible to Neo4j -NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} #Awesome Procedures for Neo4j Plugin Edition (Neo4j v4.4.x "all", Neo4j >= v5 "core") -NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} #Awesome Procedures for Neo4j Plugin GitHub User/Repository (Neo4j v4.4.x "neo4j-contrib/neo4j-apoc-procedures", Neo4j >= v5 "neo4j/apoc") -NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.15.0"} # Graph Data Science Plugin Version 2.4.x of is compatible with Neo4j 5.x -NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.13.4"} # Graph Data Science Plugin Version 2.4.x of is compatible with Neo4j 5.x -NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} # Graph Data Science Plugin Edition: "open" for OpenGDS, "full" for the full version with Neo4j license +NEO4J_VERSION=${NEO4J_VERSION:-"2025.03.0"} + +NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"2025.03.0"} # Awesome Procedures On Cypher (APOC) Plugin version number. Version needs to be compatible to Neo4j and usually matches its version number. +NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"core"} # Awesome Procedures On Cypher (APOC) for Neo4j Plugin Edition (Neo4j v4.4.x "all", Neo4j >= v5 "core") +NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j/apoc"} # Awesome Procedures On Cypher (APOC) for Neo4j Plugin GitHub User/Repository (Neo4j v4.4.x "neo4j-contrib/neo4j-apoc-procedures", Neo4j >= v5 "neo4j/apoc") + +NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.16.0"} # Graph Data Science (GDS) Plugin Version 2.4.x of is compatible with Neo4j 5.x +NEO4J_OPEN_GDS_PLUGIN_VERSION=${NEO4J_OPEN_GDS_PLUGIN_VERSION:-"2.16.0"} # Graph Data Science (GDS) Plugin Version 2.4.x of is compatible with Neo4j 5.x +NEO4J_GDS_PLUGIN_EDITION=${NEO4J_GDS_PLUGIN_EDITION:-"open"} # Graph Data Science (GDS) Plugin Edition: "open" for OpenGDS, "full" for the full version with Neo4j license + DATA_DIRECTORY=${DATA_DIRECTORY:-"$( pwd -P )/data"} # Path where Neo4j writes its data to (outside tools dir) RUNTIME_DIRECTORY=${RUNTIME_DIRECTORY:-"$( pwd -P )/runtime"} # Path where Neo4j puts runtime data to (e.g. logs) (outside tools dir) TOOLS_DIRECTORY=${TOOLS_DIRECTORY:-"tools"} # Get the tools directory (defaults to "tools") @@ -127,7 +130,7 @@ if [ ! -d "${NEO4J_INSTALLATION_DIRECTORY}" ] ; then echo "setupNeo4j: Neo4j v5 or higher detected" { echo "" - echo "# Paths of data directories in the installation (v5)" + echo "# Paths of data directories in the installation (> v5)" echo "server.directories.data=${neo4jDataPath}" echo "server.directories.logs=${neo4jLogsPath}" echo "server.directories.dumps.root=${neo4jDumpsPath}" @@ -135,7 +138,7 @@ if [ ! -d "${NEO4J_INSTALLATION_DIRECTORY}" ] ; then echo "server.directories.transaction.logs.root=${neo4jTransactionsPath}" echo "server.directories.import=${neo4jImportPath}" echo "" - echo "# Ports Configuration (v5)" + echo "# Ports Configuration (> v5)" echo "server.bolt.listen_address=:${NEO4J_BOLT_PORT}" echo "server.bolt.advertised_address=:${NEO4J_BOLT_PORT}" echo "server.http.listen_address=:${NEO4J_HTTP_PORT}" diff --git a/scripts/setupNeo4jInitialPassword.sh b/scripts/setupNeo4jInitialPassword.sh index 4016b5fe4..2706ad2ed 100755 --- a/scripts/setupNeo4jInitialPassword.sh +++ b/scripts/setupNeo4jInitialPassword.sh @@ -8,7 +8,7 @@ set -o errexit -o pipefail NEO4J_EDITION=${NEO4J_EDITION:-"community"} # Choose "community" or "enterprise" -NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} +NEO4J_VERSION=${NEO4J_VERSION:-"2025.03.0"} TOOLS_DIRECTORY=${TOOLS_DIRECTORY:-"tools"} # Get the tools directory (defaults to "tools") # Internal constants diff --git a/scripts/startNeo4j.sh b/scripts/startNeo4j.sh index 7e21cda16..94b7e78a6 100755 --- a/scripts/startNeo4j.sh +++ b/scripts/startNeo4j.sh @@ -12,9 +12,9 @@ set -o errexit -o pipefail # Overrideable Defaults NEO4J_EDITION=${NEO4J_EDITION:-"community"} # Choose "community" or "enterprise" -NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} +NEO4J_VERSION=${NEO4J_VERSION:-"2025.03.0"} TOOLS_DIRECTORY=${TOOLS_DIRECTORY:-"tools"} # Get the tools directory (defaults to "tools") -NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"} # Neo4j's own "Bolt Protocol" port +NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"} ## Get this "scripts" directory if not already set # Even if $BASH_SOURCE is made for Bourne-like shells it is also supported by others and therefore here the preferred solution. diff --git a/scripts/stopNeo4j.sh b/scripts/stopNeo4j.sh index 3d5651a7b..f775fdbe4 100755 --- a/scripts/stopNeo4j.sh +++ b/scripts/stopNeo4j.sh @@ -11,7 +11,7 @@ set -o errexit -o pipefail # Overrideable Defaults NEO4J_EDITION=${NEO4J_EDITION:-"community"} # Choose "community" or "enterprise" -NEO4J_VERSION=${NEO4J_VERSION:-"5.26.5"} +NEO4J_VERSION=${NEO4J_VERSION:-"2025.03.0"} TOOLS_DIRECTORY=${TOOLS_DIRECTORY:-"tools"} # Get the tools directory (defaults to "tools") NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"}