Skip to content

Releases: neo4j/cypher-dsl

2023.0.1

19 Jan 17:22
041bc7c
Compare
Choose a tag to compare

This patch releases adds a build-in length function for paths (thanks @Lukasmp3 for the request) and fixes issues when running Cypher-DSL on the module path (see c7747ca on main for more information).

🚀 Features

  • Add length() function. (#569)

🔄️ Refactorings

  • Replace requires static transitive with requires static.

2023.0.0

10 Jan 09:58
bc532c7
Compare
Choose a tag to compare

Welcome to 2023, welcome Java 17, welcome Neo4j 5 clauses. This is the first release of the Cypher-DSL requiring Java 17. This is in line with Neo4j itself, Spring Data Neo4j 7 and several other frameworks out there. This allows for more concise code (which is nice for us) as well as using the Neo4j 5 parser in neo4j-cypher-dsl-parser module. Bumping the JDK warrants a major upgrade already.

Apart from that we have been very reluctant on breaking changes. As a matter of fact, close to none has been necessary. One of the few improvements that might need changes on your side is #551 (Commit 10080df) in which we improved the WITH clause: You might see ambiguous method errors and the fix can be seen here for example: Either use JDK 17 reserved name var for local variable type-inference or use explicit IdentifiableElement.

There's a lot of new stuff as well: You can now use Expressions.count to build new Neo4j 5 COUNT expressions and we do support the USE clause for composite database queries as well.

Please fear not if you are still on JDK 8: We will maintain the 2022.8.x branch at least as long as Spring Data Neo4j 6.3 is maintained, as the latter is build on top of the Cypher-DSL and is JDK 8, too.

Thanks a lot to our friend @ikwattro from @graphaware for his continuous and well appreciated feedback and input to this project.

🚀 Features

  • Add support for the COUNT {} sub-query expressions. (#546)
  • Pretty print USE clause proper. (#543, thanks to @ikwattro for contributing this)
  • Add support for the USE clause in the DSL. (#542)

🐛 Bug Fixes

  • Allow match after unwind as defined by OpenCypher. (#531)

🔄️ Refactorings

  • Improve returning and with. (#551)
  • Allow yield * for standalone calls with arguments, too. (#545, thanks to @zakjan taking the time and report this)
  • Upgrade the parser module to use the new Neo4j 5 parser. (#503)
  • Migrate the project to Java 17. (#518)
  • Prevent usage of REMOVE item inside SET clause (during RT). (#506)

📖 Documentation

  • Update changelog.
  • Add section about dialect support.
  • Make clear that pretty printing does not always escape names.
  • Document correct Java version in README.adoc.

🧰 Tasks

  • Extend license header to 2023.

🧹 Housekeeping

  • Dependency upgrades:
    • Bump assertj-core from 3.23.1 to 3.24.1 (#549)
    • Bump checker-qual from 3.28.0 to 3.29.0 (#548)
    • Bump neo4j-java-driver from 5.3.0 to 5.3.1 (#535)
    • Bump spring-boot-starter-parent from 3.0.0 to 3.0.1 (#534)
    • Bump checkstyle from 10.5.0 to 10.6.0 (#537)
    • Bump mockito.version from 4.10.0 to 4.11.0 (#536)
    • Bump neo4j-cypher-javacc-parser from 5.2.0 to 5.3.0 (#529)
    • Bump annotations from 23.0.0 to 23.1.0 (#521)
    • Bump compile-testing from 0.20 to 0.21.0 (#526)
    • Bump reactor-bom from 2022.0.0 to 2022.0.1 (#527)
    • Bump mockito.version from 4.9.0 to 4.10.0 (#528)
    • Bump spring-boot-starter-parent from 2.7.5 to 3.0.0 (#509)
    • Bump neo4j-java-driver from 4.4.9 to 5.3.0 (#508)
    • Bump checker-qual from 3.27.0 to 3.28.0 (#517)
    • Bump compile-testing from 0.19 to 0.20 (#516)
    • Bump native-maven-plugin from 0.9.18 to 0.9.19 (#515)
    • Bump joda-time from 2.12.1 to 2.12.2 (#514)
    • Bump jackson-bom from 2.14.0 to 2.14.1 (#513)
    • Bump archunit from 1.0.0 to 1.0.1 (#512)
    • Bump native-maven-plugin from 0.9.17 to 0.9.18 (#511)
    • Bump checkstyle from 10.4 to 10.5.0 (#510)

🛠 Build

  • Add more tests for GH-547.
  • Define JaCoCo config in plugin-management. (#541)
  • Add license-maven-plugin for checking Apache 2 compatible license and header formatting.
  • Fix quality gate.
  • Verify examples on Java LTS and next version.
  • Fix docs build.
  • Upgrade various actions to non-deprecated versions. (#519)

2022.8.3

10 Jan 08:56
e662367
Compare
Choose a tag to compare

🔄️ Refactorings

  • Allow yield * for standalone calls with arguments, too. (#545, thanks to @zakjan taking the time and report this)

🧹 Housekeeping

  • Extend license header to 2023.
  • Dependency upgrades:
    • Bump assertj-core from 3.23.1 to 3.24.1 (#549)
    • Bump checker-qual from 3.28.0 to 3.29.0 (#548)
    • Bump checkstyle from 10.5.0 to 10.6.0 (#537)
    • Bump mockito.version from 4.10.0 to 4.11.0 (#536)

2022.8.2

19 Dec 12:46
e93c282
Compare
Choose a tag to compare

Thanks to @ikwattro from @graphaware for investing his time and creating valuable tickets for this release.

🐛 Bug Fixes

  • Allow match after unwind as defined by OpenCypher. (#531)

📝 Documentation

  • Make clear that pretty printing does not always escape names

🛠 Build

  • Upgrade various actions to non-deprecated versions. (#519)

🧹 Housekeeping

  • Dependency upgrades:
    • Bump annotations from 23.0.0 to 23.1.0 (#521)
    • Bump compile-testing from 0.20 to 0.21.0 (#526)
    • Bump reactor-bom from 2022.0.0 to 2022.0.1 (#527)
    • Bump mockito.version from 4.9.0 to 4.10.0 (#528)

2022.8.1

08 Dec 12:38
92ce1b6
Compare
Choose a tag to compare

🔄️ Refactorings

  • Apply learnings from full JDK 17 migrations.
  • Prevent usage of REMOVE item inside SET clause (during RT). (#506)

🧹 Housekeeping

  • Dependency upgrades:
    • Bump checker-qual from 3.27.0 to 3.28.0 (#517)
    • Bump compile-testing from 0.19 to 0.20 (#516)
    • Bump native-maven-plugin from 0.9.18 to 0.9.19 (#515)
    • Bump joda-time from 2.12.1 to 2.12.2 (#514)
    • Bump jackson-bom from 2.14.0 to 2.14.1 (#513)
    • Bump archunit from 1.0.0 to 1.0.1 (#512)
    • Bump native-maven-plugin from 0.9.17 to 0.9.18 (#511)
    • Bump checkstyle from 10.4 to 10.5.0 (#510)

2022.8.0

21 Nov 10:08
adf9340
Compare
Choose a tag to compare

🚀 Features

  • Add yield * for standalone calls. (#497)

📝 Documentation

  • Add missing value to sanitize JavaDoc. (#496)

🧹 Housekeeping

  • Dependency upgrades:
    • Bump testcontainers.version from 1.17.5 to 1.17.6 (#502)
    • Bump maven-install-plugin from 3.0.1 to 3.1.0 (#501)
    • Bump japicmp-maven-plugin from 0.16.0 to 0.17.1 (#499)
    • Bump mockito.version from 4.8.1 to 4.9.0 (#498)
    • Bump jackson-bom from 2.13.4.20221013 to 2.14.0 (#492)
    • Bump checker-qual from 3.26.0 to 3.27.0 (#493)
    • Bump reactor-bom from 2020.0.24 to 2022.0.0 (#495)
    • Bump native-maven-plugin from 0.9.16 to 0.9.17 (#491)
    • Bump maven-shade-plugin from 3.4.0 to 3.4.1 (#487)
    • Bump checkstyle from 10.3.4 to 10.4 (#488)
    • Bump joda-time from 2.12.0 to 2.12.1 (#486)
    • Bump spring-boot-starter-parent from 2.7.4 to 2.7.5 (#485)
    • Bump asciidoctorj from 2.5.6 to 2.5.7 (#483)
    • Bump native-maven-plugin from 0.9.14 to 0.9.16 (#482)
    • Bump mockito.version from 4.8.0 to 4.8.1 (#481)

Thanks to @zakjan and @robsdedude for their input!

2022.7.3

17 Oct 09:00
b6ab090
Compare
Choose a tag to compare

🚀 Features

  • Add point.withinBBox and convenience methods for cartesian points and coordinates. (#475)

🔄️ Refactorings

  • Remove superfluous field.

🛠 Build

  • Replace jQAssistant with easier to maintain Archunit test. (#466)

🧹 Housekeeping

  • Dependency upgrades:
    • Bump jackson-bom from 2.13.4 to 2.13.4.20221013 (#479)
    • Bump neo4j-cypher-javacc-parser from 4.4.11 to 4.4.12 (#478)
    • Bump reactor-bom from 2020.0.23 to 2020.0.24 (#477)
    • Bump joda-time from 2.11.2 to 2.12.0 (#476)
    • Bump archunit from 0.23.1 to 1.0.0 (#471)
    • Bump neo4j-java-driver from 4.4.6 to 4.4.9 (#474)
    • Bump testcontainers.version from 1.17.3 to 1.17.5 (#470)
    • Bump checker-qual from 3.25.0 to 3.26.0 (#472)
    • Bump asm from 9.3 to 9.4 (#468)
    • Bump joda-time from 2.11.1 to 2.11.2 (#465)
    • Bump spring-boot-starter-parent from 2.7.3 to 2.7.4 (#464)
    • Bump junit-bom from 5.9.0 to 5.9.1 (#463)
    • Bump asciidoctorj from 2.5.5 to 2.5.6 (#462)
    • Bump checkstyle from 10.3.3 to 10.3.4 (#461)
    • Bump native-maven-plugin from 0.9.13 to 0.9.14 (#460)
    • Bump spring-data-neo4j from 6.3.2 to 6.3.3 (#459)
    • Bump jqassistant.plugin.git from 1.8.0 to 1.9.0 (#458)
    • Bump maven-jar-plugin from 3.2.2 to 3.3.0 (#457)
    • Bump reactor-bom from 2020.0.22 to 2020.0.23 (#456)
    • Bump maven-shade-plugin from 3.3.0 to 3.4.0 (#455)
    • Bump maven-pmd-plugin from 3.18.0 to 3.19.0 (#454)
    • Bump neo4j-cypher-javacc-parser from 4.4.10 to 4.4.11 (#452)
    • Bump mockito.version from 4.7.0 to 4.8.0 (#451)

2022.7.2

08 Sep 18:53
14fed35
Compare
Choose a tag to compare

No breaking changes. This adds a new module - neo4j-cypher-dsl-schema-name-support - that contains only one class, dedicated to sanitise and quote names that are meant to be used as labels and types. We are using it internally for all our quoting needs and if you have the need in your application to create dynamic queries that deal with the modification of labels and types, you might want to have a look at that module. It is dependency free and safe to shade. The background to do label and type manipulation is this: Cypher does not support them as parameters, you need to concatenate your query for this. In all other cases, please use proper parameter, but especially for string values.

Thanks to @AzuObs @AlexNeo4J and @robsdedude for their feedback on this work and also to @harshitp-fens for their inspiration of the ON_DELETE_ITEM parser callback.

🚀 Features

  • Provide ON_DELETE_ITEM event type. (#449)
  • Introduce standalone schema-name support module. (#445)

🛠 Build

  • Fix the build on a restricted TeamCity instance. (#450)

🧹 Housekeeping

  • Dependency upgrades:
    • Bump checker-qual from 3.24.0 to 3.25.0 (#448)
    • Bump japicmp-maven-plugin from 0.15.7 to 0.16.0 (#447)
    • Bump jackson-bom from 2.13.3 to 2.13.4 (#446)
    • Bump checkstyle from 10.3.2 to 10.3.3 (#444)
    • Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 (#443)
    • Bump maven-pmd-plugin from 3.17.0 to 3.18.0 (#442)
    • Bump joda-time from 2.11.0 to 2.11.1 (#441)

2022.7.1

22 Aug 09:23
577e047
Compare
Choose a tag to compare

No breaking changes. This is an important bug-fix release and a safe drop-in replacement for 2022.7.0 and all 2022.6 releases. If you can life with some deprecation warnings, it can be used as a drop-in for the 2022.5 and 2022.4 series, too.

🐛 Bug Fixes

  • Escape escaped Unicode 0060 (backtick) proper. (#436)

🔄️ Refactorings

  • Don't double escape already escaped backticks.

🧹 Housekeeping

  • Dependency upgrades:
    • Bump mockito.version from 4.6.1 to 4.7.0 (#434):
    • Bump reactor-bom from 2020.0.21 to 2020.0.22 (#433):
    • Bump joda-time from 2.10.14 to 2.11.0 (#432):
    • Bump neo4j-cypher-javacc-parser from 4.4.9 to 4.4.10 (#431):
    • Bump maven-javadoc-plugin from 3.4.0 to 3.4.1 (#430):
    • Bump spring-boot-starter-parent from 2.7.2 to 2.7.3 (#439)
    • Bump flatten-maven-plugin from 1.2.7 to 1.3.0 (#437):

2022.7.0

08 Aug 09:02
024a6d6
Compare
Choose a tag to compare

No breaking changes, the minor version has been bumped due to new default methods of internal interfaces.
This release is - again - a safe drop-in replacement for the prior (2022.6.1) one.

Thanks to @AakashSorathiya and @nmervaillie for their input on this release.

🚀 Features

  • Add support for includesAll and includesAny operations on expressions for list properties
  • Support org.neo4j.cypher.internal.ast.factory.ASTExpressionFactory#ands

🔄️ Refactorings

  • Add cause to unsupported to UnsupportedCypherException.

🛠 Build

  • Use current JBang action to verify on JDK 8. (#421)

🧹 Housekeeping

  • Dependency upgrades:
    • Bump maven-site-plugin from 3.12.0 to 3.12.1 (#428)
    • Bump checker-qual from 3.23.0 to 3.24.0 (#429)
    • Bump checkstyle from 10.3.1 to 10.3.2 (#425)
    • Bump junit-bom from 5.8.2 to 5.9.0 (#424)
    • Bump maven-resources-plugin from 3.2.0 to 3.3.0 (#423)
    • Bump asciidoctorj from 2.5.4 to 2.5.5 (#422)