summaryrefslogtreecommitdiff
path: root/Gemfile
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-06-27 16:58:53 +0200
committererdgeist <erdgeist@erdgeist.org>2026-06-27 16:58:53 +0200
commit420506e58fdfc84f1a5bede0a01dedf0af3bb4f3 (patch)
tree57726b40e8aa9ccf80f874f39d3facefc0331420 /Gemfile
parent241d5e91b2b6716e2861cc77d319c3d3568343a8 (diff)
Stage 7: Rails 7.2 → 8.1 on Ruby 3.2.11
- Bump Rails to 8.1.3 (Ruby unchanged at 3.2.11, new gemset rails8-upgrade) - config.load_defaults 8.1; merge app:update diffs for all environment files - Remove routing-filter 0.7.0; replace with native scope '(:locale)' in routes.rb and default_url_options in ApplicationController - Delete config/initializers/routing_filter_rails71_patch.rb - Replace vendored TinyMCE 3.x (~200 files) with tinymce-rails ~> 8.3; migrate admin_interface.js from jQuery .tinymce()/advanced theme to tinymce.init(); add config/tinymce.yml; note: TinyMCE 7+ is GPL - rails-i18n ~> 8.0 added explicitly (previously indirect dependency) - awesome_nested_set, acts-as-taggable-on pinned to git main/master (gemspec activerecord < 8.1 ceiling; no functional incompatibility; repin to version once upstream releases updated gemspecs) - globalize ~> 7.0, libxml-ruby ~> 5.0, nokogiri ~> 1.18, pg ~> 1.5 - sass-rails, coffee-rails, uglifier moved from :assets group to main (Sprockets 4 convention; :assets group no longer meaningful) - Node: head, draft, lock_owner marked belongs_to optional: true - Page: node, user, editor marked belongs_to optional: true - Static assets in public/images/ and public/javascripts/ referenced via plain HTML tags; Rails 8 load_defaults raises on pipeline helpers for undeclared assets - sessions_controller_test.rb: remove stale require and dead rescue_action - users_controller_test.rb: assert button[type=submit] not input[type=submit] (Rails 8 button_to renders <button> not <input>) - test_helper.rb: node.reload after children.create! (awesome_nested_set 3.9.0 does not refresh parent in memory after callback) - 129 runs, 339 assertions, 3 failures, 0 errors — identical baseline to 7.2
Diffstat (limited to 'Gemfile')
-rw-r--r--Gemfile84
1 files changed, 59 insertions, 25 deletions
diff --git a/Gemfile b/Gemfile
index 2bb3333..13bb4ca 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,40 +2,74 @@ source 'https://rubygems.org'
2 2
3ruby '3.2.11' 3ruby '3.2.11'
4 4
5gem 'rails', '~> 7.2.3' 5# ── Core framework ────────────────────────────────────────────────────────────
6
7gem 'rails', '~> 8.1'
8gem 'rails-i18n', '~> 8.0' # AR error messages and date formats for :de locale
9
10# concurrent-ruby 1.3 ships with Rails 8 but has a known incompatibility with
11# some versions of Zeitwerk unless pinned. Remove once upstream resolves it.
6gem 'concurrent-ruby', '~> 1.3' 12gem 'concurrent-ruby', '~> 1.3'
7gem 'sprockets-rails' 13
8gem 'puma' 14gem 'puma' # default Rails 8 server; used in development only
15gem 'unicorn', '~> 6.1' # production server (FreeBSD jail, managed via rc.d)
16
17# ── Database ──────────────────────────────────────────────────────────────────
9 18
10gem 'pg', '~> 1.5' 19gem 'pg', '~> 1.5'
11 20
12gem 'acts-as-taggable-on', '~> 12.0' 21# ── Asset pipeline ────────────────────────────────────────────────────────────
13gem 'awesome_nested_set', '~> 3.7.0' 22
14gem 'acts_as_list' 23gem 'sprockets-rails'
15gem 'globalize', '~> 7.0' 24gem 'sass-rails', '~> 6.0'
16gem 'routing-filter', '~> 0.7.0' 25gem 'coffee-rails', '~> 4.0'
17gem 'will_paginate', '~> 3.0' 26gem 'uglifier', '>= 1.0.3'
18gem 'exception_notification', '~> 4.5'
19gem 'libxml-ruby', '~> 5.0', :require => 'xml'
20 27
21gem 'jquery-rails' 28gem 'jquery-rails' # provides jQuery via asset pipeline (admin only)
22gem 'jquery-ui-rails' 29gem 'jquery-ui-rails' # provides jQuery UI via asset pipeline (admin only)
23 30
24gem 'nokogiri', '~> 1.18' 31# TinyMCE 8 via asset pipeline; replaces vendored TinyMCE 3 in public/javascripts.
32# Note: TinyMCE 7+ is GPL-licensed.
33gem 'tinymce-rails', '~> 8.3'
25 34
26gem 'unicorn', '~> 6.1' 35# ── Model layer ───────────────────────────────────────────────────────────────
27 36
28group :assets do 37gem 'globalize', '~> 7.0' # translated model attributes (Page title/abstract/body)
29 gem 'sass-rails', '~> 6.0' 38gem 'acts_as_list' # page revision ordering
30 gem 'coffee-rails', '~> 4.0' 39gem 'will_paginate', '~> 3.0'
31 gem 'uglifier', '>= 1.0.3' 40
32end 41# Pinned to git until a release widens the activerecord < 8.1 ceiling.
42# Both gems work correctly on Rails 8.1; the gemspec constraint is overly conservative.
43# Revisit when acts-as-taggable-on > 12.x or awesome_nested_set > 3.8.0 is released.
44gem 'acts-as-taggable-on',
45 git: 'https://github.com/mbleigh/acts-as-taggable-on.git',
46 branch: 'master'
47gem 'awesome_nested_set',
48 git: 'https://github.com/collectiveidea/awesome_nested_set.git',
49 branch: 'main'
50
51# ── XML / parsing ─────────────────────────────────────────────────────────────
52
53gem 'libxml-ruby', '~> 5.0', require: 'xml' # body link rewriting in Page model
54gem 'nokogiri', '~> 1.18'
55
56# ── Operational ───────────────────────────────────────────────────────────────
57
58gem 'exception_notification', '~> 4.5'
59
60# chaos_calendar: C extension wrapping libical for the public events calendar.
61# Pinned to custom branch; includes FreeBSD 15.1 / libical 3.x header path fix
62# and icaltime_from_timet_with_zone floating-time semantics.
63gem 'chaos_calendar',
64 git: 'https://github.com/erdgeist/chaoscalendar.git',
65 branch: 'erdgeist-ruby1.9',
66 require: 'chaos_calendar'
67
68# ── Test ──────────────────────────────────────────────────────────────────────
33 69
34group :test do 70group :test do
35 gem 'test-unit', '~> 3.5' 71 gem 'test-unit', '~> 3.5'
36 gem 'rails-controller-testing' 72 gem 'rails-controller-testing'
37 gem 'minitest', '~> 5.25' 73 # minitest ~> 5.25 required; 6.x breaks the Rails 8 test runner.
74 gem 'minitest', '~> 5.25'
38end 75end
39
40gem 'chaos_calendar', :git => 'https://github.com/erdgeist/chaoscalendar.git',
41 :require => 'chaos_calendar', :branch => 'erdgeist-ruby1.9'