Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Looking for new maintainers #109

Open
florinpatrascu opened this issue Oct 22, 2022 · 10 comments
Open

Looking for new maintainers #109

florinpatrascu opened this issue Oct 22, 2022 · 10 comments

Comments

@florinpatrascu
Copy link
Owner

Hi there,

As you may have noticed, the project has been stalled for some time. The main reason for this is me.

I don't have time to pursue neo4j anymore and besides, I don't use it that much. neo4J is an exciting technology, I still remember spending many long nights and 2 whole vacations designing and building this driver, I don't regret a second because I learned a lot and this project helped me to meet wonderful people - all of you ❤️ All this effort and work was based only on passion, not gaining any monetary value or material advantages. This driver is free and completely independent from neo4j.

Eventually, I came back to focus on relational databases again, devoting a lot of attention and energy to PostgreSQL and SQLite and, of course, Elixir and Erlang.

Since I can no longer provide the level of support I used to, I'm relying on the community and on the users passionate for neo4j and Elixir, so I'm looking for new maintainers.

Thank you for your support and understanding,
ッFlorin

@kristofka
Copy link
Collaborator

kristofka commented Oct 22, 2022 via email

@kristofka
Copy link
Collaborator

kristofka commented Oct 22, 2022 via email

@florinpatrascu
Copy link
Owner Author

Hi @kristofka - glad to hear that you are still interested in this field, and I wish you success with your project you mentioned above. For ideas, perhaps it would be good to convert them into a series of public proposals and share them with the community here in the form of improvements, or with the future team of maintainers.

@kristofka
Copy link
Collaborator

kristofka commented Oct 22, 2022 via email

@kristofka
Copy link
Collaborator

@florinpatrascu I’m almost done with support for bolt v4+. It’ll imply some breaking changes, I’ll soon make an unfinished pull request, I’ve made a few controversial changes in the process.
If what I’ve done interests you, I’m fine with project maintenance afterwards.
Because I don’t want to keep you in the dark a few things:

  • refactor internals to be closer to https://neo4j.com/docs/bolt/current/
  • Build a unified api for boltprotocol and properly dispatch to correct message encodings
  • Initial support for streaming in bolt v4+
  • Allow setting bolt_versions when starting the app.

TODO :

  • raise only at the outer layer, otherwise return an uniform error type,
  • documentation,
  • genstage based transaction,
  • Get routing tables
  • … Probably more

A massive, breaking pull request should come by the end of the week.

@larshei
Copy link

larshei commented Oct 31, 2023

@kristofka Just stumbled over this. Based on the age of the comment, you probably did not pursue this any further?

Edit: I may have found an answer in the elixir forums:
https://elixirforum.com/t/who-s-using-graph-databases-today/56172/10

@sagastume
Copy link

Hello, I've been working on refactoring certain parts of the project with the goal of separating responsibilities and making maintenance easier.

My current priority is to reduce cognitive complexity so that newcomers to the project can understand it more easily. This involves aligning more closely with the definitions in the Bolt protocol documentation. Additionally, I am working to make the implementation of messages easy to modify for new versions when the Bolt protocol undergoes changes.

Currently, I'm focusing on three main aspects: messages, connection, and the client:

  1. Client: Its role is to send and receive information to/from the server.
  2. Connection: Responsible for maintaining the connection using DBConnection.
  3. Protocol: It's divided into different modules for each message, and each one is responsible for encoding and decoding the messages.
  4. Configuration Flexibility: It's now possible to configure the agent and the Bolt version.
  5. Testing: I've created an auxiliary script to test each Bolt version using Neo4j or Memgraph engines, and I've also improved test labels.To test a specific version, you can use the following commands:

./scripts/test-runner.sh -d "neo4j" -b "1.0"
or

./scripts/test-runner.sh -d "memgraph" -b "5.0"

I have several refactoring ideas in mind, such as decoupling Packstream from Bolt versions since they are distinct aspects. However, I plan to tackle this effort later.

At the moment, I've only implemented two messages, "Init" and "Hello." Although there is much work left to do, I believe this refactoring is essential to simplify the maintenance of different Bolt versions.

Currently, I am busy working on setting up GitHub workflows to run tests on each pull request towards the "master" branch.

I plan to label this as version 3 because I am not currently focused on ensuring backward compatibility. My primary goal is to significantly improve the project to make maintenance easier.

You can track my progress and contributions in my GitHub repository: https://github.com/sagastume/bolt_sips

If you agree, I would be willing to create a pull request to a v3 branch of this project.

@florinpatrascu
Copy link
Owner Author

Hi @sagastume - several modifications have been bundled together. I suggest, if you wish to continue maintaining this repository, to establish a new one where you'll have complete autonomy, including the ability to publish to Hex and manage user requests, upgrades, PRs and the gh issues. If this aligns with your preferences, please let me know, and I'll incorporate a link to your repository in the README for this one. Thanks.

@sagastume
Copy link

Hi @florinpatrascu , I agree with the proposal, sounds good. My new repository is https://github.com/sagastume/boltx. Thanks!

@Gomez1996

This comment was marked as spam.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants