Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
604a1ab
dependencies: upgrade to Spring AI 1.0.1
bsbodden Aug 7, 2025
b0dc169
refactor: fix deprecations and other build warnings
bsbodden Aug 7, 2025
93b84c6
docs: fix all Javadoc warnings in lexicographic classes
bsbodden Aug 7, 2025
f164c66
build: skip Javadoc generation for demo modules
bsbodden Aug 7, 2025
67550f0
build: update Antora to 3.1.12 and fix documentation warnings
bsbodden Aug 7, 2025
6c3d3f1
build: fix deprecated project references in Gradle tasks
bsbodden Aug 7, 2025
20e7e38
fix: handle String values from Redis FT.INFO in count() method (#639)
bsbodden Aug 8, 2025
3857333
fix: allow users to override Redis mapping context without bean confl…
bsbodden Aug 8, 2025
4f22e38
fix: improve indexExistsFor to handle Redis 8 error messages (#636)
bsbodden Aug 8, 2025
a4fbd39
fix: return boolean for exists queries instead of throwing ClassCastE…
bsbodden Aug 8, 2025
de83856
feat: add error handling configuration for saveAll operations (#517)
bsbodden Aug 8, 2025
eedfe75
feat: add andAny() and orAny() methods for combining predicates with …
bsbodden Aug 8, 2025
6f04f11
docs: updates for 1.0.0
bsbodden Aug 8, 2025
6191f37
docs: add comprehensive connection pool configuration guide (#217)
bsbodden Aug 8, 2025
4c96634
docs: add comprehensive documentation for partial updates on @Documen…
bsbodden Aug 8, 2025
c39fa3d
fix: resolve early access workflow issues for RC versions (#625)
bsbodden Aug 8, 2025
57b2225
ci: implement automatic SNAPSHOT version generation for continuous de…
bsbodden Aug 8, 2025
c97cf2c
fix: resolve TTL not being set with spring-boot-devtools (#458)
bsbodden Aug 8, 2025
9216db2
feat: add comprehensive Map field support for JSON documents (#348)
bsbodden Aug 9, 2025
6e0ed37
docs: correct hash-mappings documentation
bsbodden Aug 9, 2025
539f55c
fix: enable proper contributor attribution in GitHub releases
bsbodden Aug 9, 2025
449e87c
fix: handle different Redis return types for num_docs field (#639)
bsbodden Aug 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 20 additions & 7 deletions .github/workflows/early-access.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,29 @@ jobs:
id: vars
shell: bash
run: |
VERSION=$(grep '^version\s*=\s*' gradle.properties | cut -d'=' -f2 | xargs)
echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT"
if [[ "$VERSION" == *-SNAPSHOT ]]; then
echo "SNAPSHOT=true" >> "$GITHUB_OUTPUT"
BASE_VERSION=$(grep '^version\s*=\s*' gradle.properties | cut -d'=' -f2 | xargs)
echo "BASE_VERSION=$BASE_VERSION" >> "$GITHUB_OUTPUT"

# Check if current version is already a release (RC, SNAPSHOT, or tagged release)
if [[ "$BASE_VERSION" == *-SNAPSHOT ]] || [[ "$BASE_VERSION" == *-RC* ]]; then
echo "SHOULD_RELEASE_SNAPSHOT=false" >> "$GITHUB_OUTPUT"
echo "Skipping snapshot release: version is already a pre-release ($BASE_VERSION)"
else
echo "SNAPSHOT=false" >> "$GITHUB_OUTPUT"
# Check if this exact version has been released as a tag
if git tag --list | grep -q "^v${BASE_VERSION}$"; then
echo "SHOULD_RELEASE_SNAPSHOT=false" >> "$GITHUB_OUTPUT"
echo "Skipping snapshot release: version $BASE_VERSION has already been released"
else
# Create snapshot version
SNAPSHOT_VERSION="${BASE_VERSION}-SNAPSHOT"
echo "VERSION=$SNAPSHOT_VERSION" >> "$GITHUB_OUTPUT"
echo "SHOULD_RELEASE_SNAPSHOT=true" >> "$GITHUB_OUTPUT"
echo "Will release snapshot version: $SNAPSHOT_VERSION"
fi
fi

- name: Release
if: ${{ steps.vars.outputs.SNAPSHOT }}
- name: Release Snapshot
if: ${{ steps.vars.outputs.SHOULD_RELEASE_SNAPSHOT == 'true' }}
uses: jreleaser/release-action@v2
with:
arguments: release
Expand Down
12 changes: 11 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,16 @@ apply from: "spotless.gradle"

subprojects {
apply from: "$rootDir/gradle/build-conventions.gradle"

// Skip Javadoc for demo modules
if (project.path.startsWith(':demos:')) {
tasks.withType(Javadoc) {
onlyIf { false }
}
tasks.matching { it.name == 'javadocJar' }.configureEach {
onlyIf { false }
}
}
}

tasks.register('aggregateTestReport', TestReport) {
Expand Down Expand Up @@ -62,7 +72,7 @@ tasks.register('aggregateJavadoc', Javadoc) {
'https://docs.oracle.com/en/java/javase/21/docs/api/',
'https://docs.spring.io/spring-framework/docs/current/javadoc-api/',
'https://docs.spring.io/spring-data/redis/docs/current/api/',
'https://docs.spring.io/spring-boot/docs/current/api/'
'https://docs.spring.io/spring-boot/api/java/'
)
}

Expand Down
2 changes: 2 additions & 0 deletions demos/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ tasks.matching { it.name.startsWith('publish') }.configureEach {
enabled = false
}

// Javadoc generation is disabled for demo modules in the root build.gradle

repositories {
mavenLocal()
mavenCentral()
Expand Down
3 changes: 2 additions & 1 deletion docs/antora-playbook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ asciidoc:
toc: ~
xrefstyle: short
# Javadoc-specific attributes
javadoc-base-url: '{attachmentsdir}/javadoc'
# Using relative paths from the page location
javadoc-base-url: '_attachments/javadoc'
javadoc-core-url: '{javadoc-base-url}/modules/redis-om-spring'
javadoc-ai-url: '{javadoc-base-url}/modules/redis-om-spring-ai'
javadoc-aggregate-url: '{javadoc-base-url}/aggregate'
26 changes: 12 additions & 14 deletions docs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,17 @@ description = 'Redis OM Spring Documents Site'

// Define properties similar to Maven pom.xml
ext {
nodeVersion = '20.5.0' // Note: no 'v' prefix for node-gradle plugin
npmVersion = '9.8.0'
antoraVersion = '3.1.4'
nodeVersion = '20.17.0' // LTS version
npmVersion = '10.9.2'
antoraVersion = '3.1.12'
}

// Configure Node.js plugin
node {
version = nodeVersion
npmVersion = project.ext.npmVersion
download = true
nodeProjectDir = file("${project.projectDir}")
nodeProjectDir = layout.projectDirectory.asFile
}

// Install Antora CLI and generator
Expand All @@ -42,11 +42,11 @@ task copyJavadocs(type: Copy) {
dependsOn ':aggregateJavadoc', ':generateModuleJavadocs'

from rootProject.layout.buildDirectory.dir('docs/javadoc')
into "${project.projectDir}/content/modules/ROOT/attachments/javadoc"
into layout.projectDirectory.dir("content/modules/ROOT/attachments/javadoc")

doFirst {
mkdir "${project.projectDir}/content/modules/ROOT/attachments"
mkdir "${project.projectDir}/content/modules/ROOT/attachments/javadoc"
mkdir layout.projectDirectory.dir("content/modules/ROOT/attachments").asFile
mkdir layout.projectDirectory.dir("content/modules/ROOT/attachments/javadoc").asFile
logger.lifecycle("Copying Javadoc documentation to Antora attachments...")
}
}
Expand All @@ -65,12 +65,10 @@ task generateSite(type: NodeTask) {
'--to-dir=build/site'
]

// Capture buildDir at configuration time to avoid execution-time project access
def buildDirectory = project.buildDir
outputs.dir("${buildDirectory}/site")
outputs.dir(layout.buildDirectory.dir("site"))

doFirst {
mkdir "${buildDirectory}/site"
mkdir layout.buildDirectory.dir("site").get().asFile
logger.lifecycle("Building multi-version documentation with Antora...")
}
}
Expand All @@ -82,7 +80,7 @@ assemble.dependsOn generateSite
// Clean up Antora-related directories when cleaning the project
clean {
delete 'node_modules'
delete project.buildDir
delete "${project.projectDir}/content/modules/ROOT/assets/javadoc"
delete "${project.projectDir}/content/modules/ROOT/attachments/javadoc"
delete layout.buildDirectory
delete layout.projectDirectory.dir("content/modules/ROOT/assets/javadoc")
delete layout.projectDirectory.dir("content/modules/ROOT/attachments/javadoc")
}
1 change: 1 addition & 0 deletions docs/content/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
* xref:json_mappings.adoc[Redis JSON Basics]
* xref:document-annotation.adoc[Document Annotation]
* xref:json-repositories.adoc[Document Repositories]
* xref:json-map-fields.adoc[Map Field Mappings]

.Indexing and Search
* xref:search.adoc[Redis Query Engine Integration]
Expand Down
6 changes: 3 additions & 3 deletions docs/content/modules/ROOT/pages/api-reference.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The API documentation is automatically generated from the latest release and inc

The core Redis OM Spring module provides the fundamental functionality for object mapping, repositories, and search capabilities.

link:{attachmentsdir}/javadoc/modules/redis-om-spring/index.html[Redis OM Spring Core API^, role="external"]
xref:attachment$javadoc/modules/redis-om-spring/index.html[Redis OM Spring Core API^, role="external", window="_blank"]

=== Key Packages

Expand All @@ -39,7 +39,7 @@ link:{attachmentsdir}/javadoc/modules/redis-om-spring/index.html[Redis OM Spring

The AI extension module provides vector embedding and similarity search capabilities with multiple AI provider integrations.

link:{attachmentsdir}/javadoc/modules/redis-om-spring-ai/index.html[Redis OM Spring AI API^, role="external"]
xref:attachment$javadoc/modules/redis-om-spring-ai/index.html[Redis OM Spring AI API^, role="external", window="_blank"]

=== Key Packages

Expand All @@ -51,7 +51,7 @@ link:{attachmentsdir}/javadoc/modules/redis-om-spring-ai/index.html[Redis OM Spr

For a unified view of all modules and their interactions:

link:{attachmentsdir}/javadoc/aggregate/index.html[Complete API Reference^, role="external"]
xref:attachment$javadoc/aggregate/index.html[Complete API Reference^, role="external", window="_blank"]

This aggregated documentation provides:

Expand Down
Loading