This is an automated email from the ASF dual-hosted git repository.

chibenwa pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 6fbeff8d76d3d367d6fc179875b3a11279bab814
Author: Benoit TELLIER <[email protected]>
AuthorDate: Mon Aug 24 00:16:52 2026 +0700

    [DOC] Systematic use of variables for versions
---
 docs/antora.yml                                    | 15 ++++++++
 .../servers/pages/distributed/operate/index.adoc   |  4 +--
 .../operate/logging/docker-compose-block.adoc      | 14 ++++----
 .../servers/pages/distributed/run/k8s-values.adoc  |  2 +-
 .../servers/pages/distributed/run/run-docker.adoc  | 42 +++++++++++++++++-----
 .../servers/pages/distributed/run/run-java.adoc    | 22 ++++++------
 .../operate/logging/docker-compose-block.adoc      | 10 +++---
 .../servers/pages/postgres/run/run-docker.adoc     | 34 +++++++++++++-----
 .../servers/pages/postgres/run/run-java.adoc       | 22 ++++++------
 9 files changed, 111 insertions(+), 54 deletions(-)

diff --git a/docs/antora.yml b/docs/antora.yml
index 7e2f1b9fdc..930183a544 100644
--- a/docs/antora.yml
+++ b/docs/antora.yml
@@ -2,6 +2,21 @@ name: james-project
 title: Apache James Server
 version: '3.10.0'
 prerelease: SNAPSHOT
+asciidoc:
+  attributes:
+    # Latest released version, as published on Maven central and Docker Hub. 
Bump on release.
+    james-version: '3.9.0@'
+    # Third party versions James is built, shipped and tested against.
+    # Bump them together with the docker-compose files of server/apps/*.
+    java-version: '21@'
+    cassandra-version: '4.1.9@'
+    opensearch-version: '2.19.2@'
+    rabbitmq-version: '4.1.1@'
+    postgresql-version: '16.9@'
+    tika-version: '3.2.3.0@'
+    cloudserver-version: 'c1ba296859690c1cbbec609aaae430f6b04b4745@'
+    fluent-bit-version: '1.5.7@'
+
 nav:
 - modules/servers/nav.adoc
 - modules/development/nav.adoc
diff --git a/docs/modules/servers/pages/distributed/operate/index.adoc 
b/docs/modules/servers/pages/distributed/operate/index.adoc
index 46b1ed8a18..f6e988bb88 100644
--- a/docs/modules/servers/pages/distributed/operate/index.adoc
+++ b/docs/modules/servers/pages/distributed/operate/index.adoc
@@ -16,9 +16,9 @@ This section sums up and links upgrade instructions for 
people willing to upgrad
 
 .Upgrade path
 |===
-| Upgrade from | Recommended upgrade path to 3.9.0
+| Upgrade from | Recommended upgrade path to {james-version}
 
-| 3.8.0 - 3.8-2
+| 3.8.0 - 3.8.2
 | Upgrade, and apply 
link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#390-version[3.9.0
 upgrade instructions]
 
 | 3.7.0 - 3.7.4
diff --git 
a/docs/modules/servers/pages/distributed/operate/logging/docker-compose-block.adoc
 
b/docs/modules/servers/pages/distributed/operate/logging/docker-compose-block.adoc
index 3a096778a3..2fe47fb0e2 100644
--- 
a/docs/modules/servers/pages/distributed/operate/logging/docker-compose-block.adoc
+++ 
b/docs/modules/servers/pages/distributed/operate/logging/docker-compose-block.adoc
@@ -1,4 +1,4 @@
-[source,docker-compose]
+[source,docker-compose,subs=attributes+]
 ----
 version: "3"
 
@@ -28,25 +28,25 @@ services:
       - "8080:8000"
 
   opensearch:
-    image: opensearchproject/opensearch:2.19.2
+    image: opensearchproject/opensearch:{opensearch-version}
     ports:
       - "9200:9200"
     environment:
       - discovery.type=single-node
 
   cassandra:
-    image: cassandra:4.1.9
+    image: cassandra:{cassandra-version}
     ports:
       - "9042:9042"
 
   rabbitmq:
-    image: rabbitmq:4.1.1-management
+    image: rabbitmq:{rabbitmq-version}-management
     ports:
       - "5672:5672"
       - "15672:15672"
 
   s3:
