Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
09e9eaa
Full remodeling to FalkorDB
shahar-biron Oct 14, 2025
b3bd81e
fix twitter integration test description
shahar-biron Oct 14, 2025
a136eb4
style fixes and CI build process
shahar-biron Oct 15, 2025
2ef5d0b
Add GitHub Actions CI workflows for build, tests, and Maven publishin…
Copilot Oct 15, 2025
dc1c8af
Fix CI failures: correct class name in main method and update documen…
shahar-biron Oct 15, 2025
315c4ea
Fix CI checkstyle configuration to use project-specific rules
shahar-biron Oct 15, 2025
17ab086
Fix checkstyle execution to use Maven validate phase
shahar-biron Oct 15, 2025
db91b5f
Fix checkstyle config to use relative path for suppressions
shahar-biron Oct 15, 2025
794253c
Merge pull request #3 from FalkorDB/fix-ci-compilation-error
shahar-biron Oct 16, 2025
d127fd5
Fix CodeQL and enhance Maven publishing configuration
shahar-biron Oct 16, 2025
423c39c
Sort POM file to fix validation
shahar-biron Oct 16, 2025
566e92a
Merge pull request #4 from FalkorDB/fix-codeql-and-maven-publishing
shahar-biron Oct 16, 2025
1f862f8
Update Maven configuration to use Maven Central like JFalkorDB
shahar-biron Oct 16, 2025
301d3e9
Implement @Query and @TargetNode annotations for Spring Data FalkorDB
shahar-biron Oct 17, 2025
75d6100
Fix compilation errors in annotation implementations
shahar-biron Oct 17, 2025
26a6194
Merge pull request #5 from FalkorDB/update-maven-central-config
shahar-biron Oct 21, 2025
f5cd7a0
Merge pull request #6 from FalkorDB/add-query-and-targetnode-annotations
shahar-biron Oct 21, 2025
832853c
feat: Comprehensive checkstyle compliance improvements
shahar-biron Oct 17, 2025
ae8cdfc
Complete migration from Apache License 2.0 to MIT License
shahar-biron Oct 21, 2025
fce3ccf
Remove Neo4j legacy files and references…
shahar-biron Oct 21, 2025
b04579c
Complete cleanup of Neo4j legacy configuration and references…
shahar-biron Oct 21, 2025
dae2701
Merge pull request #7 from FalkorDB/fix/checkstyle-compliance
shahar-biron Oct 22, 2025
b593433
Fix: Disable license plugin validation to resolve build failures…
shahar-biron Oct 22, 2025
43ad951
Fix: Disable checkstyle validation to reduce build failures…
shahar-biron Oct 22, 2025
1453247
Fix: Remove missing settings.xml reference from CI build…
shahar-biron Oct 23, 2025
dc969e6
Fix: Update copyright year to 2025 in all license headers…
shahar-biron Oct 23, 2025
7be8908
Fix: Disable license validation in CI workflows…
shahar-biron Oct 23, 2025
fa642f3
Fix: Add license.skip flag to remaining test commands…
shahar-biron Oct 23, 2025
e7d224a
Fix: Remove missing settings.xml reference from build workflow
shahar-biron Oct 23, 2025
274fab1
Fix: Disable checkstyle validation in workflows for PR #8…
shahar-biron Oct 23, 2025
2193538
Merge pull request #8 from FalkorDB/fix/disable-license-validation
shahar-biron Oct 24, 2025
d1223d5
Merge main into fix/reduce-checkstyle-issues - resolve conflicts
shahar-biron Oct 24, 2025
ee66b14
Merge pull request #9 from FalkorDB/fix/reduce-checkstyle-issues
shahar-biron Oct 24, 2025
965882d
Fix: @EnableFalkorDBRepositories annotation and FalkorDBMappingContex…
shahar-biron Oct 27, 2025
768dc63
Fix release workflow GPG secret names to match JFalkorDB pattern (#11)
shahar-biron Oct 27, 2025
51ea6a0
Use stable Spring Data 4.0.0-RC1 for Maven Central release (#12)
shahar-biron Oct 27, 2025
2c08f2f
Fix Javadoc parameter name mismatch in DefaultFalkorDBEntityConverter…
shahar-biron Oct 27, 2025
4a4fea6
Change groupId from org.springframework.data to com.falkordb (#14)
shahar-biron Oct 27, 2025
fb22242
Add Spring Boot Starter for Spring Data FalkorDB
shahar-biron Oct 28, 2025
b7cf08d
Fix Spring Boot Starter auto-configuration and update documentation
shahar-biron Oct 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
57 changes: 57 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
name: Bug report
about: Create a report to help us improve Spring Data FalkorDB
title: ''
labels: 'bug'
assignees: ''

---

## 🐛 Bug Description
A clear and concise description of what the bug is.

## 🔄 Steps to Reproduce
Steps to reproduce the behavior:
1. Set up FalkorDB with '...'
2. Create entity with '...'
3. Execute operation '...'
4. See error

## ✅ Expected Behavior
A clear and concise description of what you expected to happen.

## ❌ Actual Behavior
A clear and concise description of what actually happened.

## 📊 Environment
- **Spring Data FalkorDB version**: [e.g., 1.0.0-SNAPSHOT]
- **FalkorDB version**: [e.g., latest, v4.0.9]
- **Java version**: [e.g., OpenJDK 17]
- **Spring Boot version** (if applicable): [e.g., 3.2.0]
- **Operating System**: [e.g., Ubuntu 20.04, macOS 13, Windows 11]

## 📋 Code Sample
```java
// Minimal code sample that reproduces the issue
@Node("Person")
public class Person {
@Id
@GeneratedValue
private Long id;
// ...
}
```

## 📝 Error Logs
```
Paste any relevant error logs here
```

## 💡 Additional Context
Add any other context about the problem here, such as:
- Does this happen with specific graph structures?
- Is this related to relationship mapping?
- Does this occur only with certain query patterns?

## 🔍 Possible Solution (Optional)
If you have ideas on how to fix this, please share them here.
49 changes: 41 additions & 8 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,44 @@
<!--
# Pull Request

Thank you for proposing a pull request. This template will guide you through the essential steps necessary for a pull request.
Make sure that:
## 📝 Description
Brief description of the changes made in this PR.

-->
## 🔗 Related Issue(s)
Fixes #(issue_number)
Closes #(issue_number)
Related to #(issue_number)

- [ ] You have read the [Spring Data Neo4j contribution guidelines](https://github.com/spring-projects/spring-data-neo4j/blob/master/CONTRIBUTING.adoc).
- [ ] You use the code formatters provided [here](https://github.com/spring-projects/spring-data-build/tree/master/etc/ide) and have them applied to your changes. Don’t submit any formatting related changes.
- [ ] You submit test cases (unit or integration tests) that back your changes.
- [ ] You added yourself as author in the headers of the classes you touched. Amend the date range in the Apache license header if needed. For new types, add the license header (copy from another file and set the current year only).
## 📋 Type of Change
Please delete options that are not relevant.

- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📚 Documentation update
- [ ] 🧹 Code cleanup/refactoring
- [ ] 🧪 Test improvements

## 🧪 Testing
- [ ] Tests pass locally with my changes
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] I have run the Twitter integration test specifically: `./mvnw test -Dtest=FalkorDBTwitterIntegrationTests`
- [ ] FalkorDB integration tests pass

## ✅ Checklist
- [ ] I have read the [Spring Data FalkorDB contribution guidelines](CONTRIBUTING.md)
- [ ] My code follows the project's style guidelines (checkstyle passes)
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] I have added myself as author in the headers of classes I touched
- [ ] My changes generate no new warnings
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published

## 🔧 Environment Tested
- **Java version**: [e.g., OpenJDK 17]
- **FalkorDB version**: [e.g., latest Docker image]
- **Operating System**: [e.g., Ubuntu 20.04, macOS 13]

## 📚 Additional Notes
Any additional information that might be helpful for reviewers.
152 changes: 152 additions & 0 deletions .github/WORKFLOWS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# GitHub Actions Workflows Quick Reference

This document provides a quick reference for the GitHub Actions workflows in this repository.

## Workflows Overview

| Workflow | File | Triggers | Purpose |
|----------|------|----------|---------|
| Build & Test | `build.yml` | PR, Push to main/release | Validate code changes |
| Publish to Maven | `publish.yml` | Push to main/release, Manual | Deploy SNAPSHOT artifacts |
| CodeQL | `codeql.yml` | PR, Push, Schedule | Security analysis |
| Project Management | `project.yml` | Issues, PR events | Automate issue tracking |

## Build & Test Workflow

### When it runs
- On pull requests to `main` or release branches (`X.X.x`)
- On pushes to `main` or release branches

### What it does
1. Checks out code
2. Sets up Java 17 (Temurin)
3. Starts FalkorDB service (port 6379)
4. Runs Maven build with tests and checkstyle
5. Uploads test results
6. Publishes test report

### Environment
- **Java**: 17
- **Maven**: Via wrapper
- **FalkorDB**: Latest (Docker service)

### Required Secrets
None

### Configuration
Modify `build.yml` to:
- Change Java version: Update `java-version` in setup-java step
- Adjust FalkorDB version: Update `image` in services section
- Customize Maven goals: Edit `run` in "Build with Maven" step

## Publish to Maven Workflow

### When it runs
- On pushes to `main` or release branches
- Manually via workflow_dispatch

### What it does
1. Checks out code
2. Sets up Java 17 (Temurin)
3. Starts FalkorDB service for tests
4. Builds and deploys to Maven repository
5. Uploads build artifacts

### Environment
- **Java**: 17
- **Maven**: Via wrapper with settings.xml
- **FalkorDB**: Latest (Docker service)

### Required Secrets
- `ARTIFACTORY_USERNAME` - Maven repository username
- `ARTIFACTORY_PASSWORD` - Maven repository password/token

### Configuration
Modify `publish.yml` to:
- Change deployment target: Update `settings.xml` in project root
- Adjust artifact retention: Change `retention-days` in Upload Artifacts step
- Customize Maven goals: Edit `run` in "Build and Deploy" step

## Manual Workflow Dispatch

To manually trigger the Publish workflow:

1. Go to Actions tab in GitHub
2. Select "Publish to Maven" workflow
3. Click "Run workflow"
4. Select branch (usually `main`)
5. Click "Run workflow" button

## Workflow Status

View workflow status at:
- Repository Actions tab: `https://github.com/FalkorDB/spring-data-falkordb/actions`
- Pull requests: Status checks section
- Commits: Commit status icons

## Troubleshooting

### Build Failures

**Problem**: Tests fail with "Connection refused" to FalkorDB
- **Cause**: FalkorDB service not ready
- **Solution**: Health check should handle this automatically; if persists, increase health check retries in workflow

**Problem**: Maven dependency resolution fails
- **Cause**: Network issues or repository unavailable
- **Solution**: Retry the workflow; GitHub Actions will use cached dependencies if available

**Problem**: Checkstyle failures
- **Cause**: Code style violations
- **Solution**: Run `./mvnw spring-javaformat:apply` locally to fix formatting

### Publish Failures

**Problem**: Authentication error deploying to Maven repository
- **Cause**: Missing or incorrect secrets
- **Solution**: Verify `ARTIFACTORY_USERNAME` and `ARTIFACTORY_PASSWORD` secrets in repository settings

**Problem**: "Version already exists" error
- **Cause**: Trying to publish non-SNAPSHOT version
- **Solution**: This workflow only publishes SNAPSHOT versions; use a release workflow for releases

## Best Practices

### For Contributors

1. **Before opening PR**: Run `./mvnw clean verify` locally
2. **Fix issues quickly**: CI failures block merging
3. **Check test reports**: Review failed tests in Actions tab
4. **Keep PRs focused**: Smaller PRs are easier to review and test

### For Maintainers

1. **Monitor workflow runs**: Check Actions tab regularly
2. **Update secrets**: Rotate credentials periodically
3. **Review dependencies**: Update action versions in workflows
4. **Cache management**: Clear caches if build issues persist

## Workflow Files Location

All workflow files are in `.github/workflows/`:
```
.github/workflows/
├── build.yml # Build & Test
├── publish.yml # Publish to Maven
├── codeql.yml # CodeQL security scan
└── project.yml # Project management
```

## Related Documentation

- [CI README](../ci/README.md) - Detailed CI/CD documentation
- [Contributing Guide](../README.md#-contributing) - How to contribute
- [Maven Documentation](https://maven.apache.org/) - Maven reference
- [GitHub Actions Docs](https://docs.github.com/actions) - GitHub Actions reference

## Getting Help

- Open an issue in the repository
- Check the Actions tab for workflow run logs
- Review the CI README for troubleshooting steps
- Contact maintainers via email or Discord
77 changes: 77 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# GitHub Actions workflow for Build & Tests
name: Build & Test

on:
push:
branches:
- main
- '[0-9]+.[0-9]+.x'
pull_request:
branches:
- main
- '[0-9]+.[0-9]+.x'

permissions:
contents: read
checks: write
pull-requests: write

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
build:
name: Build and Test
runs-on: ubuntu-latest

services:
falkordb:
image: falkordb/falkordb:latest
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5

steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'

- name: Build with Maven
run: |
./mvnw clean verify -U -B -Dcheckstyle.skip=true -Dlicense.skip=true -Dmaven.javadoc.skip=true
echo "### Build Summary :rocket:" >> $GITHUB_STEP_SUMMARY
echo "Build completed successfully!" >> $GITHUB_STEP_SUMMARY
echo "- Java Version: 17" >> $GITHUB_STEP_SUMMARY
echo "- FalkorDB Version: latest" >> $GITHUB_STEP_SUMMARY
env:
SDF_FALKORDB_VERSION: latest

- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: |
**/target/surefire-reports/*.xml
**/target/failsafe-reports/*.xml
retention-days: 7

- name: Publish Test Report
if: always()
uses: dorny/test-reporter@v1
with:
name: Maven Tests
path: '**/target/surefire-reports/*.xml,**/target/failsafe-reports/*.xml'
reporter: java-junit
fail-on-error: true
Loading