Skip to content

Releases: michael-simons/neo4j-migrations

1.12.0

21 Sep 10:48
d32cc30
Compare
Choose a tag to compare

What's Changed

There has been no breaking changes in this release, but we have added some methods and moved things around that haven't been public before to improve your life in case you should use this library on the module path.

🚀 Features

  • ad76526 Log connection details during Spring and Quarkus startup. (#655)
  • f6f6ef9 Try to detect invalid use of enterprise constraints against community edition. (#654)

🐛 Bug Fixes

  • 08ec086 Add braces to single property node key constraints statements for elder versions. (#653)
  • 7a949bd Add several missing JMS requirements and necessities to public API. (#646)

📝 Documentation

🧹 Housekeeping

  • a8e0586 Bump maven-jar-plugin from 3.2.2 to 3.3.0 (#651)
  • 637815a Bump maven-shade-plugin from 3.3.0 to 3.4.0 (#652)
  • 8758ae4 Bump quarkus.version from 2.12.1.Final to 2.12.2.Final (#650)

1.11.0

12 Sep 10:59
adbcac0
Compare
Choose a tag to compare

What's Changed

This release contains the second Java annotation processor I wrote and I am very excited about it: You can point this tool from within Javac to entities annotated with Neo4j-OGM OR Spring Data Neo4j 6 annotations and it will produce catalog files containing the indexes and constraints that can be derived by the annotated classes.

All indexes and constraints of the Neo4j-OGM auto index manager and all SDN6 annotations are supported. The annotation processor does not ship the dependencies itself, so one possible invocation looks like this:

javac -proc:only \
-processorpath neo4j-migrations-1.11.0.jar:neo4j-migrations-annotation-processor-api-1.11.0.jar:neo4j-migrations-annotation-processor-1.11.0.jar \
-Aorg.neo4j.migrations.catalog_generator.output_dir=output \
-Aorg.neo4j.migrations.catalog_generator.default_catalog_name=V01__Create_OGM_schema.xml \
-cp neo4j-ogm-core-3.2.37.jar \
path/to/annotated/entities/*

Please have a look at "Annotation processing" in the manual how to run this for SDN6 and possible ways to integrate it into your build.

One possible output - outlining just some of the constraints - will look like this

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<migration xmlns="https://michael-simons.github.io/neo4j-migrations">
  <!-- This file was generated by Neo4j-Migrations at 2022-09-21T21:21:00+01:00. -->
  <catalog>
    <indexes>
      <index name="my_entities_ogm_singleindexentity_login_property" type="property">
        <label>Entity</label>
        <properties>
          <property>login</property>
        </properties>
      </index>
      <index name="my_entities_ogm_relpropertyindextentity_description_property" type="property">
        <type>RELPROPERTYINDEXTENTITY</type>
        <properties>
          <property>description</property>
        </properties>
      </index>
      <index name="my_entities_ogm_compositeindexentity_name_age_property" type="property">
        <label>EntityWithCompositeIndex</label>
        <properties>
          <property>name</property>
          <property>age</property>
        </properties>
      </index>
    </indexes>
    <constraints>
      <constraint name="my_entities_ogm_entitywithassignedid_id_unique" type="unique">
        <label>EntityWithAssignedId</label>
        <properties>
          <property>id</property>
        </properties>
      </constraint>
      <constraint name="my_entities_ogm_nodepropertyexistenceconstraintentity_login_exists" type="exists">
        <label>Entity</label>
        <properties>
          <property>login</property>
        </properties>
      </constraint>
      <constraint name="my_entities_ogm_relpropertyexistenceconstraintentity_description_exists" type="exists">
        <type>REL</type>
        <properties>
          <property>description</property>
        </properties>
      </constraint>
      <constraint name="my_entities_ogm_nodekeyconstraintentity_name_age_key" type="key">
        <label>Entity</label>
        <properties>
          <property>name</property>
          <property>age</property>
        </properties>
      </constraint>
    </constraints>
  </catalog>
  <apply/>
</migration>

This catalog can than be added to your CI/CD or application setup as described in the manual. We do not recommend regenerating it every time in the build as that will break the chain of migrations once you change entities. This might be seen as an inconvenience but we are convinced that a half-automated process here is better than the auto index manager of old that might surprises you with it's upgrade mechanism.

This also the first release that that will ship with Linux ARM64 ootb.

While we did bump the minor version, there are no breaking changes.

🚀 Features

  • 771124c Add annotation processor for Neo4j-OGM and SDN6 entities. (#618)

🐛 Bug Fixes

🔄️ Refactorings

  • 9c58ec5 Use Cypher-DSL schema name support for sanitizing names. (#620)

📝 Documentation

  • fb4ca38 add fbiville as a contributor for ideas (#638)
  • e8a71cd add ali-ince as a contributor for userTesting (#637)
  • 59fea88 add atomfrede as a contributor for ideas (#636)
  • 1b52cf9 add katya-dovgalets as a contributor for code (#635)
  • 6791e62 add corneil as a contributor for bug (#634)
  • d141781 add marianozunino as a contributor for ideas (#633)
  • fd4b41c add aalmiray as a contributor for code, plugin, ideas, mentoring (#632)
  • a11f2fc add Dcanzano as a contributor for userTesting, bug (#631)
  • 3b02732 add Hosch250 as a contributor for userTesting, bug (#630)
  • 832f503 add injectives as a contributor for code, userTesting (#629)
  • 1807f29 add SeanKilleen as a contributor for doc (#628)
  • 22cf9b7 add ali-ince as a contributor for bug (#627)
  • 1fadb5d add michael-simons as a contributor for maintenance (#626)
  • 2062be5 add michael-simons as a contributor for code, doc (#625)
  • 4aebc75 add meistermeier as a contributor for doc (#624)
  • 99b9f60 add bsideup as a contributor for review (#623)
  • e5e89ce add meistermeier as a contributor for code (#622)
  • 897be21 Update local changelog.

🧹 Housekeeping

  • 1a7b7b3 Bump neo4j-harness from 4.4.10 to 4.4.11 (#642)
  • 91266e4 Bump error_prone_annotations from 2.12.1 to 2.15.0 (#643)
  • 2af5eaa Bump byte-buddy.version from 1.12.14 to 1.12.16 (#644)
  • 4e1bf2f Bump checker-qual from 3.24.0 to 3.25.0 (#641)
  • 8ef853e Bump mockito.version from 4.7.0 to 4.8.0 (#639)
  • c2b6c6f Bump quarkus-neo4j.version from 1.4.1 to 1.5.0
  • a3ade49 Bump quarkus.version from 2.12.0.Final to 2.12.1.Final
  • e783d4d Bump japicmp-maven-plugin from 0.15.7 to 0.16.0 (#617)
  • dde32a3 Bump quarkus.version from 2.11.2.Final to 2.12.0.Final (#611)

🛠 Build

  • 165bcb8 Add linux-aarch_64 to the release pipeline. (#645)
  • d8d1dfe Add all-contributors bot.

1.10.1

29 Aug 09:27
bd4c6c6
Compare
Choose a tag to compare

What's Changed

📝 Documentation

  • b93d9be Use correct heading level.
  • 491b793 Improve intro to naming conventions.

🧹 Housekeeping

  • 95fdff1 Bump quarkus-neo4j.version from 1.4.0 to 1.4.1
  • 3a2c08a Bump quarkus.version from 2.11.2.Final to 2.11.3.Final
  • 0f8b5d8 Bump checkstyle from 10.3.2 to 10.3.3 (#615)
  • 621db9e Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 (#614)
  • 3a31f05 Bump byte-buddy.version from 1.12.13 to 1.12.14 (#613)
  • d30cd1a Bump jreleaser-maven-plugin from 1.1.0 to 1.2.0 (#612)

1.10.0

22 Aug 08:26
ff5a63d
Compare
Choose a tag to compare

What's Changed

There's an exiting new feature in this release: Predefined database refactorings, such as "rename the label Movie into Film" or "normalise all properties that have the values ja, yes and y and all of nein, no, vielleicht into a boolean true respectively false". Those refactorings are largely modeled after apoc.refactor but do not require APOC to be installed and run into pure Cypher. They even do support batching in Neo4j 4.4 or higher.

Some inspiration has been taken from @fbiville's post about Graph Refactoring: The Hard Way for the general initiative and the Merge.nodes refactoring. Thanks for that, Florent!

The refactorings of this project here are in ac.simons.neo4j.migrations.core.refactorings and can actually be used without the migrations itself, a connected Neo4j driver instance will be enough to use them. We will maybe extract them into a separate module or even separate library in a new org at a later stage. Until than, they will be part of the publicly maintained API here. Have a look at the document how to use them in catalogs or standalone (full example here and a list of predefined refactorings).

This feature does not have any breaking changes to the core, so 1.10.0 is a drop-in replacement of 1.9 and depending if you are using it in Spring Boot or Quarkus and your versions there, for 1.8 or 1.7, too.

🚀 Features

  • cbd1075 Add refactoring Normalize.asBoolean. (#606)
  • 2ec53be Add support for running predefined refactorings. (#605)

🐛 Bug Fixes

  • 36459cc Escape escaped Unicode 0060 (backtick) proper. (#607)

🔄️ Refactorings

  • 794238f Don't double escape already escaped backticks. (#604)

📝 Documentation

🧹 Housekeeping

  • 2a1ca61 Bump spring-boot.version from 2.7.2 to 2.7.3 (#610)

Contributors

We'd like to thank the following people for their contributions:

1.9.2

15 Aug 09:03
4630294
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • a99b33f Add missing type property to allowed index types.

🧹 Housekeeping

  • 127996f Bump maven-javadoc-plugin from 3.4.0 to 3.4.1 (#600)
  • 75191a9 Bump neo4j-harness from 4.4.9 to 4.4.10 (#601)
  • 538ccd1 Bump maven-project-info-reports-plugin from 3.4.0 to 3.4.1 (#602)
  • 8c6ad22 Bump mockito.version from 4.6.1 to 4.7.0 (#603)
  • 123acdd Bump maven-site-plugin from 3.12.0 to 3.12.1 (#599)
  • 2c91338 Bump byte-buddy.version from 1.12.12 to 1.12.13 (#598)
  • 7ec3a03 Bump objenesis from 3.2 to 3.3 (#597)
  • 2c5ebeb Bump quarkus.version from 2.11.1.Final to 2.11.2.Final (#596)

🛠 Build

  • d736df7 Use quarkus-extension-maven-plugin instead of quarkus-bootstrap-maven-plugin.

1.9.1

02 Aug 13:18
3145fd4
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • 766333a Render indexes while rendering an XML catalog, too. (#595)

🧹 Housekeeping

  • c49486c Bump docker-maven-plugin from 0.40.1 to 0.40.2 (#594)
  • d33e902 Bump junit-jupiter-causal-cluster-testcontainer-extension (#593)
  • ea1619d Bump asciidoctorj from 2.5.4 to 2.5.5 (#592)
  • 27f4f44 Bump junit-bom from 5.8.2 to 5.9.0 (#591)
  • 4141884 Bump maven-resources-plugin from 3.2.0 to 3.3.0 (#590)
  • de709fe Bump checkstyle from 10.3.1 to 10.3.2 (#589)

1.9.0

28 Jul 11:46
7123ca6
Compare
Choose a tag to compare

What's Changed

🚀 Features

🐛 Bug Fixes

🔄️ Refactorings

  • 462cfba Avoid an unlock attempt if the lock isn’t locked. (#581)
  • 9c26342 Deprecate ac.simons.neo4j.migrations.core.Migration#getDescription. (#584)

🧹 Housekeeping

  • b68caee Bump quarkus-neo4j.version from 1.3.2 to 1.4.0
  • 78a06f4 Bump quarkus.version from 2.11.0.Final to 2.11.1.Final
  • d3dba4a Bump maven-project-info-reports-plugin from 3.3.0 to 3.4.0 (#568)
  • b2f5b8a Bump maven-install-plugin from 3.0.0-M1 to 3.0.1 (#579)
  • 0a7fbfa Bump spring-boot.version from 2.7.1 to 2.7.2 (#578)
  • 1d6434f Bump maven-deploy-plugin from 3.0.0-M2 to 3.0.0 (#577)
  • 330be58 Bump maven-assembly-plugin from 3.4.1 to 3.4.2 (#575)
  • e76fb8c Bump neo4j-harness from 4.4.8 to 4.4.9 (#580)
  • f404a07 Bump quarkus.version from 2.10.2.Final to 2.11.0.Final (#574)
  • 129cebf Bump exec-maven-plugin from 3.0.0 to 3.1.0 (#570)
  • 8c65341 Bump native-maven-plugin from 0.9.12 to 0.9.13 (#571)
  • 9995d00 Bump sortpom-maven-plugin from 3.1.3 to 3.2.0 (#569)

Contributors

We'd like to thank the following people for their contributions:

1.8.3

13 Jul 18:24
d8b8e6a
Compare
Choose a tag to compare

What's Changed

🚀 Features

  • d4c1061 Allow adding preconditions to migrations after they have been applied. (#565)

🐛 Bug Fixes

  • 207b14c Add a check for Neo4j 5 constraint backing indexes. (#564)

🔄️ Refactorings

🧹 Housekeeping

  • bc1b61c Bump quarkus-neo4j.version from 1.3.1 to 1.3.2
  • 8349c44 Bump neo4j-java-driver from 4.4.6 to 4.4.9

🛠 Build

  • 6cc739b Don't drop LOOKUP constraints prior to tests. (#562)

Contributors

We'd like to thank the following people for their contributions:

1.8.2

11 Jul 07:22
a4c906e
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • a0bf11c Strip leading product specific information from version string. (#550)

🧹 Housekeeping

  • 9d768f8 Bump quarkus-neo4j.version from 1.3.0 to 1.3.1
  • 3edeca0 Bump quarkus.version from 2.10.1.Final to 2.10.2.Final (#552)
  • b698497 Bump classgraph from 4.8.147 to 4.8.149 (#553)
  • 9048202 Bump maven-assembly-plugin from 3.4.0 to 3.4.1 (#554)

Contributors

We'd like to thank the following people for their contributions:

1.8.1

04 Jul 11:02
fef4b2e
Compare
Choose a tag to compare

What's Changed

🔄️ Refactorings

  • c577565 Avoid using ServerVersion in favor of a plain string. (#540)

🧹 Housekeeping

  • d795d6c Bump testcontainers.version from 1.17.2 to 1.17.3 (#547)
  • 61811af Bump jreleaser-maven-plugin from 1.0.0 to 1.1.0 (#543)
  • 2b10f8e Bump quarkus.version from 2.10.0.Final to 2.10.1.Final (#545)
  • 20c41fd Bump jna from 5.12.0 to 5.12.1 (#548)
  • 06f4e78 Bump checkstyle from 10.3 to 10.3.1 (#544)
  • 4db301f Bump maven-assembly-plugin from 3.3.0 to 3.4.0 (#546)

🛠 Build

  • 847c26f Add support for integration tests running on Apple silicon. (#538)
  • 3da7550 Use a system property to configure a central Neo4j image to be used as default in integration tests. (#542)
  • 3e25207 Completely exclude asciidoc extension from site plugin.
  • 9d58c90 Install a Ruby version compatible with JRuby and Maven.
  • d49d744 Add mavengem-wagon as extension to avoid site generation errors. (#541)

Contributors

We'd like to thank the following people for their contributions: