Skip to content

Releases: neo4j/cypher-dsl

2021.3.4

16 Nov 09:50
437da9a
Compare
Choose a tag to compare

2021.3.4 is a pure bug fix release.

🐛 Bug Fixes

  • GH-252 - Use a namespace for the message bundle.

2021.4.1

11 Nov 11:02
63d13dd
Compare
Choose a tag to compare

🚀 Features

GH-230 - Add a way for a programmatic sort definition on expressions.

🧹 Housekeeping

  • Tons of dependency upgrades in test scope
  • Upgrade to Neo4j-Java-Driver 4.4.1. (a provided dependency)
  • The parser module now uses the Neo4j 4.3.6 parser

2021.4.0

27 Oct 10:46
a90cfdb
Compare
Choose a tag to compare

2021.4.0 updates the optional dependency to Querydsl to 5.0.0. While this is API
not a breaking change, it can be when the Cypher-DSL is run together with Querydsl on the Java Module path. Querydsl
maintainer finally introduced automatic module names for all their module on which we can no reliable depend. As that
module name is however different from the generated one, it will be a breaking change on the module path. Therefore
we bump our version, too.

🧹 Housekeeping

  • Upgrade Querydsl to 5.0.0

2021.3.3

27 Oct 10:22
5aa01fc
Compare
Choose a tag to compare

2021.3.3 is a pure housekeeping release, however a release we are proud of. We do analyze this project now with SonarQube
vie Sonarcloud and are happy to announce that we have a quadruple A rating:

SonarCloud on 2021/10/27

In addition, we finally invited Dependabot taking care of at least creating the PRs.

🧹 Housekeeping

  • Fix reliability and security issues
  • Fix a minor amounts of remaining code smells
  • Bump several dependencies (only test and build related)

2021.2.4

28 Sep 09:07
c0809fc
Compare
Choose a tag to compare

2021.2.4 is a pure bug fix release.

🐛 Bug Fixes

  • GH-203 - Introduce a scope for the PatternComprehension.

2021.3.2

24 Sep 15:10
0b7cce8
Compare
Choose a tag to compare

🚀 Features

🧹 Housekeeping

  • Fix several (compile) warnings
  • Fix several spelling errors in api docs
  • Upgrade Spring Data Neo4j to 6.1.5 (In module org.neo4j.cypherdsl.codegen.sdn6)
  • Upgrade Neo4j Cypher Parser to 4.3.4 (In module neo4j-cypher-dsl-parser).
  • Verify examples on JDK 17

2021.3.1

29 Jul 09:35
b0345b7
Compare
Choose a tag to compare

2021.3.1 is a pure bug fix release. API Guardian cannot be an optional dependency, otherwise compiling programs with -Werror
will fail, as the @API-annotation has runtime and not class retention.

🐛 Bug Fixes

  • GH-203 - Introduce a scope for the PatternComprehension.
  • Revert "GH-202 - Make API Guardian an optional / provided dependency."
  • Support empty BooleanBuilder in QueryDSL adapter.

2021.3.0

08 Jul 13:35
c840b8f
Compare
Choose a tag to compare

2021.3 builds straight upon 2021.2.3, with few additions to the existing API, that didn’t quite fit with a patch release, but belong conceptually into this release, which brings a completely new module: The neo4j-cypher-dsl-parser.

🚀 New module: The Cypher-DSL-Parser

What’s behind that name? A Cypher-Parser build on the official Neo4j 4.3 parser frontend and creating a Cypher-DSL-AST or single expressions usable in the context of the Cypher-DSL.

The module lives under the following coordinates org.neo4j:neo4j-cypher-dsl-parser and requires JDK 11+ (the same version like Neo4j does). We created a couple of examples, but we are sure you will have tons of more ideas and therefore a looking for your feedback, regardless if we missed out something in the API, bugs or just remarks.

Here’s a sneak preview. It shows you can add a user supplied Cypher fragment to something you are building using the DSL.

var userProvidedCypher
    = "MATCH (this)-[:LINK]-(o:Other) RETURN o as result";
var userStatement = CypherParser.parse(userProvidedCypher);

var node = Cypher.node("Node").named("node");
var result = Cypher.name("result");
var cypher = Cypher
    .match(node)
    .call(
        userStatement,
        node.as("this")
    )
    .returning(result.project("foo", "bar"))
    .build()
    .getCypher();

For this release a big thank you goes out to the Cypher-operations team at Neo4j, listening to our requests and ideas!

2021.2.3

05 Jul 12:13
2ab3ff2
Compare
Choose a tag to compare

2021.2.3 is a rather big release as it contains many small improvements and API functionality required by our next major
release. Those are brought in now so that they can be benefial to others without bumping a major version.

🚀 Features

  • GH-195 - Add collection parameter support for ExposesReturning.
  • Introduce a ExposesPatternLengthAccessors for uniform access to relationships and chains thereof. [improvement]
  • Allow creating instances of FunctionInvocation directly. [improvement]
  • Provide factory methods of MapProjection and KeyValueMapEntry as public API.
  • Provide set and remove labels operation as public API.
  • Provide set and mutate of expressions as public API.
  • Provide factory methods of Hints as public API.
  • GH-200 - Provide an API to define named paths based on a Node pattern.
  • Provide an option to escape names only when necessary. [improvement]

📖 Documentation

  • Add documentation for escaping names.
  • GH-198 - Fix spelling errors in JavaDoc and documentation.

🐛 Bug Fixes

  • Make Case an interface and let it extend Expression. [bug]
  • GH-197 - Fix eagerly resolved symbolic names in negated pattern conditions.
  • GH-197 - Clear name cache after leaving a statement.
  • GH-199 - Bring back with(Named… vars).

🧹 Housekeeping

  • Don't use fixed driver versions in doc.
  • Pass builder as constructor argument.
  • Improve Return and With internals.
  • Update Driver, SDN integration and Spring Boot example dependencies.
  • GH-202 - Make API Guardian an optional / provided dependency.

Thanks to @meistermeier and @aldrinm for their contributions.

2021.2.2

11 Jun 10:27
12ce628
Compare
Choose a tag to compare

🚀 Features

  • Allow all expressions to be used as conditions. [improvement]
  • Add support for unary minus and plus operations. [new-feature]
  • Add support for generatic dynamic distinct aggregating function calls. [new-feature]
  • GH-190 - Introduce a union type for named things and aliased expressions.
  • Provide means to pass additional types to the relationship base class. [new-feature]
  • GH-193 - Allow MATCH after YIELD.
  • GH-189 - Provide an alternate api for methods consuming collections via vargs.

📖 Documentation

  • Improve inheritance example. [static-model, codegen]

🐛 Bug Fixes

  • Fix parameter collector when running as GraalVM native image
  • GH-192 - Don't introduce new symbolic names in conditional pattern expressions.

🧹 Housekeeping

  • GH-178 - Upgrade SDN 6 examples to Spring Boot 2.5 final.

Thanks to @meistermeier for the contribution of the API improvements in regard to collections.