From 920b4547dbf15cf33d7c65c8a7dc15faebe24276 Mon Sep 17 00:00:00 2001 From: LukeSeifert Date: Thu, 12 Mar 2026 11:41:12 -0500 Subject: [PATCH 1/6] Add bash file to automate build --- build.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 build.sh diff --git a/build.sh b/build.sh new file mode 100644 index 00000000..3fcd0736 --- /dev/null +++ b/build.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Install rbenv if not already installed +if ! command -v rbenv &> /dev/null; then + echo "rbenv not found, installing..." + curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash + export PATH="$HOME/.rbenv/bin:$PATH" + eval "$(rbenv init -)" +else + echo "rbenv already installed, skipping..." +fi + +# Install Ruby 3.1.6 if not already installed +if ! rbenv versions | grep -q "3.1.6"; then + echo "Installing Ruby 3.1.6..." + rbenv install 3.1.6 +fi + +# Set local Ruby version +rbenv local 3.1.6 + +# Install bundler and dependencies +gem install bundler -v 2.3.26 +bundle install + +# Serve site +bundle exec jekyll serve From b24a00b63c6976818dd7cc1992d47be0a136ee68 Mon Sep 17 00:00:00 2001 From: LukeSeifert Date: Thu, 12 Mar 2026 11:41:26 -0500 Subject: [PATCH 2/6] Update gems --- Gemfile | 7 +- Gemfile.lock | 318 +++++++++++++-------------------------------------- 2 files changed, 86 insertions(+), 239 deletions(-) diff --git a/Gemfile b/Gemfile index d15cd544..8ed0097a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,14 +1,15 @@ source 'https://rubygems.org' -gem 'jekyll', '~> 3.9.2' +gem 'jekyll', '~> 4.0' gem 'kramdown', '~> 2.3.2' gem 'kramdown-parser-gfm', '~> 1.1.0' +gem 'bibtex-ruby', '~> 5.1' +gem 'ffi', '< 1.17' # needed for building in GitHub Actions gem 'webrick' gem 'rake' group :jekyll_plugins do - gem 'jekyll-scholar', '~> 5.16.0' - gem 'github-pages', '~> 227' + gem 'jekyll-scholar', '~> 6.0' end diff --git a/Gemfile.lock b/Gemfile.lock index 45b07ed2..b4ded73e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,17 +1,12 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.0.6.1) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - zeitwerk (~> 2.2, >= 2.2.2) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - base64 (0.2.0) - bibtex-ruby (4.4.7) + addressable (2.8.9) + public_suffix (>= 2.0.2, < 8.0) + base64 (0.3.0) + bibtex-ruby (5.1.6) latex-decode (~> 0.0) + bigdecimal (4.0.1) citeproc (1.1.0) date forwardable @@ -22,284 +17,135 @@ GEM citeproc-ruby (1.1.14) citeproc (~> 1.0, >= 1.0.9) csl (~> 1.6) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.23.11) - concurrent-ruby (1.3.5) + concurrent-ruby (1.3.6) csl (1.6.0) namae (~> 1.0) rexml csl-styles (1.0.1.11) csl (~> 1.0) - date (3.4.1) - dnsruby (1.72.3) - base64 (~> 0.2.0) - simpleidn (~> 0.2.1) + csv (3.3.5) + date (3.5.1) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) - ethon (0.16.0) - ffi (>= 1.15.0) eventmachine (1.2.7) - execjs (2.10.0) - faraday (2.8.1) - base64 - faraday-net_http (>= 2.0, < 3.1) - ruby2_keywords (>= 0.0.4) - faraday-net_http (3.0.2) - ffi (1.17.1-x86_64-darwin) - forwardable (1.3.3) + ffi (1.16.3) + forwardable (1.4.0) forwardable-extended (2.6.0) - gemoji (3.0.1) - github-pages (227) - github-pages-health-check (= 1.17.9) - jekyll (= 3.9.2) - jekyll-avatar (= 0.7.0) - jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.2.0) - jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.15.1) - jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.13.0) - jekyll-include-cache (= 0.2.1) - jekyll-mentions (= 1.6.0) - jekyll-optional-front-matter (= 0.3.2) - jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.3.0) - jekyll-redirect-from (= 0.16.0) - jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.3) - jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.8.0) - jekyll-sitemap (= 1.4.0) - jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.2.0) - jekyll-theme-cayman (= 0.2.0) - jekyll-theme-dinky (= 0.2.0) - jekyll-theme-hacker (= 0.2.0) - jekyll-theme-leap-day (= 0.2.0) - jekyll-theme-merlot (= 0.2.0) - jekyll-theme-midnight (= 0.2.0) - jekyll-theme-minimal (= 0.2.0) - jekyll-theme-modernist (= 0.2.0) - jekyll-theme-primer (= 0.6.0) - jekyll-theme-slate (= 0.2.0) - jekyll-theme-tactile (= 0.2.0) - jekyll-theme-time-machine (= 0.2.0) - jekyll-titles-from-headings (= 0.5.3) - jemoji (= 0.12.0) - kramdown (= 2.3.2) - kramdown-parser-gfm (= 1.1.0) - liquid (= 4.0.3) - mercenary (~> 0.3) - minima (= 2.5.1) - nokogiri (>= 1.13.6, < 2.0) - rouge (= 3.26.0) - terminal-table (~> 1.4) - github-pages-health-check (1.17.9) - addressable (~> 2.3) - dnsruby (~> 1.60) - octokit (~> 4.0) - public_suffix (>= 3.0, < 5.0) - typhoeus (~> 1.3) - html-pipeline (2.14.3) - activesupport (>= 2) - nokogiri (>= 1.4) - http_parser.rb (0.8.0) - i18n (0.9.5) + google-protobuf (4.34.0) + bigdecimal + rake (~> 13.3) + google-protobuf (4.34.0-arm64-darwin) + bigdecimal + rake (~> 13.3) + google-protobuf (4.34.0-x86-linux-gnu) + bigdecimal + rake (~> 13.3) + google-protobuf (4.34.0-x86-linux-musl) + bigdecimal + rake (~> 13.3) + google-protobuf (4.34.0-x86_64-darwin) + bigdecimal + rake (~> 13.3) + google-protobuf (4.34.0-x86_64-linux-gnu) + bigdecimal + rake (~> 13.3) + http_parser.rb (0.8.1) + i18n (1.14.8) concurrent-ruby (~> 1.0) - jekyll (3.9.2) + jekyll (4.4.1) addressable (~> 2.4) + base64 (~> 0.2) colorator (~> 1.0) + csv (~> 3.0) em-websocket (~> 0.5) - i18n (~> 0.7) - jekyll-sass-converter (~> 1.0) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) jekyll-watch (~> 2.0) - kramdown (>= 1.17, < 3) + json (~> 2.6) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) liquid (~> 4.0) - mercenary (~> 0.3.3) + mercenary (~> 0.3, >= 0.3.6) pathutil (~> 0.9) - rouge (>= 1.7, < 4) + rouge (>= 3.0, < 5.0) safe_yaml (~> 1.0) - jekyll-avatar (0.7.0) - jekyll (>= 3.0, < 5.0) - jekyll-coffeescript (1.1.1) - coffee-script (~> 2.2) - coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.4.0) - commonmarker (~> 0.22) - jekyll-commonmark-ghpages (0.2.0) - commonmarker (~> 0.23.4) - jekyll (~> 3.9.0) - jekyll-commonmark (~> 1.4.0) - rouge (>= 2.0, < 4.0) - jekyll-default-layout (0.1.4) - jekyll (~> 3.0) - jekyll-feed (0.15.1) - jekyll (>= 3.7, < 5.0) - jekyll-gist (1.5.0) - octokit (~> 4.2) - jekyll-github-metadata (2.13.0) - jekyll (>= 3.4, < 5.0) - octokit (~> 4.0, != 4.4.0) - jekyll-include-cache (0.2.1) - jekyll (>= 3.7, < 5.0) - jekyll-mentions (1.6.0) - html-pipeline (~> 2.3) - jekyll (>= 3.7, < 5.0) - jekyll-optional-front-matter (0.3.2) - jekyll (>= 3.0, < 5.0) - jekyll-paginate (1.1.0) - jekyll-readme-index (0.3.0) - jekyll (>= 3.0, < 5.0) - jekyll-redirect-from (0.16.0) - jekyll (>= 3.3, < 5.0) - jekyll-relative-links (0.6.1) - jekyll (>= 3.3, < 5.0) - jekyll-remote-theme (0.4.3) - addressable (~> 2.0) - jekyll (>= 3.5, < 5.0) - jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) - rubyzip (>= 1.3.0, < 3.0) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) - jekyll-scholar (5.16.0) - bibtex-ruby (~> 4.0, >= 4.0.13) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-sass-converter (3.1.0) + sass-embedded (~> 1.75) + jekyll-scholar (6.8.1) + bibtex-ruby (~> 5.0) citeproc-ruby (~> 1.0) csl-styles (~> 1.0) - jekyll (~> 3.0) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-swiss (1.0.0) - jekyll-theme-architect (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.6.0) - jekyll (> 3.5, < 5.0) - jekyll-github-metadata (~> 2.9) - jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.3) - jekyll (>= 3.3, < 5.0) + jekyll (~> 4.0) jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.12.0) - gemoji (~> 3.0) - html-pipeline (~> 2.2) - jekyll (>= 3.0, < 5.0) - json (2.7.6) + json (2.19.1) kramdown (2.3.2) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - latex-decode (0.4.0) - liquid (4.0.3) - listen (3.9.0) + latex-decode (0.4.2) + liquid (4.0.4) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - mercenary (0.3.6) - minima (2.5.1) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) - minitest (5.25.4) + logger (1.7.0) + mercenary (0.4.0) namae (1.2.0) racc (~> 1.7) - nokogiri (1.13.10-x86_64-darwin) - racc (~> 1.4) observer (0.1.2) - octokit (4.25.1) - faraday (>= 1, < 3) - sawyer (~> 0.9) open-uri (0.5.0) stringio time uri pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.7) + public_suffix (6.0.2) racc (1.8.1) - rake (13.2.1) + rake (13.3.1) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.4.0) - rouge (3.26.0) - ruby2_keywords (0.0.5) - rubyzip (2.4.1) + rexml (3.4.4) + rouge (4.7.0) safe_yaml (1.0.5) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.9.2) - addressable (>= 2.3.5) - faraday (>= 0.17.3, < 3) - simpleidn (0.2.3) - stringio (3.0.6) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - time (0.4.1) + sass-embedded (1.98.0) + google-protobuf (~> 4.31) + rake (>= 13) + sass-embedded (1.98.0-arm64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.98.0-x86_64-darwin) + google-protobuf (~> 4.31) + stringio (3.2.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + time (0.4.2) date - typhoeus (1.4.1) - ethon (>= 0.9.0) - tzinfo (1.2.11) - thread_safe (~> 0.1) - unicode-display_width (1.8.0) - uri (1.0.2) - webrick (1.9.1) - zeitwerk (2.6.18) + unicode-display_width (2.6.0) + uri (1.1.1) + webrick (1.9.2) PLATFORMS + arm64-darwin ruby + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux DEPENDENCIES - github-pages (~> 227) - jekyll (~> 3.9.2) - jekyll-scholar (~> 5.16.0) + bibtex-ruby (~> 5.1) + ffi (< 1.17) + jekyll (~> 4.0) + jekyll-scholar (~> 6.0) kramdown (~> 2.3.2) kramdown-parser-gfm (~> 1.1.0) rake webrick BUNDLED WITH - 1.17.2 + 2.6.9 From 25e284635c6d62c1b7f762ea88659dc7d717a126 Mon Sep 17 00:00:00 2001 From: LukeSeifert Date: Thu, 12 Mar 2026 11:41:42 -0500 Subject: [PATCH 3/6] Update readme to use new script --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a498c1e8..fbfbd7f7 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,8 @@ Clone the repo: Make your way to the top level of the source branch: `cd arfc.github.io && git checkout source` -Install the gems: -`bundle install` - -Build and serve the site locally: -`bundle exec jekyll serve` +Install the gems, build, and serve the site locally: +`bash ./build.sh` The terminal will report that your website is being served at localhost:4000. Navigate your browser there and you should see the webpage. From bba743f997316e7d7bf8e269101b2488bb28f523 Mon Sep 17 00:00:00 2001 From: LukeSeifert Date: Thu, 12 Mar 2026 11:48:33 -0500 Subject: [PATCH 4/6] Add error stopping --- build.sh | 2 ++ 1 file changed, 2 insertions(+) mode change 100644 => 100755 build.sh diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 index 3fcd0736..e38c2f1e --- a/build.sh +++ b/build.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -e # Install rbenv if not already installed if ! command -v rbenv &> /dev/null; then @@ -25,3 +26,4 @@ bundle install # Serve site bundle exec jekyll serve + From 4478ffef160dd61b86cafb70264b218dceccb329 Mon Sep 17 00:00:00 2001 From: LukeSeifert Date: Thu, 12 Mar 2026 11:57:19 -0500 Subject: [PATCH 5/6] Add a check for curl compatibility --- build.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/build.sh b/build.sh index e38c2f1e..dd49c933 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,20 @@ #!/bin/bash set -e +# Check if the curl executable is found in the system's PATH +CURL_PATH=$(type -p curl) + +if [ -n "$CURL_PATH" ]; then + if [[ "$CURL_PATH" == /snap/* ]]; then + echo "Please run `snap remove curl` and use `apt install curl`" + exit 1 + fi +else + echo "Please install curl with `apt install curl`." + exit 1 +fi + + # Install rbenv if not already installed if ! command -v rbenv &> /dev/null; then echo "rbenv not found, installing..." From 65618f142d61297769f447c08e5e43de5df9bddc Mon Sep 17 00:00:00 2001 From: LukeSeifert Date: Thu, 12 Mar 2026 12:03:27 -0500 Subject: [PATCH 6/6] Clean up messages, move error setting --- build.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index dd49c933..0b3d16d1 100755 --- a/build.sh +++ b/build.sh @@ -1,20 +1,21 @@ #!/bin/bash -set -e # Check if the curl executable is found in the system's PATH CURL_PATH=$(type -p curl) if [ -n "$CURL_PATH" ]; then if [[ "$CURL_PATH" == /snap/* ]]; then - echo "Please run `snap remove curl` and use `apt install curl`" + echo "Please run: snap remove curl" + echo "Please run: apt install curl" exit 1 fi else - echo "Please install curl with `apt install curl`." + echo "Please install curl: apt install curl." exit 1 fi +set -e # Install rbenv if not already installed if ! command -v rbenv &> /dev/null; then echo "rbenv not found, installing..."