From 7b50c2ec2d48859833196371be8aba054e6d99a3 Mon Sep 17 00:00:00 2001 From: mani2106 Date: Tue, 30 Sep 2025 19:43:08 +0530 Subject: [PATCH 1/5] Ruby and gem upgrade --- Gemfile | 40 +++++++++++++++++++++++----------------- docker-compose.yml | 4 ++-- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Gemfile b/Gemfile index 4d750b1..81d3f4e 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,7 @@ source "https://rubygems.org" + +ruby "~> 3.3.0" + # Hello! This is where you manage which Jekyll version is used to run. # When you want to use a different version, change it below, save the # file and run `bundle install`. Run Jekyll with `bundle exec`, like so: @@ -7,37 +10,40 @@ source "https://rubygems.org" # # This will help ensure the proper Jekyll version is running. # Happy Jekylling! -gem "jekyll", "~> 4.3.0" +gem "jekyll", "~> 4.3" # This is the default theme for new Jekyll sites. You may change this to anything you like. gem "minima" # To upgrade, run `bundle update github-pages`. # gem "github-pages", group: :jekyll_plugins # If you have any plugins, put them here! group :jekyll_plugins do - gem "jekyll-feed", "~> 0.15" - gem 'jekyll-octicons' - gem 'jekyll-remote-theme' - gem "jekyll-twitter-plugin" - gem 'jekyll-relative-links' - gem 'jekyll-seo-tag' - gem 'jekyll-toc' - gem 'jekyll-gist' - gem 'jekyll-paginate' - gem 'jekyll-sitemap' + gem "jekyll-feed", "~> 0.17" + gem 'jekyll-octicons', "~> 19.8" + gem 'jekyll-remote-theme', "~> 0.4" + gem "jekyll-twitter-plugin", "~> 2.1" + gem 'jekyll-relative-links', "~> 0.7" + gem 'jekyll-seo-tag', "~> 2.8" + gem 'jekyll-toc', "~> 0.19" + gem 'jekyll-gist', "~> 1.5" + gem 'jekyll-paginate', "~> 1.1" + gem 'jekyll-sitemap', "~> 1.4" end -gem "kramdown-math-katex" -gem "jemoji" +gem "kramdown-math-katex", "~> 1.0" +gem "jemoji", "~> 0.13" # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem # and associated library. install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do - gem "tzinfo", "~> 1.2" - gem "tzinfo-data" + gem "tzinfo", "~> 2.0" + gem "tzinfo-data", "~> 1.2024" end # Performance-booster for watching directories on Windows -gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform? +gem "wdm", "~> 0.2", :install_if => Gem.win_platform? -gem "faraday", "< 1.0" +gem "nokogiri", "~> 1.18" +gem "rexml", "~> 3.4" +gem "activesupport", "~> 7.2" +gem "faraday", "~> 2.12" diff --git a/docker-compose.yml b/docker-compose.yml index 8989cfc..14b1e20 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -34,11 +34,11 @@ services: jekyll: working_dir: /data - image: jekyll/jekyll:4 + image: ruby:3.3-alpine restart: unless-stopped ports: - "4000:4000" volumes: - .:/data/ command: > - bash -c "bundle install && chmod -R u+rw . && jekyll serve --host 0.0.0.0 --trace --strict_front_matter" + sh -c "apk add --no-cache build-base openssl-dev && gem install bundler && bundle install && chmod -R u+rw . && bundle exec jekyll serve --host 0.0.0.0 --trace --strict_front_matter" From 2ce4f51276768bb9e9a05e2a08ef922f19285e8a Mon Sep 17 00:00:00 2001 From: mani2106 Date: Tue, 30 Sep 2025 19:52:00 +0530 Subject: [PATCH 2/5] Update maintenace procedures --- MAINTENANCE_PROCEDURES.md | 407 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 407 insertions(+) create mode 100644 MAINTENANCE_PROCEDURES.md diff --git a/MAINTENANCE_PROCEDURES.md b/MAINTENANCE_PROCEDURES.md new file mode 100644 index 0000000..ac5cb03 --- /dev/null +++ b/MAINTENANCE_PROCEDURES.md @@ -0,0 +1,407 @@ +# Gemfile Security Maintenance Procedures + +**Document Version:** 1.0 +**Last Updated:** September 30, 2025 +**Maintainer:** Blog Security Team + +## Overview + +This document establishes ongoing maintenance procedures for the Jekyll blog's Ruby gem dependencies to ensure continued security and functionality. These procedures are designed to prevent security vulnerabilities from accumulating and maintain the blog's operational integrity. + +## Regular Maintenance Schedule + +### Monthly Security Review (1st of each month) +- **Duration:** 30-60 minutes +- **Frequency:** Monthly +- **Priority:** High (Security Critical) + +#### Tasks: +1. Review GitHub Dependabot alerts +2. Check for new gem security updates +3. Plan and execute critical security updates +4. Update security documentation + +### Quarterly Dependency Updates (1st of each quarter) +- **Duration:** 2-4 hours +- **Frequency:** Quarterly (January, April, July, October) +- **Priority:** Medium (Maintenance) + +#### Tasks: +1. Update all gems to latest stable versions +2. Test complete blog functionality +3. Update version constraints if needed +4. Document changes and improvements + +### Annual Major Updates (January) +- **Duration:** 4-8 hours +- **Frequency:** Annually +- **Priority:** Medium (Strategic) + +#### Tasks: +1. Evaluate Ruby version upgrades +2. Consider Jekyll major version updates +3. Review and update all gem constraints +4. Comprehensive security audit + +## Security Update Procedures + +### 1. GitHub Dependabot Alert Response + +#### Immediate Response (Within 24 hours for Critical/High) +```bash +# Step 1: Review the alert +# - Check GitHub repository security tab +# - Assess severity and impact +# - Determine affected functionality + +# Step 2: Create working branch +git checkout -b security-update-$(date +%Y%m%d) + +# Step 3: Backup current state +cp Gemfile Gemfile.backup.$(date +%Y%m%d) +cp Gemfile.lock Gemfile.lock.backup.$(date +%Y%m%d) +``` + +#### Update Process +```bash +# Step 4: Update specific vulnerable gem +# For example, if nokogiri has a security update: +bundle update nokogiri + +# Step 5: Test build +bundle exec jekyll build + +# Step 6: Test functionality (see testing checklist below) +# Step 7: Commit changes if tests pass +git add Gemfile Gemfile.lock +git commit -m "Security update: [gem_name] to resolve CVE-YYYY-NNNNN" + +# Step 8: Deploy and monitor +``` + +### 2. Proactive Security Monitoring + +#### Weekly Security Scan +```bash +# Check for outdated gems with known vulnerabilities +bundle outdated + +# If bundle-audit is available, run security audit +bundle audit check --update +``` + +#### Security Information Sources +- **GitHub Dependabot Alerts:** Primary source for this repository +- **Ruby Security Announcements:** https://www.ruby-lang.org/en/security/ +- **RubySec Database:** https://rubysec.com/ +- **CVE Database:** https://cve.mitre.org/ + +## Routine Gem Update Procedures + +### 1. Monthly Minor Updates + +#### Preparation +```bash +# Create update branch +git checkout -b gem-updates-$(date +%Y%m) + +# Backup current state +cp Gemfile Gemfile.backup.$(date +%Y%m%d) +cp Gemfile.lock Gemfile.lock.backup.$(date +%Y%m%d) + +# Check current status +bundle outdated +``` + +#### Update Process +```bash +# Update gems with patch-level changes only +bundle update --patch + +# If no patch updates available, consider minor updates for security gems +bundle update nokogiri rexml activesupport faraday + +# Test build and functionality +bundle exec jekyll build +``` + +### 2. Quarterly Major Updates + +#### Pre-Update Assessment +1. **Review Changelog:** Check gem changelogs for breaking changes +2. **Compatibility Check:** Verify Jekyll and plugin compatibility +3. **Backup Strategy:** Ensure rollback procedures are ready +4. **Testing Plan:** Prepare comprehensive testing checklist + +#### Update Execution +```bash +# Update all gems to latest versions +bundle update + +# Handle any version conflicts +# Review Gemfile constraints if updates fail +# Consider updating Ruby version if needed + +# Comprehensive testing (see testing procedures) +``` + +## Testing Procedures + +### Pre-Update Testing Checklist +- [ ] Current blog builds successfully (`jekyll build`) +- [ ] All pages render correctly +- [ ] Math equations display properly (KaTeX) +- [ ] Code syntax highlighting works +- [ ] RSS feed generates correctly +- [ ] SEO tags are present +- [ ] Site navigation functions +- [ ] Docker services start properly + +### Post-Update Testing Checklist + +#### Build Verification +```bash +# Clean build test +rm -rf _site +bundle exec jekyll build + +# Verify no build errors +echo "Build status: $?" + +# Check for missing files +ls -la _site/ +``` + +#### Functionality Testing +- [ ] **Homepage:** Loads correctly with proper styling +- [ ] **Blog Posts:** Sample posts render with formatting +- [ ] **Math Rendering:** Test posts with mathematical expressions +- [ ] **Code Blocks:** Verify syntax highlighting in code samples +- [ ] **Images:** Check image loading and display +- [ ] **Links:** Test internal and external links +- [ ] **RSS Feed:** Validate feed at `/feed.xml` +- [ ] **Search:** Test site search functionality if enabled +- [ ] **Mobile View:** Check responsive design + +#### Plugin-Specific Testing +- [ ] **Jekyll-feed:** RSS feed validates +- [ ] **Jekyll-seo-tag:** Meta tags present in page source +- [ ] **Jekyll-sitemap:** Sitemap.xml generates correctly +- [ ] **Jekyll-gist:** Gist embeds work (if used) +- [ ] **Jekyll-toc:** Table of contents generates +- [ ] **Jemoji:** Emoji rendering works + +### Docker Integration Testing +```bash +# Test Docker build +docker-compose build + +# Test Docker services +docker-compose up -d + +# Verify blog accessibility +curl -I http://localhost:4000 + +# Clean up +docker-compose down +``` + +## Rollback Procedures + +### Immediate Rollback (Emergency) +```bash +# If critical functionality is broken after update +git checkout HEAD~1 Gemfile Gemfile.lock +bundle install +bundle exec jekyll build + +# Verify functionality restored +# Document issue for investigation +``` + +### Selective Rollback +```bash +# Rollback specific gem to previous version +# Edit Gemfile to specify previous version +gem "problematic_gem", "~> previous.version" + +# Update only that gem +bundle update problematic_gem + +# Test functionality +bundle exec jekyll build +``` + +### Complete Rollback +```bash +# Restore from backup files +cp Gemfile.backup.YYYYMMDD Gemfile +cp Gemfile.lock.backup.YYYYMMDD Gemfile.lock + +# Reinstall previous versions +bundle install + +# Verify restoration +bundle exec jekyll build +``` + +## Version Constraint Management + +### Security-First Constraint Strategy +```ruby +# Recommended constraint patterns for security + +# Critical security gems - allow patch updates +gem "nokogiri", "~> 1.18.0" # Allows 1.18.x security patches +gem "rexml", "~> 3.4.0" # Allows 3.4.x security patches +gem "activesupport", "~> 7.2.0" # Allows 7.2.x security patches + +# Supporting gems - allow minor updates +gem "faraday", "~> 2.12" # Allows 2.x updates +gem "jekyll-feed", "~> 0.17" # Allows 0.x updates + +# Stable gems - allow patch updates +gem "jekyll", "~> 4.3.0" # Keep Jekyll stable +``` + +### Constraint Update Guidelines +1. **Never use exact versions** (`gem "name", "1.2.3"`) - prevents security updates +2. **Avoid overly restrictive ranges** (`gem "name", "~> 1.2.3"`) - may block security patches +3. **Use semantic versioning appropriately:** + - `~> 1.2` allows 1.x updates (minor and patch) + - `~> 1.2.0` allows 1.2.x updates (patch only) + - `>= 1.2.0` allows any version >= 1.2.0 + +## Troubleshooting Common Issues + +### Dependency Conflicts +```bash +# Issue: Bundle install fails with version conflicts +# Solution: Identify conflicting gems +bundle install --verbose + +# Check dependency tree +bundle viz --format=png --requirements + +# Resolve by updating constraints or finding compatible versions +``` + +### Build Failures After Updates +```bash +# Issue: Jekyll build fails after gem updates +# Diagnosis: Check error messages +bundle exec jekyll build --verbose + +# Common solutions: +# 1. Clear Jekyll cache +bundle exec jekyll clean + +# 2. Regenerate Gemfile.lock +rm Gemfile.lock +bundle install + +# 3. Check for plugin incompatibilities +# Temporarily disable plugins to isolate issues +``` + +### Performance Issues +```bash +# Issue: Slow build times after updates +# Diagnosis: Profile build performance +time bundle exec jekyll build + +# Solutions: +# 1. Check for inefficient plugins +# 2. Review large gem dependencies +# 3. Consider gem alternatives if needed +``` + +## Documentation and Communication + +### Change Documentation Requirements +1. **Update CHANGELOG.md** with all gem version changes +2. **Document breaking changes** and their resolutions +3. **Record security alerts resolved** with CVE numbers +4. **Note any functionality changes** or improvements + +### Communication Protocol +1. **Security Updates:** Immediate notification to stakeholders +2. **Major Updates:** Advance notice with testing timeline +3. **Breaking Changes:** Detailed migration guide if needed +4. **Rollbacks:** Immediate notification with cause and resolution + +## Emergency Procedures + +### Critical Security Vulnerability Response +1. **Assessment:** Evaluate severity and impact within 2 hours +2. **Planning:** Develop update strategy within 4 hours +3. **Testing:** Complete testing within 8 hours +4. **Deployment:** Deploy fix within 12 hours +5. **Verification:** Confirm resolution within 24 hours + +### Emergency Contacts +- **Primary Maintainer:** [Contact Information] +- **Backup Maintainer:** [Contact Information] +- **Security Team:** [Contact Information] + +### Emergency Rollback Authority +In case of critical issues, any team member can execute emergency rollback procedures without approval, but must: +1. Document the issue immediately +2. Notify the team within 1 hour +3. Create incident report within 24 hours + +## Tools and Resources + +### Required Tools +```bash +# Essential tools for maintenance +gem install bundler # Dependency management +gem install bundle-audit # Security auditing (optional) +``` + +### Useful Commands Reference +```bash +# Check for outdated gems +bundle outdated + +# Update specific gem +bundle update gem_name + +# Update gems with constraints +bundle update --patch # Patch-level only +bundle update --minor # Minor-level updates +bundle update --major # Major-level updates + +# Security audit (if bundle-audit installed) +bundle audit check --update + +# Dependency analysis +bundle viz --format=png --requirements +``` + +### External Resources +- **Ruby Security:** https://www.ruby-lang.org/en/security/ +- **Bundler Documentation:** https://bundler.io/ +- **Jekyll Documentation:** https://jekyllrb.com/docs/ +- **Semantic Versioning:** https://semver.org/ + +## Review and Updates + +### Procedure Review Schedule +- **Quarterly Review:** Assess procedure effectiveness +- **Annual Update:** Update procedures based on lessons learned +- **Post-Incident Review:** Update procedures after any security incidents + +### Continuous Improvement +1. **Track Metrics:** Update frequency, time to resolution, issues encountered +2. **Gather Feedback:** Team input on procedure effectiveness +3. **Update Documentation:** Keep procedures current with tooling changes +4. **Training:** Ensure team members understand procedures + +--- + +**Document Control:** +- **Version:** 1.0 +- **Approved By:** [Maintainer Name] +- **Next Review Date:** December 30, 2025 +- **Distribution:** All team members with blog maintenance responsibilities \ No newline at end of file From e510c7d16e727a590656523da6a07aeee5a52a6a Mon Sep 17 00:00:00 2001 From: mani2106 Date: Tue, 30 Sep 2025 20:02:17 +0530 Subject: [PATCH 3/5] Update lock file --- Gemfile.lock | 275 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 182 insertions(+), 93 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ef70d7a..14beb3a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,156 +1,245 @@ 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.0) - public_suffix (>= 2.0.2, < 5.0) + activesupport (7.2.2.2) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + base64 (0.3.0) + benchmark (0.4.1) + bigdecimal (3.2.3) colorator (1.1.0) - concurrent-ruby (1.2.0) - em-websocket (0.5.1) + concurrent-ruby (1.3.5) + connection_pool (2.5.4) + drb (2.2.3) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) + http_parser.rb (~> 0) eventmachine (1.2.7) - execjs (2.7.0) - faraday (0.17.5) - multipart-post (>= 1.2, < 3) - ffi (1.13.1) + execjs (2.10.0) + faraday (2.12.3) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-net_http (3.4.1) + net-http (>= 0.5.0) + ffi (1.17.2-aarch64-linux-gnu) + ffi (1.17.2-aarch64-linux-musl) + ffi (1.17.2-arm-linux-gnu) + ffi (1.17.2-arm-linux-musl) + ffi (1.17.2-arm64-darwin) + ffi (1.17.2-x86_64-darwin) + ffi (1.17.2-x86_64-linux-gnu) + ffi (1.17.2-x86_64-linux-musl) forwardable-extended (2.6.0) - gemoji (3.0.1) + gemoji (4.1.0) + google-protobuf (4.32.1) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-aarch64-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-arm64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-x86_64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-x86_64-linux-musl) + bigdecimal + rake (>= 13) html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) - http_parser.rb (0.6.0) - i18n (1.12.0) + http_parser.rb (0.8.0) + i18n (1.14.7) concurrent-ruby (~> 1.0) - jekyll (4.1.1) + jekyll (4.3.4) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) i18n (~> 1.0) - jekyll-sass-converter (~> 2.0) + jekyll-sass-converter (>= 2.0, < 4.0) jekyll-watch (~> 2.0) - kramdown (~> 2.1) + kramdown (~> 2.3, >= 2.3.1) kramdown-parser-gfm (~> 1.0) liquid (~> 4.0) - mercenary (~> 0.4.0) + mercenary (>= 0.3.6, < 0.5) pathutil (~> 0.9) - rouge (~> 3.0) + rouge (>= 3.0, < 5.0) safe_yaml (~> 1.0) - terminal-table (~> 1.8) - jekyll-feed (0.15.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-feed (0.17.0) jekyll (>= 3.7, < 5.0) jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-octicons (11.0.0) + jekyll-octicons (19.8.0) jekyll (>= 3.6, < 5.0) - octicons (= 11.0.0) + octicons (= 19.8.0) jekyll-paginate (1.1.0) - jekyll-relative-links (0.6.1) + jekyll-relative-links (0.7.0) 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 (2.1.0) - sassc (> 2.0.1, < 3.0) - jekyll-seo-tag (2.6.1) - jekyll (>= 3.3, < 5.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) jekyll-sitemap (1.4.0) jekyll (>= 3.7, < 5.0) - jekyll-toc (0.14.0) - jekyll (>= 3.8) - nokogiri (~> 1.10) + jekyll-toc (0.19.0) + jekyll (>= 3.9) + nokogiri (~> 1.12) jekyll-twitter-plugin (2.1.0) jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.12.0) - gemoji (~> 3.0) + jemoji (0.13.0) + gemoji (>= 3, < 5) html-pipeline (~> 2.2) jekyll (>= 3.0, < 5.0) - katex (0.9.0) - execjs (~> 2.7) - kramdown (2.3.1) - rexml + json (2.15.0) + katex (0.10.0) + execjs (~> 2.8) + kramdown (2.5.1) + rexml (>= 3.3.9) kramdown-math-katex (1.0.1) katex (~> 0.4) kramdown (~> 2.0) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - liquid (4.0.3) - listen (3.7.1) + liquid (4.0.4) + listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) mercenary (0.4.0) - mini_portile2 (2.8.5) - minima (2.5.1) + minima (2.5.2) jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.17.0) - multipart-post (2.1.1) - nokogiri (1.16.3) - mini_portile2 (~> 2.8.2) + minitest (5.25.5) + net-http (0.6.0) + uri + nokogiri (1.18.10-aarch64-linux-gnu) + racc (~> 1.4) + nokogiri (1.18.10-aarch64-linux-musl) + racc (~> 1.4) + nokogiri (1.18.10-arm-linux-gnu) + racc (~> 1.4) + nokogiri (1.18.10-arm-linux-musl) + racc (~> 1.4) + nokogiri (1.18.10-arm64-darwin) racc (~> 1.4) - octicons (11.0.0) - nokogiri (>= 1.6.3.1) - octokit (4.18.0) - faraday (>= 0.9) - sawyer (~> 0.8.0, >= 0.5.3) + nokogiri (1.18.10-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.18.10-x86_64-linux-gnu) + racc (~> 1.4) + nokogiri (1.18.10-x86_64-linux-musl) + racc (~> 1.4) + octicons (19.8.0) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.6) - racc (1.7.3) - rb-fsevent (0.10.4) - rb-inotify (0.10.1) + public_suffix (6.0.2) + racc (1.8.1) + rake (13.3.0) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.2.5) - rouge (3.23.0) - rubyzip (2.3.0) + rexml (3.4.4) + rouge (4.6.0) + rubyzip (2.4.1) safe_yaml (1.0.5) - sassc (2.4.0) - ffi (~> 1.9) - sawyer (0.8.2) + sass-embedded (1.93.2-aarch64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.93.2-aarch64-linux-musl) + google-protobuf (~> 4.31) + sass-embedded (1.93.2-arm-linux-gnueabihf) + google-protobuf (~> 4.31) + sass-embedded (1.93.2-arm-linux-musleabihf) + google-protobuf (~> 4.31) + sass-embedded (1.93.2-arm64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.93.2-x86_64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.93.2-x86_64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.93.2-x86_64-linux-musl) + google-protobuf (~> 4.31) + sawyer (0.9.2) addressable (>= 2.3.5) - faraday (> 0.8, < 2.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - tzinfo (1.2.10) - thread_safe (~> 0.1) - tzinfo-data (1.2020.1) + faraday (>= 0.17.3, < 3) + securerandom (0.4.1) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + tzinfo-data (1.2025.2) tzinfo (>= 1.0.0) - unicode-display_width (1.7.0) - wdm (0.1.1) - zeitwerk (2.6.6) + unicode-display_width (2.6.0) + uri (1.0.3) + wdm (0.2.0) + webrick (1.9.1) PLATFORMS - ruby + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-gnu + arm-linux-gnueabihf + arm-linux-musl + arm-linux-musleabihf + arm64-darwin + x86_64-darwin + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES - faraday (< 1.0) - jekyll (~> 4.1.0) - jekyll-feed (~> 0.12) - jekyll-gist - jekyll-octicons - jekyll-paginate - jekyll-relative-links - jekyll-remote-theme - jekyll-seo-tag - jekyll-sitemap - jekyll-toc - jekyll-twitter-plugin - jemoji - kramdown-math-katex + activesupport (~> 7.2) + faraday (~> 2.12) + jekyll (~> 4.3) + jekyll-feed (~> 0.17) + jekyll-gist (~> 1.5) + jekyll-octicons (~> 19.8) + jekyll-paginate (~> 1.1) + jekyll-relative-links (~> 0.7) + jekyll-remote-theme (~> 0.4) + jekyll-seo-tag (~> 2.8) + jekyll-sitemap (~> 1.4) + jekyll-toc (~> 0.19) + jekyll-twitter-plugin (~> 2.1) + jemoji (~> 0.13) + kramdown-math-katex (~> 1.0) minima - tzinfo (~> 1.2) - tzinfo-data - wdm (~> 0.1.1) + nokogiri (~> 1.18) + rexml (~> 3.4) + tzinfo (~> 2.0) + tzinfo-data (~> 1.2024) + wdm (~> 0.2) + +RUBY VERSION + ruby 3.3.9p170 BUNDLED WITH - 2.1.4 + 2.7.2 From 94ee629cec3afd0d034b205c36c94609f7f599b9 Mon Sep 17 00:00:00 2001 From: mani2106 Date: Tue, 30 Sep 2025 20:11:00 +0530 Subject: [PATCH 4/5] Change bundler install version --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e332101..0d1ff22 100755 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -39,9 +39,9 @@ jobs: sudo chmod -R 777 . - name: Jekyll build - uses: docker://jekyll/jekyll:4 + uses: docker://jekyll/jekyll:latest with: - args: bash -c "bundle install && jekyll build -V --strict_front_matter --trace" + args: bash -c "gem install bundler:2.7.2 && bundle install && jekyll build -V --strict_front_matter --trace" env: JEKYLL_ENV: 'production' From 2939e2ce0da9449951af860c46aecd74af63e599 Mon Sep 17 00:00:00 2001 From: mani2106 Date: Tue, 30 Sep 2025 20:14:25 +0530 Subject: [PATCH 5/5] Fix ruby version --- .github/workflows/ci.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0d1ff22..75e740e 100755 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -33,15 +33,19 @@ jobs: - name: convert notebooks and word docs to posts uses: ./_action_files + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.3' + bundler-cache: true + - name: setup directories for Jekyll build run: | rm -rf _site sudo chmod -R 777 . - name: Jekyll build - uses: docker://jekyll/jekyll:latest - with: - args: bash -c "gem install bundler:2.7.2 && bundle install && jekyll build -V --strict_front_matter --trace" + run: bundle exec jekyll build -V --strict_front_matter --trace env: JEKYLL_ENV: 'production'