Skip to content

Update dependencies and fix site build - #6

Merged
jpicado merged 2 commits into
masterfrom
claude/repo-maintenance-dependencies-12a8a5
Jul 27, 2026
Merged

Update dependencies and fix site build#6
jpicado merged 2 commits into
masterfrom
claude/repo-maintenance-dependencies-12a8a5

Conversation

@jpicado

@jpicado jpicado commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Toolchain

  • Jekyll 3.8.5 -> 4.4.x; jekyll-feed 0.6 -> 0.17. Jekyll 3.8 does not run on
    Ruby 3.x, so the site could not be built or served locally.
  • Add webrick, which Ruby 3.0 dropped from stdlib and jekyll serve needs.
  • Drop the minima theme gem and theme: setting. The site ships its own
    layouts in _layouts, so minima only contributed an unused stylesheet and a
    pile of Sass deprecation warnings on every build.
  • Modernize the Windows platform list and wdm constraint; regenerate the lock.

Front-end libraries

  • jQuery 1.12.4 -> 3.7.1 (CVE-2020-11022 / CVE-2020-11023 XSS).
  • Bootstrap 3.3.7 -> 3.4.1 (CVE-2018-14041 / CVE-2019-8331 XSS); drop-in
    upgrade that also adds jQuery 3 support.
  • Remove lib/php-mail-form/validate.js and its script tag; the site has no
    contact form, so it was loading on every page for nothing.

Layout and markup fixes

  • Reference assets with relative_url instead of relative paths. Previously a
    404 served at a nested URL loaded no CSS or JS at all.
  • Fix the grid on the home page and the two archived index pages: an outer
    col--12 combined with col--offset-1 totals 13 columns, so every page
    scrolled sideways (26px on desktop, 16px on mobile). The offsets now live on
    the inner columns and the rendered layout is unchanged.
  • Fill in the <title> and description meta tag fallbacks from _config.yml.
  • Remove the rel="shortcut icon" href="#" hack, which makes some browsers
    re-request the page itself as the favicon.
  • Add display=swap and preconnect hints to the Google Fonts request.

Analytics

  • Remove the Universal Analytics tag. Google shut UA down in July 2023, so it
    had been loading a dead script and collecting nothing. _includes/analytics.html
    now emits a GA4 tag as soon as google_analytics: is set in _config.yml.

CI

  • Add a workflow that builds the site on Ruby 3.3 and fails on broken internal
    links.

Verified with a headless browser: all pages return 200, jQuery 3.7.1 and the
Bootstrap and easing plugins load, smooth scrolling and the mobile navbar
toggle work, no horizontal overflow at 1280/768/390px, no JS errors, and every
internal link and PDF resolves.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01SiYeacL7eeoxKTFKqcS9Xg

claude added 2 commits July 27, 2026 22:31
Toolchain
- Jekyll 3.8.5 -> 4.4.x; jekyll-feed 0.6 -> 0.17. Jekyll 3.8 does not run on
  Ruby 3.x, so the site could not be built or served locally.
- Add webrick, which Ruby 3.0 dropped from stdlib and `jekyll serve` needs.
- Drop the minima theme gem and `theme:` setting. The site ships its own
  layouts in _layouts, so minima only contributed an unused stylesheet and a
  pile of Sass deprecation warnings on every build.
- Modernize the Windows platform list and wdm constraint; regenerate the lock.

Front-end libraries
- jQuery 1.12.4 -> 3.7.1 (CVE-2020-11022 / CVE-2020-11023 XSS).
- Bootstrap 3.3.7 -> 3.4.1 (CVE-2018-14041 / CVE-2019-8331 XSS); drop-in
  upgrade that also adds jQuery 3 support.
- Remove lib/php-mail-form/validate.js and its script tag; the site has no
  contact form, so it was loading on every page for nothing.

Layout and markup fixes
- Reference assets with relative_url instead of relative paths. Previously a
  404 served at a nested URL loaded no CSS or JS at all.
- Fix the grid on the home page and the two archived index pages: an outer
  col-*-12 combined with col-*-offset-1 totals 13 columns, so every page
  scrolled sideways (26px on desktop, 16px on mobile). The offsets now live on
  the inner columns and the rendered layout is unchanged.
- Fill in the <title> and description meta tag fallbacks from _config.yml.
- Remove the `rel="shortcut icon" href="#"` hack, which makes some browsers
  re-request the page itself as the favicon.
- Add display=swap and preconnect hints to the Google Fonts request.

Analytics
- Remove the Universal Analytics tag. Google shut UA down in July 2023, so it
  had been loading a dead script and collecting nothing. _includes/analytics.html
  now emits a GA4 tag as soon as `google_analytics:` is set in _config.yml.

CI
- Add a workflow that builds the site on Ruby 3.3 and fails on broken internal
  links.

Verified with a headless browser: all pages return 200, jQuery 3.7.1 and the
Bootstrap and easing plugins load, smooth scrolling and the mobile navbar
toggle work, no horizontal overflow at 1280/768/390px, no JS errors, and every
internal link and PDF resolves.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SiYeacL7eeoxKTFKqcS9Xg
Replaces the build-only workflow with a build-and-deploy one. GitHub's
"deploy from a branch" mode builds with its own pinned Jekyll 3.10 and
ignores the Gemfile, so production was running a different Jekyll than
local development. Building the artifact here and publishing it with
actions/deploy-pages puts production on Jekyll 4.4.

- Deploy only on push to master; pull requests run the same build, the
  link check, and a guard that _site/CNAME survived, without publishing.
- baseurl stays "" on purpose: the site is served from an apex custom
  domain, so the configure-pages baseurl output must not be applied.
- configure-pages runs with enablement so it can flip the Pages source
  itself where permitted, and is non-fatal so a permissions failure
  surfaces as a clear deploy error rather than a confusing build one.
- concurrency never cancels an in-progress deploy, which would risk
  leaving the live site half-published.

Verified locally: a frozen/deployment-mode bundle install resolves against
the committed lockfile, and JEKYLL_ENV=production jekyll build plus both
checks pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SiYeacL7eeoxKTFKqcS9Xg
@jpicado
jpicado merged commit bb82914 into master Jul 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants