neo4j-contrib / neomodel

An Object Graph Mapper (OGM) for the Neo4j graph database.
https://neomodel.readthedocs.io
MIT License
939 stars 231 forks source link

Future of neomodel #653

Closed kl-thamm closed 1 year ago

kl-thamm commented 1 year ago

Excuse me for opening 3 issues in one day, but I tried to keep everything separate from each other. I began using this package because I was hoping that it would allow me to skip writing the ever repeating cypher queries for simple CRUD tasks. I was clever enough to check out that there was still activity in this repo (last commit on Master was less than a month ago back then). This seemed to be a good idea until I started to notice some severe problems (see the other issues).

I then saw that i am using neo4j 4.4.5 and that the last officially supported version is neo4j 4.2. Great - but the Readme says that 4.3 is being tested - so it cant be long until 4.5 is supported as well (at least I thought). However I then discovered that there has not been a single release for almost a year, and that basically all branches are stale. It was then that I noticed that the last commits on the master branch were only dev ops or documentation related as well.

For these reasons I am wondering, if this repo is still maintained and wether I could expect at least the basic functionality (CRUD including indexes and schemas) will work with current releases of neo4j in the forseeable future?

Otherwise: Could you please add a deprecation notice to the repo / readme / software so others dont invest time into implementing solutions with this package before noticing its stale?

OlehChyhyryn commented 1 year ago

It is not deprecated, but maintainers are low-contributing to the package for the last year. It regularly happened before.

https://github.com/cchangelabs/neomodel/releases/tag/3.3.4

You can use the .whl package from our fork, where we applied important fixes and optimization from the main branch. Because the 4.0.8 branch has pretty major issues

kl-thamm commented 1 year ago

Hi, thanks for your reply and your effort in maintaining this. However as I am in the beginning of building an application, this seems way too risky for me to rely on. The additional commits are very minor compared to the existing issues as far as I can tell.

mariusconjeaud commented 1 year ago

Hello, As Oleg said, maintainers haven't been contributing much recently ; but there is still willingness to maintain this library. @jexp As part of this, I am currently updating the dependencies up to the latest 4.4.x version of Neo4j (LTS) and running the tests. It looks like it is working so I will create a branch if some users want to try it out.

Some next steps could be :

Of course, we would love support on this, so if there is anything you would like to pick up or have suggestions, or want to help prioritize the issues / open PRs, ... Please join ! @kl-thamm @olegchigirin

a-takahashi223 commented 1 year ago

I would like you to pick up #627 . CI is important.

mariusconjeaud commented 1 year ago

With pleasure ! I'm not aware about how CI is handled in this repo (yet) so I cannot help you. What would you need ?

a-takahashi223 commented 1 year ago

According to this post

any repositories you currently have connected to travis-ci.org must be migrated over to travis-ci.com before the end of May 2021 if you want your builds to continue without interruption. To do this you can simply sign up to travis-ci.com and link the repositories that you want to migrate. Your existing configurations will work as expected on travis-ci.com and you do not need to alter your build definitions. Alternatively, there’s a migration feature, which will allow transferring a limited amount of build history data from travis-ci.org to travis-ci.com.

mariusconjeaud commented 1 year ago

@aanastasiou This requires credentials I don't have :-)

OlehChyhyryn commented 1 year ago

@mariusconjeaud

As the first and most important request, I want to suggest release master as a hot-fix release because the current state of 4.0.8 is broken in many scenarios and not optimized on system start.

https://github.com/neo4j-contrib/neomodel/pull/604 https://github.com/neo4j-contrib/neomodel/pull/607 https://github.com/neo4j-contrib/neomodel/pull/601

In our fork, we created a .whl package for as (as I mentioned), but it would be great if they became a part of the main package release.

I am great to hear that this project will get some love and support.

jexp commented 1 year ago

I think we should just move it to GH actions and remove the dependency on travis-ci.

@whatSocks do you have those credentials and can share them privately with @mariusconjeaud ?

mariusconjeaud commented 1 year ago

OK, good news ! A new release came out ! For now, it only integrated some fix to the docs, and extended support to Python 3.10 and Neo4j version 4.4, but I hope this can give reassurance that the project is moving forward :-)

mariusconjeaud commented 1 year ago

@olegchigirin #604 and #607 are included in the 4.0.9 release since the PRs had been merged. As for #601, you had closed the PR yourself, so what about it ?

mariusconjeaud commented 1 year ago

Note that we pushed a release 4.0.10 because the way I updated the packaging wasn't completely right. 4.0.10 fixes that.

OlehChyhyryn commented 1 year ago

Note that we pushed a release 4.0.10 because the way I updated the packaging wasn't completely right. 4.0.10 fixes that.

We will test the 4.0.10 release with our project running 3.11 python. If everything runs OKAY, I will inform you. Maybe neomodel really is able to support it =)

mariusconjeaud commented 1 year ago

There is no big incompatibility from what I saw ; just a version compatibility between Shapely 2.x and neomodel on one side ; and Shapely 1.x and Python 3.11 on the other. But there must be a workaround for this (I asked Thanos to look into Shapely as he worked on the Spatial type which requires Shapely)

mariusconjeaud commented 1 year ago

Tested again Python 3.11 support today based on @olegchigirin input, and it works now !

aanastasiou commented 1 year ago

@mariusconjeaud If it is of any help, I have been using Neomodel on Python 3.11 in other projects as well without any compatibility problems this far.

aaron-iles commented 1 year ago

Now that the #668 has been merged, is there a release scheduled soon to support version 5?

mariusconjeaud commented 1 year ago

@aaron-iles Yes there is !

I am just trying to assess the size of another PR that should come soon with many improvements added to fetching nodes ; as well as some code cleanup and addition of pre-commits I am doing now. The idea is to see if those should make into 5.0 or 5.x

But I think only the code cleanup will make it into 5.0

mariusconjeaud commented 1 year ago

Posted an announcement in the Discussions section : https://github.com/neo4j-contrib/neomodel/discussions/689

Feel free to add Ideas for future improvements there.