-    image: ghcr.io/scality/cloudserver:c1ba296859690c1cbbec609aaae430f6b04b4745
+    image: ghcr.io/scality/cloudserver:{cloudserver-version}
     container_name: s3.docker.test
     environment:
       - SCALITY_ACCESS_KEY_ID=accessKey1
@@ -56,7 +56,7 @@ services:
       - REMOTE_MANAGEMENT_DISABLE=1
 
   fluent-bit:
-    image: fluent/fluent-bit:1.5.7
+    image: fluent/fluent-bit:{fluent-bit-version}
     volumes:
       - ./fluentbit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
       - ./fluentbit/parsers.conf:/fluent-bit/etc/parsers.conf
@@ -68,7 +68,7 @@ services:
       - opensearch
 
   opensearch-dashboards:
-    image: opensearchproject/opensearch-dashboards:2.16.0
+    image: opensearchproject/opensearch-dashboards:{opensearch-version}
     environment:
       OPENSEARCH_HOSTS: http://opensearch:9200
     ports:
diff --git a/docs/modules/servers/pages/distributed/run/k8s-values.adoc 
b/docs/modules/servers/pages/distributed/run/k8s-values.adoc
index 98e496652c..4b885d3053 100644
--- a/docs/modules/servers/pages/distributed/run/k8s-values.adoc
+++ b/docs/modules/servers/pages/distributed/run/k8s-values.adoc
@@ -31,7 +31,7 @@ JMAP instance in the cluster
 |replicaImapSmtpInstanceCount |1 |The number of pods we deploy for James
 IMAP/SMTP instance in the cluster
 
-|image |apache/james:distributed-3.9.0|The James image used for
+|image |apache/james:distributed-{james-version}|The James image used for
 deployment (Cassandra - RabbitMQ - LDAP distributed James flavor)
 |===
 
diff --git a/docs/modules/servers/pages/distributed/run/run-docker.adoc 
b/docs/modules/servers/pages/distributed/run/run-docker.adoc
index edae590a75..d05ab013c1 100644
--- a/docs/modules/servers/pages/distributed/run/run-docker.adoc
+++ b/docs/modules/servers/pages/distributed/run/run-docker.adoc
@@ -44,7 +44,10 @@ Then load the distributed server docker image:
 
 Alternatively we provide convenience distribution for the latest release:
 
-    docker pull apache/james:distributed-3.9.0
+[subs=attributes+]
+----
+docker pull apache/james:distributed-{james-version}
+----
 
 === Running
 Firstly, create your own user network on Docker for the James environment:
@@ -53,30 +56,48 @@ Firstly, create your own user network on Docker for the 
James environment:
 
 You need a running *cassandra* in docker which connects to *james* network. To 
achieve this run:
 
-    $ docker run -d --network james --name=cassandra cassandra:4.1.9
+[subs=attributes+]
+----
+$ docker run -d --network james --name=cassandra cassandra:{cassandra-version}
+----
 
 You need a running *rabbitmq* in docker which connects to *james* network. To 
achieve this run:
 
-    $ docker run -d --network james --name=rabbitmq rabbitmq:4.1.1-management
+[subs=attributes+]
+----
+$ docker run -d --network james --name=rabbitmq 
rabbitmq:{rabbitmq-version}-management
+----
 
 You need a running *Zenko Cloudserver* objectstorage in docker which connects 
to *james* network. To achieve this run:
 
-    $ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 
'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' 
--name=s3 ghcr.io/scality/cloudserver:c1ba296859690c1cbbec609aaae430f6b04b4745
+[subs=attributes+]
+----
+$ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 
'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' 
--name=s3 ghcr.io/scality/cloudserver:{cloudserver-version}
+----
 
 You need a running *OpenSearch* in docker which connects to *james* network. 
To achieve this run:
 
-$ docker run -d --network james -p 9200:9200 --name=opensearch --env 
'discovery.type=single-node' opensearchproject/opensearch:2.19.2
+[subs=attributes+]
+----
+$ docker run -d --network james -p 9200:9200 --name=opensearch --env 
'discovery.type=single-node' opensearchproject/opensearch:{opensearch-version}
+----
 
 If you want to use all the JMAP search capabilities, you may also need to 
