Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .circleci/base_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ commands:

git clone --depth 1 --branch $branch_name --recurse-submodules --shallow-submodules --jobs 8 https://github.com/arangodb/arangodb.git /root/project

if [ "<< parameters.version >>" = "3.10" ] || [ "<< parameters.version >>" = "3.11" ]; then
if [ "<< parameters.version >>" = "3.10" ] || [ "<< parameters.version >>" = "3.11" ] || [ "<< parameters.version >>" = "oem" ]; then
ENTERPRISE_BRANCH="<< parameters.version >>"
else
ENTERPRISE_BRANCH="devel"
Expand Down Expand Up @@ -131,7 +131,7 @@ commands:
set +e
if [ "<< parameters.version >>" = "3.10" ]; then
cmake --preset enterprise-pr -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_LIBRARY_PATH=$OPENSSL_ROOT_DIR/lib -DUSE_MAINTAINER_MODE=Off -DUSE_GOOGLE_TESTS=Off -DUSE_FAILURE_TESTS=Off
elif [ "<< parameters.version >>" = "3.11" ]; then
elif [ "<< parameters.version >>" = "3.11" ] || [ "<< parameters.version >>" = "oem" ]; then
# The OpenSSL dir that CMake discovers needs to be adjacent to where ldap.h is located, here: /opt
cmake --preset enterprise-pr -DCMAKE_C_COMPILER=/tools/clang -DCMAKE_CXX_COMPILER=/tools/clang++ -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_LIBRARY_PATH=$OPENSSL_ROOT_DIR/lib -DOPENSSL_ROOT_DIR=/opt -DUSE_MAINTAINER_MODE=Off -DUSE_GOOGLE_TESTS=Off -DUSE_FAILURE_TESTS=Off
else
Expand Down
20 changes: 14 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ parameters:
type: string
default: "undefined"

arangodb-oem:
type: string
default: "undefined"

arangodb-3_12:
type: string
default: "undefined"
Expand Down Expand Up @@ -79,7 +83,7 @@ parameters:
jobs:
generate-config:
docker:
- image: cimg/python:3.11.1
- image: cimg/python:3.14.1
executor: continuation/default
steps:
- run:
Expand All @@ -89,7 +93,10 @@ jobs:
fetched=false
for i in $(seq 1 5); do
echo ""
res=$(curl -fsS https://api.github.com/repos/arangodb/docs-hugo/contents/.circleci?ref=$CIRCLE_SHA1) || curlStatus=$?
headers=$(mktemp)
res=$(curl -sS -D "$headers" -H "Authorization: Bearer $CIRCLECI_GITHUB_READONLY" https://api.github.com/repos/arangodb/docs-hugo/contents/.circleci?ref=$CIRCLE_SHA1) || curlStatus=$?
headers_content=$(cat "$headers")
rm "$headers"
if [[ -z "${curlStatus:-}" ]]; then
urls=$(echo "$res" | jq ".[].download_url") || jqStatus=$?
if [[ -z "${jqStatus:-}" ]]; then
Expand All @@ -99,7 +106,8 @@ jobs:
echo "jq failed with $jqStatus, input:"
echo "$res"
else
echo "curl failed with $curlStatus"
echo "curl failed with $curlStatus, rate limit?"
echo "$headers_content" | grep -i "ratelimit\|retry-after"
fi
unset curlStatus
unset jqStatus
Expand All @@ -109,14 +117,14 @@ jobs:
echo "Failed to fetch download URLs"
exit 1
fi
echo "$urls" | xargs wget
wget https://raw.githubusercontent.com/arangodb/docs-hugo/$CIRCLE_SHA1/site/data/versions.yaml
echo "$urls" | xargs -n 1 curl -sS -O -H "Authorization: Bearer $CIRCLECI_GITHUB_READONLY"
curl -sS -O -H "Authorization: Bearer $CIRCLECI_GITHUB_READONLY" https://raw.githubusercontent.com/arangodb/docs-hugo/$CIRCLE_SHA1/site/data/versions.yaml

pip install pyyaml requests

python3 generate_config.py \
--workflow << pipeline.parameters.workflow >> \
--arangodb-branches << pipeline.parameters.arangodb-3_10 >> << pipeline.parameters.arangodb-3_11 >> << pipeline.parameters.arangodb-3_12 >> << pipeline.parameters.arangodb-4_0 >> \
--arangodb-branches << pipeline.parameters.arangodb-3_10 >> << pipeline.parameters.arangodb-3_11 >> << pipeline.parameters.arangodb-oem >> << pipeline.parameters.arangodb-3_12 >> << pipeline.parameters.arangodb-4_0 >> \
--arangodb-branch << pipeline.parameters.arangodb-branch >> \
--release-type << pipeline.parameters.release-type >> \
--docs-version << pipeline.parameters.docs-version >> \
Expand Down
40 changes: 30 additions & 10 deletions .circleci/generate_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,17 +135,17 @@ def workflow_generate(config):
}
})

