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

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

commit d252250cc3c06f4ec6d0a4ea178975f8f867f8b2
Author: Jean Helou <[email protected]>
AuthorDate: Fri Feb 20 13:01:12 2026 +0100

    [JAMES-4175] improves documentation build repeatability
    
    - Adds missing `bundler` command.
    - Adds Gemfile.lock so `bundle install` downloads the same artifacts.
    - gitignore jekyll output directory
    - update website build instructions
---
 docs/modules/community/pages/website.adoc | 117 ++++++++++++++++++++++--------
 flake.nix                                 |   1 +
 src/homepage/.gitignore                   |   3 +
 src/homepage/Gemfile                      |   1 +
 src/homepage/Gemfile.lock                 |  81 +++++++++++++++++++++
 5 files changed, 174 insertions(+), 29 deletions(-)

diff --git a/docs/modules/community/pages/website.adoc 
b/docs/modules/community/pages/website.adoc
index 2e831784ff..69bff57cc2 100644
--- a/docs/modules/community/pages/website.adoc
+++ b/docs/modules/community/pages/website.adoc
@@ -4,49 +4,108 @@
 The source code of website https://james.apache.org[james.apache.org] is 
located in {path}.
 Here are the instructions how to publish new changes to the website.
 
-1. Install Apache Maven 3.0.2+ and make its binary 'mvn' available on your 
PATH.
-See http://maven.apache.org/download.html#Installation.
-2. run "mvn clean site"
-3. Test the built site in your browser from the {path}/target/site folder
-4. If everything looks OK, deploy the site using "mvn clean site-deploy".
-5. Wait for the changes to replicate to the Apache web server or setup 
140.211.11.10:80 as
-a proxy to review the changes (described here: 
http://www.apache.org/dev/project-site.html)
+The website is currently composed of the output of
 
-To deploy the technical reports use the "-Psite-reports" profile.
+- The homepage build
+- The maven site
 
-For wagon-ssh-external configuration see
-http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html
+[WARNING]
+.https://issues.apache.org/jira/browse/JAMES-3187[Documentation migration]
+====
+We are migrating the content of the maven site to use antora documentation 
instead.
 
-You can alternatively use a docker container to build the website :
+Most of the useful content has been migrated but the new documentation is not 
yet published to the main site. It can be found on the 
https://james.staged.apache.org[staging version] of the website.
+====
 
-You need to build the homepage by:
+== Building the homepage
+You can use jekyll to build the website. Go into `{path}` and run the 
following command
 
-    $ docker build -t james/homepage src/homepage-docker
-    $ docker run -v $PWD:/origin -v $PWD/site:/destination james/homepage 
master
+[,shell]
+----
+$ docker run --rm -v="$PWD:/srv/jekyll:Z" -it jekyll/jekyll:$JEKYLL_VERSION  
jekyll build
+----
+
+The resulting deployable content will be available in the `{path}/_site/` 
directory.
 
 In order to test the homepage, you can use this command:
+[,shell]
+----
+$ docker run --rm -v $PWD/site:/srv/jekyll  -p 4000:4000 -it jekyll/jekyll 
jekyll serve
+----
+The site will be available at http://localhost:4000/
 
-    $ docker run --rm -v $PWD/site:/srv/jekyll  -p 4000:4000 -it 
jekyll/minimal:3.8.3 jekyll serve
 
-the site will be available at http://localhost:4000/
+If you need to update the current site, checkout the branch asf-site from 
Apache git:
+[,shell]
+----
+$ git clone https://git-wip-us.apache.org/repos/asf/james-site.git
+$ cd james-site
+$ git checkout origin/asf-site -b asf-site
+----
 
-Then you build the other pages by:
+And replace in the previous commands `$PWD/site` by 
`<james-site-clone-directory>/content`, for example:
 
-    $ docker build -t james/site src/site-docker
-    $ docker run -v $PWD/.m2:/root/.m2 -v $PWD:/origin -v 
$PWD/site:/destination james/site master
+[,shell]
+----
+$ docker run -v $PWD:/origin -v $PWD/../james-site/content:/destination 
james/homepage master
+$ docker run -v $PWD/.m2:/root/.m2 -v $PWD/../james-site/content:/origin -v 
$PWD/site:/destination james/site master
+----
 
-If you need to update the current site, checkout the branch asf-site from 
Apache git:
+Then just push the new site:
+[,shell]
+----
+$ cd ../james-site
+$ git push origin asf-site
+----
 
-    $ git clone https://git-wip-us.apache.org/repos/asf/james-site.git
-    $ cd james-site
-    $ git checkout origin/asf-site -b asf-site
+## Maven site
 
-And replace in the previous commands `$PWD/site` by 
`<james-site-clone-directory>/content`, for example:
+The maven site deploy phase uses and requires locally configuring credentials 
to enable ssh access. See
+http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html[maven-deploy-plugin's
 documentation] for more details on achieving this.
 
-    $ docker run -v $PWD:/origin -v $PWD/../james-site/content:/destination 
james/homepage master
-    $ docker run -v $PWD/.m2:/root/.m2 -v $PWD/../james-site/content:/origin 
-v $PWD/site:/destination james/site master
+### Manually
+
+1. Install Apache Maven 3.0.2+ and make its binary 'mvn' available on your 
PATH.
+See http://maven.apache.org/download.html#Installation.
+2. run `mvn clean site`
+3. Test the built site in your browser from the `{path}/target/site` folder
+4. If everything looks OK, deploy the site using `mvn clean site-deploy`.
+5. Wait for the changes to replicate to the Apache web server or setup 
140.211.11.10:80 as
+a proxy to review the changes (described here: 
http://www.apache.org/dev/project-site.html)
+
+### Docker
+
+Can be used only to build the site locally
+
+[WARNING]
+.Contribution welcome
+====
+The docker file in `src/site-docker` is currently broken:
+
+- outdated JDK (11 instead of 21)
+- "manual" download of maven from a link which doesn't resolve anymore
+
+prepare for some tinkering before building using this method.
+====
+
+[,shell]
+----
+$ docker build -t james/site src/site-docker
+$ docker run -v $PWD/.m2:/root/.m2 -v $PWD:/origin -v $PWD/site:/destination 
james/site master
+----
+
+### nix development shell
+
+Enter the xref:contributing.adoc#_experimental_nix_support[james experimental 
development shell]
+
+1. run `mvn clean site`
+2. Test the built site in your browser from the `{path}/target/site` folder
+3. If everything looks OK, deploy the site using `mvn clean site-deploy`.
+4. Wait for the changes to replicate to the Apache web server or setup 
140.211.11.10:80 as
+a proxy to review the changes (described here: 
http://www.apache.org/dev/project-site.html)
+
+### Technical reports
+
+To deploy the technical reports use any of the 3 ways above adding the 
`-Psite-reports` profile.
 
-Then just push the new site:
 
-    $ cd ../james-site
-    $ git push origin asf-site
diff --git a/flake.nix b/flake.nix
index cc9b2638f1..fb7d562565 100644
--- a/flake.nix
+++ b/flake.nix
@@ -28,6 +28,7 @@
         default = pkgs.mkShell {
           packages = with pkgs; [
             antora  # build documentation
+            bundler # homepage and blog
             cacert  # ssl certificate management
             dive    # explore generated docker images
             git     # version control
diff --git a/src/homepage/.gitignore b/src/homepage/.gitignore
new file mode 100644
index 0000000000..d317b536b9
--- /dev/null
+++ b/src/homepage/.gitignore
@@ -0,0 +1,3 @@
+_site/
+.run
+.jekyll-cache/
\ No newline at end of file
diff --git a/src/homepage/Gemfile b/src/homepage/Gemfile
index 1f0d3cd0d0..f984cef319 100644
--- a/src/homepage/Gemfile
+++ b/src/homepage/Gemfile
@@ -21,6 +21,7 @@ source 'https://rubygems.org'
 ruby RUBY_VERSION
 
 gem 'jekyll'
+gem 'webrick'
 
 #source "https://rubygems.org";
 
diff --git a/src/homepage/Gemfile.lock b/src/homepage/Gemfile.lock
new file mode 100644
index 0000000000..c2acc28395
--- /dev/null
+++ b/src/homepage/Gemfile.lock
@@ -0,0 +1,81 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    addressable (2.8.1)
+      public_suffix (>= 2.0.2, < 6.0)
+    colorator (1.1.0)
+    concurrent-ruby (1.1.10)
+    em-websocket (0.5.3)
+      eventmachine (>= 0.12.9)
+      http_parser.rb (~> 0)
+    eventmachine (1.2.7)
+    ffi (1.15.5)
+    forwardable-extended (2.6.0)
+    http_parser.rb (0.8.0)
+    i18n (1.12.0)
+      concurrent-ruby (~> 1.0)
+    jekyll (4.2.2)
+      addressable (~> 2.4)
+      colorator (~> 1.0)
+      em-websocket (~> 0.5)
+      i18n (~> 1.0)
+      jekyll-sass-converter (~> 2.0)
+      jekyll-watch (~> 2.0)
+      kramdown (~> 2.3)
+      kramdown-parser-gfm (~> 1.0)
+      liquid (~> 4.0)
+      mercenary (~> 0.4.0)
+      pathutil (~> 0.9)
+      rouge (~> 3.0)
+      safe_yaml (~> 1.0)
+      terminal-table (~> 2.0)
+    jekyll-feed (0.17.0)
+      jekyll (>= 3.7, < 5.0)
+    jekyll-sass-converter (2.2.0)
+      sassc (> 2.0.1, < 3.0)
+    jekyll-seo-tag (2.8.0)
+      jekyll (>= 3.8, < 5.0)
+    jekyll-watch (2.2.1)
+      listen (~> 3.0)
+    kramdown (2.4.0)
+      rexml
+    kramdown-parser-gfm (1.1.0)
+      kramdown (~> 2.0)
+    liquid (4.0.3)
+    listen (3.7.1)
+      rb-fsevent (~> 0.10, >= 0.10.3)
+      rb-inotify (~> 0.9, >= 0.9.10)
+    mercenary (0.4.0)
+    minima (2.5.1)
+      jekyll (>= 3.5, < 5.0)
+      jekyll-feed (~> 0.9)
+      jekyll-seo-tag (~> 2.1)
+    pathutil (0.16.2)
+      forwardable-extended (~> 2.6)
+    public_suffix (5.0.0)
+    rb-fsevent (0.11.2)
+    rb-inotify (0.10.1)
+      ffi (~> 1.0)
+    rexml (3.2.5)
+    rouge (3.30.0)
+    safe_yaml (1.0.5)
+    sassc (2.4.0)
+      ffi (~> 1.9)
+    terminal-table (2.0.0)
+      unicode-display_width (~> 1.1, >= 1.1.1)
+    unicode-display_width (1.8.0)
+    webrick (1.9.2)
+
+PLATFORMS
+  x86_64-linux-musl
+
+DEPENDENCIES
+  jekyll
+  minima
+  webrick
+
+RUBY VERSION
+   ruby 3.1.1p18
+
+BUNDLED WITH
+   2.3.25


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

Reply via email to