start Tika container which connects to *james* network:
 
-    $ docker run -d --network james --name=tika apache/tika:3.2.3.0
+[subs=attributes+]
+----
+$ docker run -d --network james --name=tika apache/tika:{tika-version}
+----
 
 You can find more explanation on the need of Tika in this 
xref:distributed/configure/tika.adoc[page].
 
 To run this container :
 
-    $ docker run --network james --hostname HOSTNAME -p "25:25" -p 80:80 -p 
"110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" -p 
"127.0.0.1:8000:8000" --name james_run
-        -v $PWD/keystore:/root/conf/keystore -t apache/james:distributed-3.9.0 
--generate-keystore
+[subs=attributes+]
+----
+$ docker run --network james --hostname HOSTNAME -p "25:25" -p 80:80 -p 
"110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" -p 
"127.0.0.1:8000:8000" --name james_run
+    -v $PWD/keystore:/root/conf/keystore -t 
apache/james:distributed-{james-version} --generate-keystore
+----
 
 Where :
 
@@ -123,7 +144,10 @@ You can handle attachment text extraction before indexing 
in OpenSearch. This ma
 
 Run tika connect to *james* network:
 
-    $ docker run -d --network james --name tika apache/tika:3.2.3.0
+[subs=attributes+]
+----
+$ docker run -d --network james --name tika apache/tika:{tika-version}
+----
 
 Run James:
 
diff --git a/docs/modules/servers/pages/distributed/run/run-java.adoc 
b/docs/modules/servers/pages/distributed/run/run-java.adoc
index 9506003843..3b5d25145d 100644
--- a/docs/modules/servers/pages/distributed/run/run-java.adoc
+++ b/docs/modules/servers/pages/distributed/run/run-java.adoc
@@ -5,9 +5,9 @@
 
 === Requirements
 
-* Java 11 SDK
-* Docker ∕ OpenSearch 2.1.0, RabbitMQ Management 3.8.18, S3 compatible
-ObjectStorage and Cassandra 4.0
+* Java {java-version} SDK
+* Docker ∕ OpenSearch {opensearch-version}, RabbitMQ Management 
{rabbitmq-version}, S3 compatible
+ObjectStorage and Cassandra {cassandra-version}
 * Maven 3
 
 === Building the artifacts
@@ -29,9 +29,9 @@ mvn clean install
 
 === Requirements
 
-* Cassandra 4.0
-* OpenSearch 2.1.0
-* RabbitMQ-Management 3.8.17
+* Cassandra {cassandra-version}
+* OpenSearch {opensearch-version}
+* RabbitMQ-Management {rabbitmq-version}
 * Swift ObjectStorage 2.15.1 or Zenko Cloudserver or AWS S3
 
 === James Launch
@@ -48,12 +48,12 @@ You might need to adapt it to your needs.
 You need to have a Cassandra, OpenSearch, S3 and RabbitMQ instance
 running. You can either install the servers or launch them via docker:
 
-[source,bash]
+[source,bash,subs=attributes+]
 ----
-$ docker run -d -p 9042:9042 --name=cassandra cassandra:4.1.9
-$ docker run -d --network james -p 9200:9200 --name=opensearch --env 
'discovery.type=single-node' opensearchproject/opensearch:2.19.2
-$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq 
rabbitmq:4.1.1-management
-$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 
'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' 
--name=s3 ghcr.io/scality/cloudserver:c1ba296859690c1cbbec609aaae430f6b04b4745
+$ docker run -d -p 9042:9042 --name=cassandra cassandra:{cassandra-version}
+$ docker run -d --network james -p 9200:9200 --name=opensearch --env 
'discovery.type=single-node' opensearchproject/opensearch:{opensearch-version}
+$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq 
rabbitmq:{rabbitmq-version}-management
+$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 
'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' 
--name=s3 ghcr.io/scality/cloudserver:{cloudserver-version}
 ----
 
 Once everything is set up, you just have to run the jar with:
diff --git 
a/docs/modules/servers/pages/postgres/operate/logging/docker-compose-block.adoc 
b/docs/modules/servers/pages/postgres/operate/logging/docker-compose-block.adoc
index 9c3457adb6..a32ad1aacf 100644
--- 
a/docs/modules/servers/pages/postgres/operate/logging/docker-compose-block.adoc
+++ 
b/docs/modules/servers/pages/postgres/operate/logging/docker-compose-block.adoc
@@ -1,4 +1,4 @@
-[source,docker-compose]
+[source,docker-compose,subs=attributes+]
 ----
 version: "3"
 
@@ -34,7 +34,7 @@ services:
       - discovery.type=single-node
 
   postgres:
-    image: postgres:16.9
+    image: postgres:{postgresql-version}
     ports:
       - "5432:5432"
     environment:
@@ -43,13 +43,13 @@ services:
       - POSTGRES_PASSWORD=secret1
 
   rabbitmq:
-    image: rabbitmq:4.1.1-management
+    image: rabbitmq:{rabbitmq-version}-management
     ports:
       - "5672:5672"
       - "15672:15672"
 
   s3:
-    image: registry.scality.com/cloudserver/cloudserver:8.7.25
+    image: ghcr.io/scality/cloudserver:{cloudserver-version}
     container_name: s3.docker.test
     environment:
       - SCALITY_ACCESS_KEY_ID=accessKey1
@@ -59,7 +59,7 @@ services:
       - REMOTE_MANAGEMENT_DISABLE=1
 
   fluent-bit:
-    image: fluent/fluent-bit:1.5.7
+    image: fluent/fluent-bit:{fluent-bit-version}
     volumes:
       - ./fluentbit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
       - ./fluentbit/parsers.conf:/fluent-bit/etc/parsers.conf
diff --git a/docs/modules/servers/pages/postgres/run/run-docker.adoc 
b/docs/modules/servers/pages/postgres/run/run-docker.adoc
index bd56b4f144..ba5e6c4277 100644
--- a/docs/modules/servers/pages/postgres/run/run-docker.adoc
+++ b/docs/modules/servers/pages/postgres/run/run-docker.adoc
@@ -58,7 +58,10 @@ Then load the James Postgresql server docker image:
 
 Alternatively we provide convenience distribution for the latest release:
 
-    docker pull apache/james:postgres-3.9.0
+[subs=attributes+]
+----
+docker pull apache/james:postgres-{james-version}
+----
 
 === Running with Postgresql only
 
@@ -68,12 +71,18 @@ Firstly, create your own user network on Docker for the 
James environment:
 
 You need a running *Postgresql* in docker which connects to *james* network. 
To achieve this run:
 
-    $ docker run -d --network james --name=postgres --env 'POSTGRES_DB=james' 
--env 'POSTGRES_USER=james' --env 'POSTGRES_PASSWORD=secret1' postgres:16.9
+[subs=attributes+]
+----
+$ docker run -d --network james --name=postgres --env 'POSTGRES_DB=james' 
--env 'POSTGRES_USER=james' --env 'POSTGRES_PASSWORD=secret1' 
postgres:{postgresql-version}
+----
 
 To run this container :
 
-    $ docker run --network james --hostname HOSTNAME -p "25:25" -p 80:80 -p 
"110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" -p 
"127.0.0.1:8000:8000" --name james_run
-        -v $PWD/keystore:/root/conf/keystore -t apache/james:postgres-3.9.0 
--generate-keystore
+[subs=attributes+]
+----
+$ docker run --network james --hostname HOSTNAME -p "25:25" -p 80:80 -p 
"110:110" -p "143:143" -p "465:465" -p "587:587" -p "993:993" -p 
"127.0.0.1:8000:8000" --name james_run
+    -v $PWD/keystore:/root/conf/keystore -t 
apache/james:postgres-{james-version} --generate-keystore
+----
 
 Where :
 
@@ -95,15 +104,21 @@ Same as above, except that you need to run before James 
instances of RabbitMQ, S
 
 You need a running *rabbitmq* in docker which connects to *james* network. To 
achieve this run:
 
-    $ docker run -d --network james --name=rabbitmq rabbitmq:4.1.1-management
+[subs=attributes+]
+----
+$ docker run -d --network james --name=rabbitmq 
rabbitmq:{rabbitmq-version}-management
+----
 
 You need a running *Zenko Cloudserver* objectstorage in docker which connects 
to *james* network. To achieve this run:
 