if version in ["3.10", "3.11"]:
if version in ["3.10", "3.11", "oem"]:
if openssl.startswith("3.0"):
compileJob["compile-linux"]["build-image"] = "arangodb/build-alpine-x86_64:3.16-gcc11.2-openssl3.0.10"
elif openssl.startswith("3.1"):
compileJob["compile-linux"]["build-image"] = "arangodb/build-alpine-x86_64:3.16-gcc11.2-openssl3.1.2"
elif openssl.startswith("1.1"):
compileJob["compile-linux"]["build-image"] = "arangodb/build-alpine-x86_64:3.16-gcc11.2-openssl1.1.1s"
else:
compileJob["compile-linux"]["build-image"] = "arangodb/ubuntubuildarangodb-311:1" # clang-16
else: # build image for 3.12.5 and devel as of 2025-02-04
compileJob["compile-linux"]["build-image"] = "arangodb/ubuntubuildarangodb-devel:11" # clang-19
compileJob["compile-linux"]["build-image"] = "arangodb/ubuntubuildarangodb-311:6" # clang-16
else: # build image for 3.12.6 and devel as of 2025-12-03
compileJob["compile-linux"]["build-image"] = "arangodb/ubuntubuildarangodb-devel:18" # clang-19

print(f"compileJob = {compileJob}")

Expand Down Expand Up @@ -186,12 +186,19 @@ def workflow_generate_scheduled(config):

for i in range(len(versions)):
version = versions[i]["name"]

if version in ["3.10", "3.11"]:
imageVersion = f"{version}-nightly"
elif version == "oem":
imageVersion = findOemVersion()
else:
imageVersion = "devel-nightly"

compileJob = {
"compile-linux": {
"context": ["sccache-aws-bucket"],
"name": f"compile-{version}",
"arangodb-branch": f"arangodb/enterprise-preview:{version}-nightly" if version in ["3.10", "3.11"] else "arangodb/enterprise-preview:devel-nightly", # TODO: Any other 3.12.x image we could use?
"arangodb-branch": f"arangodb/enterprise-preview:{imageVersion}", # TODO: Any other 3.12.x image we could use?
"version": version
}
}
Expand Down Expand Up @@ -241,17 +248,17 @@ def workflow_release_arangodb(config):
}
}

if args.docs_version in ["3.10", "3.11"]:
if args.docs_version in ["3.10", "3.11", "oem"]:
if openssl.startswith("3.0"):
compileJob["compile-linux"]["build-image"] = "arangodb/build-alpine-x86_64:3.16-gcc11.2-openssl3.0.10"
elif openssl.startswith("3.1"):
compileJob["compile-linux"]["build-image"] = "arangodb/build-alpine-x86_64:3.16-gcc11.2-openssl3.1.2"
elif openssl.startswith("1.1"):
compileJob["compile-linux"]["build-image"] = "arangodb/build-alpine-x86_64:3.16-gcc11.2-openssl1.1.1s"
else:
compileJob["compile-linux"]["build-image"] = "arangodb/ubuntubuildarangodb-devel:9" # 3.11.13
else: # build image for 3.12.4 and devel as of 2024-11-25
compileJob["compile-linux"]["build-image"] = "arangodb/ubuntubuildarangodb-devel:9"
compileJob["compile-linux"]["build-image"] = "arangodb/ubuntubuildarangodb-311:6" # clang-16
else: # build image for 3.12.6 and devel as of 2025-12-03
compileJob["compile-linux"]["build-image"] = "arangodb/ubuntubuildarangodb-devel:18" # clang-19

