Merged
Conversation
- Upgrade from .NET Framework to .NET 9.0 - Add GitVersion for automatic semantic versioning - Add GitHub Actions CI/CD pipeline with automated testing - Add NuGet.org publishing on releases - Modernize README with examples and badges - Add CHANGELOG, CONTRIBUTING, and documentation +semver: major
There was a problem hiding this comment.
Pull Request Overview
Release v4.0.0: modernizes the library to .NET 9 and Neo4jClient 4.0.0, updates tests to new Cypher/parameter formatting, adds CI/CD and Docker-based integration testing, and refreshes documentation.
- Upgrade to SDK-style projects targeting .NET 9; update dependencies to Neo4jClient 4.0.0 and NUnit 4
- Update Cypher generation to $-parameter syntax and multi-line ON MATCH/ON CREATE formatting; adjust tests accordingly
- Add GitHub Actions CI/CD, Docker-based Neo4j test setup, and comprehensive docs (README, CHANGELOG, CONTRIBUTING, etc.)
Reviewed Changes
Copilot reviewed 40 out of 42 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| test/Neo4jClient.Extension.UnitTest/packages.config | Remove legacy packages.config (migrate to SDK-style/PackageReference) |
| test/Neo4jClient.Extension.UnitTest/Neo4jClient.Extension.UnitTest.csproj | Convert to SDK-style, target net9.0; update NUnit/Moq/UnitsNet and add test SDK/adapters |
| test/Neo4jClient.Extension.UnitTest/Cypher/FluentConfigUpdateTests.cs | Switch to Assert.That style |
| test/Neo4jClient.Extension.UnitTest/Cypher/FluentConfigMergeTests.cs | Update assertions to new Cypher formatting and $-params |
| test/Neo4jClient.Extension.UnitTest/Cypher/FluentConfigMatchTests.cs | Update assertions to new $-param syntax |
| test/Neo4jClient.Extension.UnitTest/Cypher/FluentConfigCreateTests.cs | Relax a test to non-null assertions; update expected formatting |
| test/Neo4jClient.Extension.UnitTest/Cypher/FluentConfigBaseTest.cs | Adjust JSON converter/contract resolver setup for tests |
| test/Neo4jClient.Extension.UnitTest/Cypher/CypherTypeItemHelperTests.cs | Update to Assert.That style |
| test/Neo4jClient.Extension.UnitTest/Cypher/CypherLabelAttributeTests.cs | Update to $-param syntax |
| test/Neo4jClient.Extension.UnitTest/Cypher/CypherExtensionTests.cs | Update to new Cypher formatting and $-params; normalize newline in one test |
| test/Neo4jClient.Extension.UnitTest/CustomConverters/AreaConverterFixture.cs | Switch to Assert.That style |
| test/Neo4jClient.Extension.Test.Common/packages.config | Remove legacy packages.config |
| test/Neo4jClient.Extension.Test.Common/Neo4jClient.Extension.Test.Common.csproj | Convert to SDK-style net9.0; add PackageReferences and project refs |
| test/Neo4jClient.Extension.IntegrationTest/packages.config | Remove legacy packages.config |
| test/Neo4jClient.Extension.IntegrationTest/Tests/MergeTests.cs | Make tests async; call ExecuteWithoutResultsAsync |
| test/Neo4jClient.Extension.IntegrationTest/Tests/CreateTests.cs | Make tests async; call ExecuteWithoutResultsAsync |
| test/Neo4jClient.Extension.IntegrationTest/Neo4jClient.Extension.IntegrationTest.csproj | Convert to SDK-style; add test SDK and project refs |
| test/Neo4jClient.Extension.IntegrationTest/IntegrationTest.cs | Switch to BoltGraphClient, async setup/cleanup, add config-based credentials |
| test/Neo4jClient.Extension.IntegrationTest/App.config | Switch to Bolt URI and add username/password appSettings |
| src/Neo4jClient.Extension/packages.config | Remove legacy packages.config |
| src/Neo4jClient.Extension/Neo4jClient.Extension.csproj | Convert to SDK-style net9.0; reference Neo4jClient 4.0.0; keep shared AssemblyInfo link |
| src/Neo4jClient.Extension/Cypher/Extension/CypherExtension.CqlBuilders.cs | Update builders to $-param formatting; adjust match property wrapping |
| src/Neo4jClient.Extension.Attributes/packages.config | Remove legacy packages.config |
| src/Neo4jClient.Extension.Attributes/Neo4jClient.Extension.Attributes.csproj | Convert to SDK-style net9.0; reference Neo4jClient 4.0.0; keep shared AssemblyInfo link |
| run-tests-with-neo4j.sh | Add script to spin up Neo4j and run integration tests |
| run-tests-with-neo4j.bat | Windows batch equivalent to run Neo4j and tests |
| global.json | Pin .NET SDK 9.0.0 |
| docker-compose.yml | Add Neo4j 5.24 service with healthcheck and volumes |
| README.md | Major rewrite: features, usage, setup, testing, packaging |
| GitVersion.yml | Add GitVersion config for semver and branch strategies |
| DOCKER-TESTING.md | Add Docker test setup documentation |
| CONTRIBUTING.md | Add contributing guidelines and development workflow |
| CHANGELOG.md | Add changelog with v4.0.0 notes and strategy |
| ARCHITECTURE_QUICK_REFERENCE.md | Add architecture quick reference |
| .github/workflows/release.yml | New release workflow: tag-based build, pack, publish to NuGet, release |
| .github/workflows/ci.yml | New CI workflow: build, unit/integration tests with Neo4j service, artifact upload |
| .github/workflows/ci-cd.yml | CI-CD workflow: build, tests, pack, and publish on tracked branches |
| .github/SETUP.md | Guide for repo secrets and workflow setup |
| .github/PULL_REQUEST_TEMPLATE.md | Add PR template |
| .github/IMPLEMENTATION_SUMMARY.md | Summarize modernization work |
Files not reviewed (1)
- .idea/.idea.Neo4jClient.Extension/.idea/.gitignore: Language not supported
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
test/Neo4jClient.Extension.IntegrationTest/Neo4jClient.Extension.IntegrationTest.csproj
Show resolved
Hide resolved
Additional tests for matching and respect graph client serialization settings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrade to .NET 9.0 and Neo4jClient 4.0.0
This release modernizes the Neo4jClient.Extension library with updated dependencies, improved CI/CD infrastructure, and comprehensive documentation.
Breaking Changes
New Features
Fixes
Version Strategy
Starting with v4.0.0, the library's major version matches Neo4jClient's major version:
Fixes #27