Releases: neo4j/cypher-dsl
2023.0.1
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
withrequires static
.
2023.0.0
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
andwith
. (#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 insideSET
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
2022.8.2
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
2022.8.1
🔄️ Refactorings
- Apply learnings from full JDK 17 migrations.
- Prevent usage of
REMOVE
item insideSET
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
🚀 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
🚀 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
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
🛠 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
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
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
andincludesAny
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: