Skip to content

Commit 9316fda

Browse files
committed
Merge branch 'main' into DOC-5462
2 parents 5694593 + 82df921 commit 9316fda

File tree

97 files changed

+4509
-4470
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+4509
-4470
lines changed

.github/workflows/autocomment_jira_link.yaml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ name: autocomment_jira_link
22

33
on:
44
pull_request:
5-
paths:
6-
- 'content/**'
75
types:
86
- opened
97
permissions:
@@ -24,14 +22,6 @@ jobs:
2422
REPO: ${{ github.repository }}
2523
BRANCH_NAME: ${{ github.event.pull_request.head.ref }}
2624
run: |
27-
set -e
28-
29-
CREATE_COMMENT_URL="https://api.github.com/repos/${REPO}/issues/${PR_NUMBER}/comments"
30-
31-
JIRA_TICKET=$(grep -Eo '^DOC-[0-9]+' <<< "$BRANCH_NAME")
32-
JIRA_LINK="https://redislabs.atlassian.net/browse/${JIRA_TICKET}"
33-
COMMENT="[${JIRA_TICKET}](${JIRA_LINK})"
34-
3525
generate_post_data()
3626
{
3727
cat <<EOF
@@ -41,6 +31,12 @@ jobs:
4131
}
4232
4333
if [[ "$BRANCH_NAME" == DOC-* ]]; then
34+
CREATE_COMMENT_URL="https://api.github.com/repos/${REPO}/issues/${PR_NUMBER}/comments"
35+
36+
JIRA_TICKET=$(grep -Eo '^DOC-[0-9]+' <<< "$BRANCH_NAME")
37+
JIRA_LINK="https://redislabs.atlassian.net/browse/${JIRA_TICKET}"
38+
COMMENT="[${JIRA_TICKET}](${JIRA_LINK})"
39+
4440
# Write comment on pull request
4541
curl -Ls \
4642
-X POST \

.github/workflows/autocomment.yaml renamed to .github/workflows/autocomment_staging_links.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Auto Comment on PR
1+
name: autocomment_staging_links
22

33
on:
44
pull_request:
@@ -38,7 +38,7 @@ jobs:
3838
-H "X-GitHub-Api-Version: 2022-11-28" \
3939
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
4040
$CREATE_COMMENT_URL \
41-
| jq -r '.[] | select(.user.login == "github-actions[bot]")'
41+
| jq -r '.[] | select(.user.login == "github-actions[bot]" and ((.body // "") | contains("Staging links:")))'
4242
)
4343
EXISTING_COMMENT_ID=$(jq -r '.id' <<<"$EXISTING_COMMENT_JSON")
4444
EXISTING_COMMENT=$(jq -r '.body' <<<"$EXISTING_COMMENT_JSON")
@@ -50,7 +50,7 @@ jobs:
5050
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
5151
$FILES_URL \
5252
| jq -r --arg prefix $BRANCH_NAME/ '.[] | select(((.filename | test("content/(?!.*embed).*\\.md")) and .status != "removed")) | ($prefix + .filename)' \
53-
| sed -E -e 's|(^[^/]+/)([^/]+/)|\1|' -e 's|^|https://redis.io/docs/staging/|' -e 's|\/(_?index)?\.md|\/|' \
53+
| sed -E -e 's|(^[^/]+/)([^/]+/)|\1|' -e 's|^|https://redis.io/docs/staging/|' -e 's|(\/_?index)?\.md|\/|' \
5454
| sort \
5555
| uniq)
5656

.github/workflows/k8s_apis_sync.yaml