config["jobs"]["compile-linux"]["steps"].append({
"compile-and-dockerize-arangodb": {
Expand Down Expand Up @@ -307,7 +314,13 @@ def workflow_generate_launch_command(config):
branch = args.arangodb_branches[i]

if args.workflow != "generate": #generate scheduled etc.
branch = f"arangodb/enterprise-preview:{version}-nightly" if version in ["3.10", "3.11"] else "arangodb/enterprise-preview:devel-nightly" # TODO: Any other 3.12.x image we could use?
if version in ["3.10", "3.11"]:
imageVersion = f"{version}-nightly"
elif version == "oem":
imageVersion = findOemVersion()
else:
imageVersion = "devel-nightly"
branch = f"arangodb/enterprise-preview:{imageVersion}" # TODO: Any other 3.12.x image we could use?

if branch == "undefined":
continue
Expand Down Expand Up @@ -437,6 +450,13 @@ def findOpensslVersion(branch):
version = line.replace("OPENSSL_LINUX", "").replace(" ", "").replace("\"", "")
return version

def findOemVersion():
r = requests.get(f'https://raw.githubusercontent.com/arangodb/arangodb/3.11.14/ARANGO-VERSION')
print(f"Find latest (hotfix) version of OEM LTS")
print(f"Github response: {r.text}")
version = r.text.strip()
return version


## MAIN

Expand Down
9 changes: 9 additions & 0 deletions CIRCLECI.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ arguments are invoked:
| string | `workflow` | `generate` |
| string | `arangodb-3_10` | [Upstream reference](#upstream-references) for 3.10 |
| string | `arangodb-3_11` | [Upstream reference](#upstream-references) for 3.11 |
| string | `arangodb-oem` | [Upstream reference](#upstream-references) for OEM LTS |
| string | `arangodb-3_12` | [Upstream reference](#upstream-references) for 3.12 |
| string | `generators` | `examples` |
| string | `deploy-url` | `deploy-preview-{PR_NUMBER}` |
Expand All @@ -95,6 +96,7 @@ arguments are invoked:
| string | `workflow` | `generate` |
| string | `arangodb-3_10` | [Upstream reference](#upstream-references) for 3.10 |
| string | `arangodb-3_11` | [Upstream reference](#upstream-references) for 3.11 |
| string | `arangodb-oem` | [Upstream reference](#upstream-references) for OEM LTS |
| string | `arangodb-3_12` | [Upstream reference](#upstream-references) for 3.12 |
| string | `generators` | `examples` |
| string | `deploy-url` | `deploy-preview-{PR_NUMBER}` |
Expand Down Expand Up @@ -123,6 +125,7 @@ or for multiple versions.
| string | `workflow` | `generate` |
| string | `arangodb-3_10` | [Upstream reference](#upstream-references) for 3.10 |
| string | `arangodb-3_11` | [Upstream reference](#upstream-references) for 3.11 |
| string | `arangodb-oem` | [Upstream reference](#upstream-references) for OEM LTS |
| string | `arangodb-3_12` | [Upstream reference](#upstream-references) for 3.12 |
| string | `generators` | `examples` |
| boolean | `commit-generated` | `true` |
Expand All @@ -136,6 +139,7 @@ Documentation pull requests specify upstream references like so:
```markdown
- 3.10:
- 3.11: https://github.com/arangodb/arangodb/pull/12345
- OEM: arangodb/enterprise-preview:3.11.14.2
- 3.12: arangodb/enterprise-preview:devel-nightly
```

Expand All @@ -148,6 +152,10 @@ used by the GitHub integration to determine the feature branch to compile and
use for generating examples. Do not specify a link when manually triggering a
pipeline in CircleCI but the **branch name** (like `feature/new-aql-function`)!

For OEM, make sure to use the latest hotfix version of 3.11.14 (which is the
OEM LTS version) when specifying a Docker image. You can find the version in
<https://github.com/arangodb/arangodb/blob/3.11.14/ARANGO-VERSION>.

For 3.12, an ArangoDB Enterprise Edition image hosted on
[Docker Hub](https://hub.docker.com/) is specified. Using Docker images has the
advantage that the compilation of ArangoDB can be skipped, making the example
Expand Down Expand Up @@ -204,6 +212,7 @@ Invoke Args:
| string | `workflow` | `generate-scheduled` |
| string | `arangodb-3_10` | `arangodb/enterprise-preview:3.10-nightly` |
| string | `arangodb-3_11` | `arangodb/enterprise-preview:3.11-nightly` |
| string | `arangodb-oem` | `arangodb/enterprise-preview:3.11.14.2` (use latest hotfix) |
| string | `arangodb-3_12` | `arangodb/enterprise-preview:devel-nightly` |
| string | `generators` | `metrics error-codes exit-codes optimizer options` |
| boolean | `commit-generated` | `true` |
Expand Down
1 change: 1 addition & 0 deletions PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@

- 3.10:
- 3.11:
- OEM:
- 3.12:
- 4.0:
1 change: 1 addition & 0 deletions site/config/_default/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ module:
#excludeFiles:
# - arangodb/3.10/*
# - arangodb/3.11/*
# - arangodb/oem/*
# - arangodb/4.0/*

- source: content/arangodb/3.12
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: >-
For understanding the performance of specific queries, you can profile them to
identify slow parts of query execution plans
---
ArangoDB allows to execute your query with special instrumentation code enabled.
ArangoDB allows you to execute your query with special instrumentation code enabled.
It provides you a query plan with detailed execution statistics.

To use this in an interactive fashion on the shell you can use
Expand Down
2 changes: 1 addition & 1 deletion site/content/arangodb/3.12/_index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Recommended Resources
menuTitle: '3.12'
weight: 97
weight: 96
layout: default
---
{{< cloudbanner >}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Version 3.12
menuTitle: Version 3.12
weight: 87
weight: 86
description: ''
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Version OEM
menuTitle: Version OEM
weight: 87
description: ''
---
Loading