Skip to content

fix: pin Neo4j Docker image to 5.26 in docker-compose.yml#2323

Merged
Vasilije1990 merged 1 commit intotopoteretes:devfrom
nightcityblade:fix/issue-2302
Mar 11, 2026
Merged

fix: pin Neo4j Docker image to 5.26 in docker-compose.yml#2323
Vasilije1990 merged 1 commit intotopoteretes:devfrom
nightcityblade:fix/issue-2302

Conversation

@nightcityblade
Copy link

@nightcityblade nightcityblade commented Mar 8, 2026

Description

Replace neo4j:latest with neo4j:5.26 in docker-compose.yml for reproducible builds. Using :latest can break builds without warning when a new major version is released. The project requires neo4j>=5.28.0,<6 for the Python driver, confirming Neo4j 5.x compatibility.

Fixes #2302

Acceptance Criteria

  • neo4j:latest replaced with pinned version neo4j:5.26
  • Version is compatible with the project's Neo4j adapter (driver requires 5.x)
  • Comment added noting compatibility

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Code refactoring
  • Other (please specify):

Screenshots

N/A

Pre-submission Checklist

  • I have tested my changes thoroughly before submitting this PR
  • This PR contains minimal changes necessary to address the issue/feature
  • My code follows the project's coding standards and style guidelines
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if applicable)
  • All new and existing tests pass
  • I have searched existing PRs to ensure this change hasn't been submitted already
  • I have linked any relevant issues in the description
  • My commits have clear and descriptive messages

DCO Affirmation

I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin.

Summary by CodeRabbit

  • Chores
    • Updated Neo4j database version to 5.26 to ensure stability and compatibility with the application's database driver requirements.

Replace neo4j:latest with neo4j:5.26 for reproducible builds.
The project's neo4j Python driver requirement (>=5.28,<6) confirms
Neo4j 5.x compatibility.

Fixes topoteretes#2302
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 8, 2026

Walkthrough

The docker-compose.yml file has been updated to pin the Neo4j Docker image from neo4j:latest to neo4j:5.26, including a comment documenting compatibility with the Neo4j Python driver (>=5.28,<6). This ensures reproducible builds by replacing the floating latest tag with an explicit, tested version.

Changes

Cohort / File(s) Summary
Docker Compose Configuration
docker-compose.yml
Updated Neo4j service image tag from neo4j:latest to neo4j:5.26 with an added inline comment documenting compatibility requirements with the Python driver version.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and specifically describes the main change: pinning the Neo4j Docker image to version 5.26 in docker-compose.yml.
Description check ✅ Passed The PR description includes all required sections with clear content: description, acceptance criteria, type of change, pre-submission checklist, and DCO affirmation.
Linked Issues check ✅ Passed All acceptance criteria from issue #2302 are met: neo4j:latest replaced with 5.26, version compatibility with driver >=5.28.0,<6 confirmed, and comment added.
Out of Scope Changes check ✅ Passed The change is minimal and focused solely on pinning the Neo4j Docker image version; no extraneous modifications to other files or unrelated configurations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
docker-compose.yml (2)

158-158: Consider pinning redisinsight for consistency.

For the same reproducibility reasons that motivated pinning Neo4j, you may want to pin redislabs/redisinsight:latest to a specific version in a follow-up. This is outside the scope of the current fix but worth noting for consistency.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docker-compose.yml` at line 158, The docker-compose entry uses an unpinned
image "image: redislabs/redisinsight:latest" which hurts reproducibility; change
that value to a specific, immutable RedisInsight tag (for example replace
":latest" with a concrete version like ":v2.2.0" or the project's chosen
release) so the service always pulls the same image; update the "image:
redislabs/redisinsight:latest" line in the docker-compose service definition
(the image key) to the chosen version tag and document the selected tag in the
PR description.

94-94: Good change, with a minor improvement suggestion for reproducibility.

Pinning the Neo4j image to 5.26 is a solid improvement over latest. The Python driver 5.28+ is fully compatible with Neo4j 5.26 (LTS), which was released December 6, 2024.

For even stronger reproducibility, consider pinning to a specific patch version like neo4j:5.26.21 instead of the moving 5.26 tag, which may resolve to different patch versions over time (e.g., 5.26.22 in the future).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docker-compose.yml` at line 94, Update the Docker image tag in
docker-compose.yml to pin a specific patch release instead of the moving minor
tag: replace the image value currently set via "neo4j:5.26" with a concrete
patch tag such as "neo4j:5.26.21" so the Neo4j service (image: neo4j) resolves
to a fixed patch version for reproducible environments.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docker-compose.yml`:
- Line 158: The docker-compose entry uses an unpinned image "image:
redislabs/redisinsight:latest" which hurts reproducibility; change that value to
a specific, immutable RedisInsight tag (for example replace ":latest" with a
concrete version like ":v2.2.0" or the project's chosen release) so the service
always pulls the same image; update the "image: redislabs/redisinsight:latest"
line in the docker-compose service definition (the image key) to the chosen
version tag and document the selected tag in the PR description.
- Line 94: Update the Docker image tag in docker-compose.yml to pin a specific
patch release instead of the moving minor tag: replace the image value currently
set via "neo4j:5.26" with a concrete patch tag such as "neo4j:5.26.21" so the
Neo4j service (image: neo4j) resolves to a fixed patch version for reproducible
environments.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: de33c7fc-af9f-4e07-a16d-2bc66adc1a12

📥 Commits

Reviewing files that changed from the base of the PR and between c9370a8 and 3618dc0.

📒 Files selected for processing (1)
  • docker-compose.yml

@Vasilije1990 Vasilije1990 changed the base branch from main to dev March 11, 2026 20:09
@Vasilije1990 Vasilije1990 merged commit 3afa496 into topoteretes:dev Mar 11, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pin Neo4j Docker image version in docker-compose.yml

2 participants