Lines changed: 80 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
run: |-
5151
mkdir artifacts
5252
mkdir templates
53-
cp content/operate/kubernetes/reference/kubernetes-api-reference-template.tmpl templates/template.tmpl
53+
cp content/operate/kubernetes/reference/api/kubernetes-api-reference-template.tmpl templates/template.tmpl
5454
5555
crdoc --resources crds/reaadb_crd.yaml --output artifacts/redis_enterprise_active_active_database_api.md --template templates/template.tmpl
5656
sed -E -i 's/^### RedisEnterpriseActiveActiveDatabase\./### /g' artifacts/redis_enterprise_active_active_database_api.md
@@ -80,6 +80,80 @@ jobs:
8080
sed -E -i 's/\[index\]/\[\]/g' artifacts/redis_enterprise_remote_cluster_api.md
8181
awk '/(#[^")]+)index/ {gsub(/index/,"")}; {print}' artifacts/redis_enterprise_remote_cluster_api.md > _tmp.md && mv _tmp.md artifacts/redis_enterprise_remote_cluster_api.md
8282
83+
- name: 'Remove fields without description'
84+
run: |-
85+
file="artifacts/redis_enterprise_cluster_api.md"
86+
empty_fields_file="content/operate/kubernetes/reference/api/redis_enterprise_cluster_empty_fields"
87+
88+
# Read empty fields and process them
89+
while IFS= read -r field; do
90+
# Skip empty lines and comments
91+
[[ -z "$field" || "$field" =~ ^# ]] && continue
92+
93+
# Convert field path to section header pattern
94+
section_pattern="${field}"
95+
96+
# Remove subsections that go deeper than [index] level
97+
# Keep: spec.extraEnvVars
98+
# Keep: spec.extraEnvVars[index]
99+
# Remove: spec.extraEnvVars[index].valueFrom
100+
# Remove: spec.extraEnvVars[index].valueFrom.fieldRef
101+
awk -v base_pattern="${section_pattern}" '
102+
BEGIN { skip = 0 }
103+
/^### / {
104+
# Check if this line matches a pattern we want to remove
105+
section = $0
106+
gsub(/^### /, "", section)
107+
108+
# If it starts with our base pattern
109+
if (index(section, base_pattern) == 1) {
110+
remainder = substr(section, length(base_pattern) + 1)
111+
112+
# If remainder is empty, keep it (main section)
113+
if (remainder == "") {
114+
skip = 0
115+
}
116+
# If remainder is just [index], keep it
117+
else if (remainder == "[index]") {
118+
skip = 0
119+
}
120+
# If remainder starts with [index]. (has more after [index]), remove it
121+
else if (index(remainder, "[index].") == 1) {
122+
skip = 1
123+
next
124+
}
125+
# If remainder starts with . (direct subsection), remove it
126+
else if (index(remainder, ".") == 1) {
127+
skip = 1
128+
next
129+
}
130+
# If remainder starts with []. (direct subsection), remove it
131+
else if (index(remainder, "[].") == 1) {
132+
skip = 1
133+
next
134+
}
135+
# Otherwise keep it
136+
else {
137+
skip = 0
138+
}
139+
} else {
140+
# Different section, stop skipping
141+
skip = 0
142+
}
143+
}
144+
145+
skip == 0 { print }
146+
' "$file" > "${file}.tmp" && mv "${file}.tmp" "$file"
147+
148+
done < "$empty_fields_file"
149+
150+
- name: 'Fix link titles'
151+
run: |-
152+
sed -E -i 's/linkTitle: RedisEnterpriseActiveActiveDatabase API Reference/linkTitle: REAADB API/g' artifacts/redis_enterprise_active_active_database_api.md
153+
sed -E -i 's/linkTitle: RedisEnterpriseCluster API Reference/linkTitle: REC API/g' artifacts/redis_enterprise_cluster_api.md
154+
sed -E -i 's/linkTitle: RedisEnterpriseDatabase API Reference/linkTitle: REDB API/g' artifacts/redis_enterprise_database_api.md
155+
sed -E -i 's/linkTitle: RedisEnterpriseRemoteCluster API Reference/linkTitle: RERC API/g' artifacts/redis_enterprise_remote_cluster_api.md
156+
83157
- name: 'Generate YAML snippets'
84158
run: |-
85159
function formatYamlSnippet() {
@@ -128,14 +202,12 @@ jobs:
128202
129203
git checkout -b "${BRANCH}"
130204
131-
cp artifacts/redis_enterprise_active_active_database_api.md content/operate/kubernetes/reference/
132-
cp artifacts/redis_enterprise_cluster_api.md content/operate/kubernetes/reference/
133-
cp artifacts/redis_enterprise_database_api.md content/operate/kubernetes/reference/
134-
cp artifacts/redis_enterprise_remote_cluster_api.md content/operate/kubernetes/reference/
135-
136-
git apply content/operate/kubernetes/reference/kubernetes-api-reference-frontmatter.patch
205+
cp artifacts/redis_enterprise_active_active_database_api.md content/operate/kubernetes/reference/api/
206+
cp artifacts/redis_enterprise_cluster_api.md content/operate/kubernetes/reference/api/
207+
cp artifacts/redis_enterprise_database_api.md content/operate/kubernetes/reference/api/
208+
cp artifacts/redis_enterprise_remote_cluster_api.md content/operate/kubernetes/reference/api/
137209
138-
git add content/operate/kubernetes/reference/
210+
git add content/operate/kubernetes/reference/api/
139211
git add content/embeds/k8s/
140212
141213
git commit -m "k8s api docs ${RELEASE}"

build/local_examples.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,24 @@ def get_client_name_from_language(language: str) -> str:
5151
return LANGUAGE_TO_CLIENT.get(language, language.title())
5252

5353

54+
def get_client_name_from_language_and_path(language: str, path: str) -> str:
55+
"""Get client name from language with path-based overrides.
56+
57+
For Java (.java) files, override based on path substrings:
58+
- If 'lettuce-async' in path -> Java-Async
59+
- If 'lettuce-reactive' in path -> Java-Reactive
60+
61+
Substring checks are case-sensitive and can appear anywhere in the path.
62+
"""
63+
if language == 'java':
64+
if 'lettuce-async' in path:
65+
return 'Java-Async'
66+
if 'lettuce-reactive' in path:
67+
return 'Java-Reactive'
68+
# Default behavior for all languages (and Java fallback)
69+
return get_client_name_from_language(language)
70+
71+
5472
def get_example_id_from_file(path: str) -> str:
5573
"""Extract example ID from the first line of a file."""
5674
try:
@@ -136,8 +154,8 @@ def process_local_examples(local_examples_dir: str = 'local_examples',
136154
# Process with Example class
137155
example = Example(language, target_file)
138156

139-
# Get client name
140-
client_name = get_client_name_from_language(language)
157+
# Get client name (with Java path-based overrides)
158+
client_name = get_client_name_from_language_and_path(language, source_file)
141159

142160
# Create metadata
143161
example_metadata = {

config.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ tagManagerId = "GTM-TKZ6J9R"
4545
gitHubRepo = "https://github.com/redis/docs"
4646

4747
# Display and sort order for client examples
48-
clientsExamples = ["Python", "Node.js", "Java-Sync", "Java-Async", "Java-Reactive", "Go", "C#", "RedisVL"]
48+
clientsExamples = ["Python", "Node.js", "Java-Sync", "Java-Async", "Java-Reactive", "Go", "C#", "RedisVL", "PHP"]
4949
searchService = "/convai/api/search-service"
5050
ratingsService = "/docusight/api/rate"
5151

@@ -66,6 +66,7 @@ rdi_current_version = "1.12.3"
6666
"Go"={quickstartSlug="go"}
6767
"C#"={quickstartSlug="dotnet"}
6868
"RedisVL"={quickstartSlug="redis-vl"}
69+
"PHP"={quickstartSlug="php"}
6970

7071
# Markup
7172
[markup]

content/commands/info.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -551,14 +551,14 @@ _Redis Query Engine fields_
551551
* `search_fields_geoshape_Sortable`: The total number of `SORTABLE GEOSHAPE` fields across all indexes in the shard. This field appears only if its value is larger than 0. <sup>[2](#tnote-2)</sup>
552552
* `search_fields_geoshape_NoIndex`: The total number of `NOINDEX GEOSHAPE` fields across all indexes in the shard; i.e., used for sorting only but not indexed. This field appears only if its value is larger than 0. <sup>[2](#tnote-2)</sup>
553553
* `search_fields_<field>_IndexErrors`: The total number of indexing failures caused by attempts to index a document containing <field> field. <sup>[1](#tnote-1)</sup>
554-
* `search_used_memory_indexes`: The total memory allocated by all indexes in the shard in bytes. <sup>[1](#tnote-1)</sup>
555-
* `search_used_memory_indexes_human`: The total memory allocated by all indexes in the shard in MB. <sup>[1](#tnote-1)</sup>
556-
* `search_smallest_memory_index`: The memory usage of the index with the smallest memory usage in the shard in bytes. <sup>[1](#tnote-1)</sup>
557-
* `search_smallest_memory_index_human`: The memory usage of the index with the smallest memory usage in the shard in MB. <sup>[1](#tnote-1)</sup>
558-
* `search_largest_memory_index`: The memory usage of the index with the largest memory usage in the shard in bytes. <sup>[1](#tnote-1)</sup>
559-
* `search_largest_memory_index_human`: The memory usage of the index with the largest memory usage in the shard in MB. <sup>[1](#tnote-1)</sup>
560-
* `search_total_indexing_time`: The total time spent on indexing operations, excluding the background indexing of vectors in the HNSW graph. <sup>[1](#tnote-1)</sup>
561554
* `search_used_memory_vector_index`: The total memory usage of all vector indexes in the shard. <sup>[1](#tnote-1)</sup>
555+
* `search_used_memory_indexes`: The estimated total memory allocated by all indexes in the shard in bytes (including vector indexes memory accounted in `search_used_memory_vector_index`). <sup>[1](#tnote-1)</sup>
556+
* `search_used_memory_indexes_human`: The estimated total memory allocated by all indexes in the shard in MB. <sup>[1](#tnote-1)</sup>
557+
* `search_smallest_memory_index`: The estimated memory usage of the index with the smallest memory usage in the shard in bytes. <sup>[1](#tnote-1)</sup>
558+
* `search_smallest_memory_index_human`: The estimated memory usage of the index with the smallest memory usage in the shard in MB. <sup>[1](#tnote-1)</sup>
559+
* `search_largest_memory_index`: The estimated memory usage of the index with the largest memory usage in the shard in bytes. <sup>[1](#tnote-1)</sup>
560+
* `search_largest_memory_index_human`: The estimated memory usage of the index with the largest memory usage in the shard in MB. <sup>[1](#tnote-1)</sup>
561+
* `search_total_indexing_time`: The total time spent on indexing operations, excluding the background indexing of vectors in the HNSW graph. <sup>[1](#tnote-1)</sup>
562562
* `search_bytes_collected`: The total amount of memory freed by the garbage collectors from indexes in the shard memory in bytes. <sup>[1](#tnote-1)</sup>
563563
* `search_total_cycles`: The total number of garbage collection cycles executed. <sup>[1](#tnote-1)</sup>
564564
* `search_total_ms_run`: The total duration of all garbage collection cycles in the shard, measured in milliseconds. <sup>[1](#tnote-1)</sup>

content/commands/set.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -180,18 +180,20 @@ The script should be called with `EVAL ...script... 1 resource-name token-value`
180180
tab1="RESP2"
181181
tab2="RESP3" >}}
182182

183-
Any of the following:
184-
* [Nil reply](../../develop/reference/protocol-spec#bulk-strings): `GET` not given: Operation was aborted (conflict with one of the `XX`/`NX` options).
185-
* [Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`. `GET` not given: The key was set.
186-
* [Nil reply](../../develop/reference/protocol-spec#bulk-strings): `GET` given: The key didn't exist before the `SET`.
187-
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): `GET` given: The previous value of the key.
183+
* If `GET` was not specified, any of the following:
184+
* [Nil reply](../../develop/reference/protocol-spec#bulk-strings): Operation was aborted (conflict with one of the `XX`/`NX` options). The key was not set.
185+
* [Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`: The key was set.
186+
* If `GET` was specified, any of the following:
187+
* [Nil reply](../../develop/reference/protocol-spec#bulk-strings): The key didn't exist before the `SET`. If `XX` was specified, the key was not set. Otherwise, the key was set.
188+
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): The previous value of the key. If `NX` was specified, the key was not set. Otherwise, the key was set.
188189

189190
-tab-sep-
190191

191-
Any of the following:
192-
* [Null reply](../../develop/reference/protocol-spec#nulls): `GET` not given: Operation was aborted (conflict with one of the `XX`/`NX` options).
193-
* [Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`. `GET` not given: The key was set.
194-
* [Null reply](../../develop/reference/protocol-spec#nulls): `GET` given: The key didn't exist before the `SET`.
195-
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): `GET` given: The previous value of the key.
192+
* If `GET` was not specified, any of the following:
193+
* [Null reply](../../develop/reference/protocol-spec#nulls): Operation was aborted (conflict with one of the `XX`/`NX` options). The key was not set.
194+
* [Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`: The key was set.
195+
* If `GET` was specified, any of the following:
196+
* [Null reply](../../develop/reference/protocol-spec#nulls): The key didn't exist before the `SET`. If `XX` was specified, the key was not set. Otherwise, the key was set.
197+
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): The previous value of the key. If `NX` was specified, the key was not set. Otherwise, the key was set.
196198

197199
{{< /multitabs >}}

content/commands/vadd.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ is the name of the key that will hold the vector set data.
3838
<details open>
3939
<summary><code>FP32 vector or VALUES num vector</code></summary>
4040

41-
either a 32-bit floating point (FP32) blob of values or `num` floating point numbers as strings.
41+
either a 32-bit floating point (FP32) blob of values or `num` floating point numbers as strings. When using the FP32 format, the blob must use little-endian encoding. On platforms with different endianness, you should either manually adjust the byte order or use the VALUES syntax instead.
4242
</details>
4343

4444
<details open>

content/commands/vemb.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ One of the following:
8282
* [Array reply](../../develop/reference/protocol-spec#arrays): consisting of the following elements:
8383
1. The quantization type as a [simple string](../../develop/reference/protocol-spec#simple-strings): `fp32`, `bin`, or `q8`.
8484
1. A [bulk string](../../develop/reference/protocol-spec#bulk-strings) blob with the following raw data:
85-
* 4-byte floats for fp32
85+
* 4-byte floats for fp32 (little-endian encoding)
8686
* A bitmap for binary quantization
8787
* A byte array for q8
8888
1. The L2 norm, as a [simple string](../../develop/reference/protocol-spec#simple-strings), of the vector before normalization.
@@ -95,7 +95,7 @@ One of the following:
9595
* [Array reply](../../develop/reference/protocol-spec#arrays): consisting of the following elements:
9696
1. The quantization type as a [simple string](../../develop/reference/protocol-spec#simple-strings): `fp32`, `bin`, or `q8`.
9797
1. A [bulk string](../../develop/reference/protocol-spec#bulk-strings) blob with the following raw data:
98-
* 4-byte floats for fp32
98+
* 4-byte floats for fp32 (little-endian encoding)
9999
* A bitmap for binary quantization
100100
* A byte array for q8
101101
1. The [double](../../develop/reference/protocol-spec#doubles) L2 norm of the vector before normalization.

0 commit comments

Comments
 (0)