-    $ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 
'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' 
--name=s3 registry.scality.com/cloudserver/cloudserver:8.7.25
+[subs=attributes+]
+----
+$ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 
'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' 
--name=s3 ghcr.io/scality/cloudserver:{cloudserver-version}
+----
 
 You need a running *OpenSearch* in docker which connects to *james* network. 
To achieve this run:
 
-$ docker run -d --network james -p 9200:9200 --name=opensearch --env 
'discovery.type=single-node' opensearchproject/opensearch:2.19.2
+$ docker run -d --network james -p 9200:9200 --name=opensearch --env 
'discovery.type=single-node' opensearchproject/opensearch:{opensearch-version}
 
 Then run James like in the section above.
 
@@ -136,7 +151,10 @@ You can handle attachment text extraction before indexing 
in OpenSearch. This ma
 
 Run tika connect to *james* network:
 
-    $ docker run -d --network james --name tika apache/tika:3.2.0.0
+[subs=attributes+]
+----
+$ docker run -d --network james --name tika apache/tika:{tika-version}
+----
 
 Run James:
 
diff --git a/docs/modules/servers/pages/postgres/run/run-java.adoc 
b/docs/modules/servers/pages/postgres/run/run-java.adoc
index e63624c0a5..2e205d80ff 100644
--- a/docs/modules/servers/pages/postgres/run/run-java.adoc
+++ b/docs/modules/servers/pages/postgres/run/run-java.adoc
@@ -5,7 +5,7 @@
 
 === Requirements
 
-* Java 21 SDK
+* Java {java-version} SDK
 * Maven 3
 
 === Building the artifacts
@@ -29,7 +29,7 @@ mvn clean install
 
 ==== Requirements
 
-* Postgresql 16.0+
+* Postgresql {postgresql-version}+
 
 ==== James launch
 
@@ -46,9 +46,9 @@ to not have OpenSearch indexing enabled by default for the 
search.
 
 You need to have a Postgresql instance running. You can either install the 
server or launch it via docker:
 
-[source,bash]
+[source,bash,subs=attributes+]
 ----
-$ docker run -d --network james -p 5432:5432 --name=postgres --env 
'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 
'POSTGRES_PASSWORD=secret1' postgres:16.9
+$ docker run -d --network james -p 5432:5432 --name=postgres --env 
'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 
'POSTGRES_PASSWORD=secret1' postgres:{postgresql-version}
 ----
 
 Once everything is set up, you just have to run the jar with:
@@ -70,8 +70,8 @@ $ keytool -genkey -alias james -keyalg RSA -keystore 
conf/keystore
 
 ==== Requirements
 
-* Postgresql 16.0+
-* OpenSearch 2.1.0+
+* Postgresql {postgresql-version}+
+* OpenSearch {opensearch-version}+
 * RabbitMQ-Management 3.8.17+
 * Swift ObjectStorage 2.15.1+ or Zenko Cloudserver or AWS S3
 
@@ -83,12 +83,12 @@ like in the 
https://github.com/apache/james-project/tree/master/server/apps/post
 You need to have a Postgresql, OpenSearch, S3 and RabbitMQ instance
 running. You can either install the servers or launch them via docker:
 
-[source,bash]
+[source,bash,subs=attributes+]
 ----
-$ docker run -d --network james -p 5432:5432 --name=postgres --env 
'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 
'POSTGRES_PASSWORD=secret1' postgres:16.9
-$ docker run -d --network james -p 9200:9200 --name=opensearch --env 
'discovery.type=single-node' opensearchproject/opensearch:2.19.2
-$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq 
rabbitmq:4.1.1-management
-$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 
'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' 
--name=s3 registry.scality.com/cloudserver/cloudserver:8.7.25
+$ docker run -d --network james -p 5432:5432 --name=postgres --env 
'POSTGRES_DB=james' --env 'POSTGRES_USER=james' --env 
'POSTGRES_PASSWORD=secret1' postgres:{postgresql-version}
+$ docker run -d --network james -p 9200:9200 --name=opensearch --env 
'discovery.type=single-node' opensearchproject/opensearch:{opensearch-version}
+$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq 
rabbitmq:{rabbitmq-version}-management
+$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 
'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' 
--name=s3 ghcr.io/scality/cloudserver:{cloudserver-version}
 ----
 
 Once everything is set up, you just have to run the jar like in the with 
Postgresql only section.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to