From 1e7ee1a1526bcb2bc5b1ace9ff7b3de9c360cb17 Mon Sep 17 00:00:00 2001 From: Christopher Tubbs Date: Wed, 11 Feb 2026 10:54:21 -0500 Subject: [PATCH 1/2] Update for ruby 3.2 * Attempt to update for ruby 3.2 again (after ASF INFRA-27632 has been completed) * Also update README and switch to more vendor-neutral OCI standard Containerfile with podman as the reference command instead of docker --- Dockerfile => Containerfile | 0 Gemfile | 5 +-- Gemfile.lock | 87 +++++-------------------------------- README.md | 50 +++++++++++++-------- css/accumulo.scss | 2 +- 5 files changed, 43 insertions(+), 101 deletions(-) rename Dockerfile => Containerfile (100%) diff --git a/Dockerfile b/Containerfile similarity index 100% rename from Dockerfile rename to Containerfile diff --git a/Gemfile b/Gemfile index b37f1424c..4aa0e7f4d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,4 @@ -ruby '>=2.7' +ruby '>=3.2' source 'https://rubygems.org' gem 'jekyll', '>= 4.2.0' gem 'jekyll-redirect-from', '>= 0.16.0' - -gem "webrick", "~> 1.8" -gem "google-protobuf", "3.25.5" diff --git a/Gemfile.lock b/Gemfile.lock index 777bc3216..919793d08 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,6 +4,7 @@ GEM addressable (2.8.8) public_suffix (>= 2.0.2, < 8.0) base64 (0.3.0) + bigdecimal (4.0.1) colorator (1.1.0) concurrent-ruby (1.3.6) csv (3.3.5) @@ -11,14 +12,11 @@ GEM eventmachine (>= 0.12.9) http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.17.3) + ffi (1.17.3-x86_64-linux-gnu) forwardable-extended (2.6.0) - google-protobuf (3.25.5) - google-protobuf (3.25.5-aarch64-linux) - google-protobuf (3.25.5-arm64-darwin) - google-protobuf (3.25.5-x86-linux) - google-protobuf (3.25.5-x86_64-darwin) - google-protobuf (3.25.5-x86_64-linux) + google-protobuf (4.33.5-x86_64-linux-gnu) + bigdecimal + rake (>= 13) http_parser.rb (0.8.1) i18n (1.14.8) concurrent-ruby (~> 1.0) @@ -62,94 +60,29 @@ GEM pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (7.0.2) + rake (13.3.1) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) rexml (3.4.4) rouge (4.7.0) safe_yaml (1.0.5) - sass-embedded (1.77.5-aarch64-linux-android) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-aarch64-linux-gnu) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-aarch64-linux-musl) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-aarch64-mingw-ucrt) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-arm-linux-androideabi) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-arm-linux-gnueabihf) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-arm-linux-musleabihf) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-arm64-darwin) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-riscv64-linux-android) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-riscv64-linux-gnu) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-riscv64-linux-musl) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86-cygwin) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86-linux-android) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86-linux-gnu) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86-linux-musl) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86-mingw-ucrt) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86_64-cygwin) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86_64-darwin) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86_64-linux-android) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86_64-linux-gnu) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.5-x86_64-linux-musl) - google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.97.3-x86_64-linux-gnu) + google-protobuf (~> 4.31) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) unicode-display_width (2.6.0) webrick (1.9.2) PLATFORMS - aarch64-linux - aarch64-linux - aarch64-linux-android - aarch64-linux-musl - aarch64-mingw-ucrt - arm-linux - arm-linux - arm-linux-androideabi - arm-linux-musl - arm-linux-musleabihf - arm64-darwin - riscv64-linux - riscv64-linux-android - riscv64-linux-musl - x86-cygwin - x86-linux - x86-linux - x86-linux-android - x86-linux-musl - x86-mingw-ucrt - x86_64-cygwin - x86_64-darwin x86_64-linux - x86_64-linux-android - x86_64-linux-musl DEPENDENCIES - google-protobuf (= 3.25.5) jekyll (>= 4.2.0) jekyll-redirect-from (>= 0.16.0) - webrick (~> 1.8) RUBY VERSION - ruby 3.3.4p94 + ruby 3.2.2 BUNDLED WITH - 2.5.16 + 4.0.6 diff --git a/README.md b/README.md index a61c5adf2..603c0f011 100644 --- a/README.md +++ b/README.md @@ -107,44 +107,56 @@ HTML styled "just right". Jekyll will print a local URL where the site can be viewed (usually, [http://0.0.0.0:4000/](http://0.0.0.0:4000/)). -### Testing using Docker environment +### Testing using a Container environment A containerized development environment can be built using the local -Dockerfile. You can build it with the following command: +Containerfile. You can build it with the following command: ```bash -docker build -t webdev . +podman build -t webdev . ``` This action will produce a `webdev` image, with all the website's build -prerequisites preinstalled. When a container is run from this image, it -will perform a `jekyll serve` command with the polling option enabled, -so that changes you make locally will be immediately reflected after -reloading the page in your browser. - -When you run a container using the webdev image, your current working -directory will be mounted, so that any changes made by the build inside -the container will be reflected in your local workspace. This is done with -the `-v` flag. To run the container, execute the following command: +prerequisites preinstalled. When a container is run from this image, it will +perform a `jekyll serve` command with the polling option enabled, so that +changes you make locally will be immediately reflected after reloading the page +in your browser. To run the container, execute the following command: ```bash -docker run -d -v "$PWD":/mnt/workdir -p 4000:4000 webdev +podman run -i -t --rm -v "$(pwd)":/mnt/workdir:Z -p 4000:4000 webdev ``` +Flags used in this command are as follows: + +* `-i` : run interactively, to send keyboard commands to the process +* `-t` : allocate a psuedo-TTY, to send signals like with Ctrl-C to exit +* `--rm` : clean up the container resources after exiting +* `-v "$(pwd)":/mnt/workdir:Z` : mount your current working directory, so that + any changes made by the build inside the container will be reflected in the + local workspace on the host; `:Z` causes the host files to be labeled for + SELinux, so the container can access them; the most recent container running + will relabel for its own access; use lower-case `:z` instead, if you need the + directory to be shared across multiple running containers at the same time; + restore any labels to their system defaults with `restorecon -RFv .`. +* `-p 4000:4000` : forward port TCP from the container to the host, so you can + view the served Jekyll site in a browser on the host + While this container is running, you will be able to review the rendered website in your local browser at [http://127.0.0.1:4000/](http://127.0.0.1:4000/). Shell access can be obtained by overriding the default container command. -This is useful for adding new gems, or modifying the Gemfile.lock for updating -existing dependencies. +This is useful for adding new gems to `Gemfile` or to run `bundle update` to +update the existing dependencies in `Gemfile.lock`. + +When using shell access, the local directory must be mounted to ensure the +`Gemfile` and `Gemfile.lock` updates are reflected in your local environment so +you can create a commit and submit a PR. -When using shell access, the local directory must be mounted to ensure -the Gemfile and Gemfile.lock updates are reflected in your local -environment so you can create a commit and submit a PR. +To do this, execute the same command as before, but with `/bin/bash` on the end: ```bash -docker run -v "$PWD":/mnt/workdir -it webdev /bin/bash +podman run -i -t --rm -v "$(pwd)":/mnt/workdir:Z -p 4000:4000 webdev /bin/bash ``` You may need to manually delete the `_site` or `.jekyll-cache` directories if diff --git a/css/accumulo.scss b/css/accumulo.scss index 593a3474a..232388c28 100644 --- a/css/accumulo.scss +++ b/css/accumulo.scss @@ -1,7 +1,7 @@ --- --- -@import "syntax-highlighting"; +@use "syntax-highlighting"; table { margin: 10px 0px 30px 0px; From 16e11c7a4a00f5cd22c69a2f4b1ff3ac9dbccaac Mon Sep 17 00:00:00 2001 From: Christopher Tubbs Date: Wed, 11 Feb 2026 16:23:26 -0500 Subject: [PATCH 2/2] Add `-f Containerfile` Add the optional podman parameter so the same commands work with both docker and podman --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 603c0f011..21f18be1e 100644 --- a/README.md +++ b/README.md @@ -109,11 +109,14 @@ Jekyll will print a local URL where the site can be viewed (usually, ### Testing using a Container environment +Note: The example commands below use `podman`, but you can replace it with a +compatible tool, such as `docker`. + A containerized development environment can be built using the local Containerfile. You can build it with the following command: ```bash -podman build -t webdev . +podman build -t webdev -f Containerfile . ``` This action will produce a `webdev` image, with all the website's build