From 048336ace80f35a919070949aaa40219cfb2b4f1 Mon Sep 17 00:00:00 2001 From: Tsutomu Katsube Date: Tue, 29 Apr 2025 07:56:28 +0900 Subject: [PATCH 1/6] :butterfly: Move IRuby installation process Because `jupyter` not found on Dockerfile. --- .devcontainer/Dockerfile | 5 ----- .devcontainer/onCreateCommand.sh | 3 +++ 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 04ae0f16..f800d316 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -68,8 +68,3 @@ RUN set -e; \ RUN set -e; \ $HOME/.rbenv/bin/rbenv install --verbose $RBENV_RUBY; \ $HOME/.rbenv/bin/rbenv global $RBENV_RUBY - -# Install IRuby -RUN set -e; \ - $HOME/.rbenv/bin/rbenv exec gem install iruby; \ - $HOME/.rbenv/bin/rbenv exec iruby register --force diff --git a/.devcontainer/onCreateCommand.sh b/.devcontainer/onCreateCommand.sh index 00725134..620efba1 100755 --- a/.devcontainer/onCreateCommand.sh +++ b/.devcontainer/onCreateCommand.sh @@ -22,5 +22,8 @@ git clone https://github.com/trueroad/HaranoAjiFonts.git $HOME/.fonts/HaranoAjiF # Install gems bundle install +# Install IRuby +iruby register --force + # Create Jupyter Notebooks rake quarto:convert From dbb73faad7b9d6c4a82d873e4198af6b2e1f1bf8 Mon Sep 17 00:00:00 2001 From: Tsutomu Katsube Date: Tue, 29 Apr 2025 08:00:08 +0900 Subject: [PATCH 2/6] :green_heart: Specify the kernel name explicitly Unable to `quarto convert` because the kernel name `ruby3` not `ruby`: ```console $ rake jupyter quarto convert doc/qmd/preprocess_knock_Ruby-RedAmber.qmd -o doc/notebook/preprocess_knock_Ruby-RedAmber.ipynb ERROR: Jupyter kernel 'ruby' not found. Known kernels: python3, ruby3. Run 'quarto check jupyter' with your python environment activated to check python version used. ``` Since SciRuby/iruby#317, IRuby's default kernel name has been changed to `ruby3` from `ruby`. However, we keep using `ruby` to respect Ruby's strong compatibility. Alternatively, we can modify the jupyter engine setting in qmd files from `ruby` to `ruby3`: ```yaml jupyter: ruby3 ``` However, this approach requires updating all qmd files whenever Ruby's major version changes. We don't want to pay that maintenance cost. --- .devcontainer/onCreateCommand.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/onCreateCommand.sh b/.devcontainer/onCreateCommand.sh index 620efba1..ce5f3474 100755 --- a/.devcontainer/onCreateCommand.sh +++ b/.devcontainer/onCreateCommand.sh @@ -23,7 +23,7 @@ git clone https://github.com/trueroad/HaranoAjiFonts.git $HOME/.fonts/HaranoAjiF bundle install # Install IRuby -iruby register --force +iruby register --force --name=ruby # Create Jupyter Notebooks rake quarto:convert From 936bbeebe3a12b348807982fed5e7ac69e333ed5 Mon Sep 17 00:00:00 2001 From: Tsutomu Katsube Date: Sat, 3 May 2025 05:50:50 +0900 Subject: [PATCH 3/6] :up: Upgrade base image in devcontainer --- .devcontainer/Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index f800d316..2b024bf8 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,4 @@ -# [Choice] debian-11, debian-10, ubuntu-22.04, ubuntu-20.04, ubuntu-18.04 -ARG VARIANT=ubuntu-22.04 +ARG VARIANT=ubuntu-24.04 FROM mcr.microsoft.com/devcontainers/base:${VARIANT} @@ -31,7 +30,7 @@ RUN set -e; \ # Install Apache Arrow ARG APACHE_ARROW_VERSION=15.0.0-1 ARG arrow_deb_tmp=/tmp/apache-arrow-apt-source-latest.deb -ARG arrow_apt_source=https://apache.jfrog.io/artifactory/arrow/ubuntu/pool/jammy/main/a/apache-arrow-apt-source/apache-arrow-apt-source_${APACHE_ARROW_VERSION}_all.deb +ARG arrow_apt_source=https://apache.jfrog.io/artifactory/arrow/ubuntu/pool/noble/main/a/apache-arrow-apt-source/apache-arrow-apt-source_${APACHE_ARROW_VERSION}_all.deb RUN set -e; \ apt-get update; \ curl -sfSL -o ${arrow_deb_tmp} ${arrow_apt_source}; \ From e558326e29bdcec9ac2001ce0eb44ef56af8629c Mon Sep 17 00:00:00 2001 From: Tsutomu Katsube Date: Sat, 3 May 2025 08:02:03 +0900 Subject: [PATCH 4/6] :up: Upgrade to Apache Arrow latest in devcontainer Because `apache-arrow-apt-source_15.0.0.1_all.deb` is unavailable in Ubuntu 24.04. --- .devcontainer/Dockerfile | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 2b024bf8..c71a14c6 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -28,16 +28,14 @@ RUN set -e; \ libzmq3-dev # Install Apache Arrow -ARG APACHE_ARROW_VERSION=15.0.0-1 -ARG arrow_deb_tmp=/tmp/apache-arrow-apt-source-latest.deb -ARG arrow_apt_source=https://apache.jfrog.io/artifactory/arrow/ubuntu/pool/noble/main/a/apache-arrow-apt-source/apache-arrow-apt-source_${APACHE_ARROW_VERSION}_all.deb RUN set -e; \ - apt-get update; \ - curl -sfSL -o ${arrow_deb_tmp} ${arrow_apt_source}; \ - apt-get install -y --no-install-recommends ${arrow_deb_tmp}; \ - rm -f ${arrow_deb_tmp}; \ - apt-get update; \ - apt-get install -y \ + apt update; \ + apt install -y -V ca-certificates lsb-release wget; \ + wget https://packages.apache.org/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb; \ + apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb; \ + rm -f ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb; \ + apt update; \ + apt install -y \ libarrow-dev \ libarrow-glib-dev \ libarrow-dataset-dev \ From 28c086962cb8eb93df57c66763c702715e167702 Mon Sep 17 00:00:00 2001 From: Tsutomu Katsube Date: Sat, 3 May 2025 08:20:44 +0900 Subject: [PATCH 5/6] :zap: Delegate Apache Arrow installation to rubygems-requirements-system --- .devcontainer/Dockerfile | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index c71a14c6..3ae8722d 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -27,23 +27,14 @@ RUN set -e; \ libczmq-dev \ libzmq3-dev -# Install Apache Arrow +# To install Apache Arrow RUN set -e; \ apt update; \ apt install -y -V ca-certificates lsb-release wget; \ wget https://packages.apache.org/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb; \ apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb; \ rm -f ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb; \ - apt update; \ - apt install -y \ - libarrow-dev \ - libarrow-glib-dev \ - libarrow-dataset-dev \ - libarrow-flight-dev \ - libparquet-dev \ - libparquet-glib-dev \ - libgandiva-dev \ - libgandiva-glib-dev + apt update # This Dockerfile adds a non-root user with sudo access. Use the "remoteUser" ARG USERNAME=vscode From f672b99f72f1a69622473318600a4cb2af440885 Mon Sep 17 00:00:00 2001 From: Tsutomu Katsube Date: Sat, 3 May 2025 08:39:19 +0900 Subject: [PATCH 6/6] :up: Relax red-arrow and red-parquet version Since e558326, we use Apache Arrow latest version. --- bin/Gemfile | 4 ++-- docker/Gemfile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/Gemfile b/bin/Gemfile index 8c6d2600..2a008a0d 100755 --- a/bin/Gemfile +++ b/bin/Gemfile @@ -6,9 +6,9 @@ gem 'irb' gem 'iruby' gem 'numo-narray' -gem 'red-arrow', '~> 15.0.0' +gem 'red-arrow', '>= 15.0.0' gem 'red-arrow-numo-narray' -gem 'red-parquet', '~> 15.0.0' +gem 'red-parquet', '>= 15.0.0' gem 'red_amber', path: '..' gem 'red-amber-view' diff --git a/docker/Gemfile b/docker/Gemfile index 519f2b4f..fe86c630 100755 --- a/docker/Gemfile +++ b/docker/Gemfile @@ -5,9 +5,9 @@ source 'https://rubygems.org' gem 'irb' gem 'numo-narray' -gem 'red-arrow', '~> 12.0.0' +gem 'red-arrow', '>= 12.0.0' gem 'red-arrow-numo-narray' -gem 'red-parquet', '~> 12.0.0' +gem 'red-parquet', '>= 12.0.0' gem 'red_amber' gem 'red-amber-view'