validation_hints 7.13.12 → 7.13.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66df5c872a7ca002b786b62f98927fadd19b303cef59db3b724033165ebee900
4
- data.tar.gz: 898e0f7188f3eb463a47695dbc1a1cd3e97cfae8e2b5fe6706b185ccd1bf23ac
3
+ metadata.gz: ba093e5a4c85fc337199399f9d837f3757ee611e71e7ff1cbec1d49b36931139
4
+ data.tar.gz: dd6f1a2ad6d92b290665c0c15362fe563c8b45114db43de515879d8ab5eaa0da
5
5
  SHA512:
6
- metadata.gz: 814bbdcb1ee8fff6d2bea8bf1d89d0d48d2f4934b0a423e1cf3da9456978d2a18830752a4b2271a83bc4c06ba4443c1545ce3b0d650e56053e503ce3404c935b
7
- data.tar.gz: 61b9b1318d7d75b6527621775a74709835fe3394901d5cb77718a2875fc5b4d1d2c5a924348f3f2cee13a3abd0ab778e8a54bd66641681d2ec1b29fe10a4da38
6
+ metadata.gz: f661e0101a5a4d6b7c7fed0d33e8b5ee90e47566e60d147d10942759542513933e6580d59d4017608bfd7a27fc04ee2e263419a7fbbd9bf715753b427dea8dab
7
+ data.tar.gz: a06624721c7868a5ec7fdf04a540c566b4487f3812ee49cad435cd219ae8ec185752872fe14c1867732fb32cda0d92c50b4cba58f7bd7ccc5efd3c92216e59ec
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to this project are documented here.
4
4
 
5
+ ## 7.13.13
6
+
7
+ ### Changed
8
+
9
+ - **Version numbering:** aligned with **inline_forms** / **inline_forms_installer** **7.13.13** (companion release; no API changes).
10
+
5
11
  ## 7.13.12
6
12
 
7
13
  ### Changed
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module ValidationHints
3
- VERSION = "7.13.12"
3
+ VERSION = "7.13.13"
4
4
  end
@@ -0,0 +1,266 @@
1
+ # Rails 8 migration — combined checklist
2
+
3
+ **Goal:** both gems and the `--example` installer path run on **Rails 8.0.x** (Ruby ≥ 3.2).
4
+
5
+ **Prerequisite:** complete [`rails-7.2-zeitwerk-plan.md`](rails-7.2-zeitwerk-plan.md) (latest Rails 7.2 + Zeitwerk on the 7.x line).
6
+
7
+ **Canonical copy:** this file (`validation_hints/stuff/rails-8-checklist.md`).
8
+ **Mirror:** `inline_forms/stuff/rails-8-checklist.md` — keep in sync when editing.
9
+
10
+ **Related (do not duplicate here):**
11
+
12
+ | Doc | Purpose |
13
+ |-----|---------|
14
+ | [`stuff/roadmap.md`](roadmap.md) | Day-to-day backlog; add a Phase 7 pointer when work starts |
15
+ | `inline_forms/stuff/towards_rails_8.md` | Post-8 product bets (auth, encryption, authorization) — **after** this checklist |
16
+ | `inline_forms/stuff/pipeline.md` | Asset pipeline modernization (orthogonal; can run in parallel late in Phase 4) |
17
+ | `inline_forms/docs/ujs-to-turbo.md` | Turbo migration — **done** on 7.x; re-verify frame flows on 8 |
18
+
19
+ **Last updated:** 2026-05-19
20
+
21
+ | Gem | Current | Target (release) |
22
+ |-----|---------|------------------|
23
+ | **validation_hints** | 7.0.0, AR `>= 7.1.5`, `< 7.2` | **8.0.0**, AR `>= 8.0`, `< 8.1` |
24
+ | **inline_forms** | 7.10.2, Rails `>= 7.1.5`, `< 7.2` | **8.0.0**, Rails `>= 8.0`, `< 8.1` |
25
+
26
+ Official upgrade path: [Upgrading Ruby on Rails](https://guides.rubyonrails.org/upgrading_ruby_on_rails.html) recommends stepping **one minor at a time**. We are on **7.1**; optional **7.2** hop is listed in Phase 1 — skip only if 8.0 green tests prove parity.
27
+
28
+ Check items off as completed (`[x]`).
29
+
30
+ ---
31
+
32
+ ## Pathway (dependency order)
33
+
34
+ ```mermaid
35
+ flowchart LR
36
+ P0[Phase 0\nBaseline 7.1 green]
37
+ P1[Phase 1\nvalidation_hints 8]
38
+ P1b[Phase 1b\noptional 7.2 hop]
39
+ P2[Phase 2\ninline_forms engine 8]
40
+ P3[Phase 3\nInstaller + example app]
41
+ P4[Phase 4\nFramework defaults + deps]
42
+ P5[Phase 5\nRelease + roadmap]
43
+ P0 --> P1
44
+ P1 --> P1b
45
+ P1b --> P2
46
+ P1 --> P2
47
+ P2 --> P3
48
+ P3 --> P4
49
+ P4 --> P5
50
+ ```
51
+
52
+ **Rule:** ship **validation_hints 8.x** before widening **inline_forms** to require it. Never pin `path:` gems in released installer Gemfiles (RubyGems / version pins only).
53
+
54
+ ---
55
+
56
+ ## Phase 0 — Baseline (Rails 7.1, both repos)
57
+
58
+ - [ ] **validation_hints:** `rvm use .` → `bundle exec rake test` — record runs / assertions / failures
59
+ - [ ] **inline_forms:** `bundle exec rake test` (or project default) — green
60
+ - [ ] **Example app gate:** build `inline_forms` gem → install in `/home/code/testInline` → `inline_forms create MyApp -d sqlite --example` → `bundle exec rails test` — record summary (expect **74 runs, 412 assertions** on current 7.10.x)
61
+ - [ ] **inline_forms.gemspec:** widen `validation_hints` to `>= 6.3, < 8.0` if still `< 7.0` (required to bundle validation_hints **7.0.0** on 7.1)
62
+ - [ ] **Bundler audit:** note advisories on 7.1.x; list gems that need version bumps for 8 (see Phase 4 table)
63
+ - [ ] Branch strategy agreed (e.g. `rails-8` in both repos, validation_hints merged first)
64
+
65
+ ---
66
+
67
+ ## Phase 1 — validation_hints → Rails 8
68
+
69
+ ### 1.1 Gemspec & bundle
70
+
71
+ - [ ] `validation_hints.gemspec`: `activerecord` / dev deps `>= 8.0`, `< 8.1`
72
+ - [ ] `bundle update activerecord activemodel activesupport`
73
+ - [ ] `lib/validation_hints/version.rb` → **8.0.0** when AR constraint ships
74
+ - [ ] `CHANGELOG.md` — Rails 8 requirement, note inline_forms must pin `validation_hints ~> 8.0`
75
+
76
+ ### 1.2 Active Model / AR compatibility audit
77
+
78
+ - [ ] Re-read Rails 8 release notes for **ActiveModel::Errors** / message generation — diff `Error.generate_message` vs `lib/active_model/hints.rb#generate_message`
79
+ - [ ] Re-run validator key mapping (`demodulize.underscore.delete_suffix("_validator")`) against 8.0 built-in validators
80
+ - [ ] Confirm **frozen** `validator.options` handling still passes (7.x regression tests)
81
+ - [ ] `enum` keyword-arg removal (Rails 8): N/A in gem code; document if host apps use old enum style
82
+ - [ ] Railtie / `ActiveSupport.on_load(:active_model)` — still fires before patch
83
+
84
+ ### 1.3 Tests & smoke
85
+
86
+ - [ ] `test/test_helper.rb` — load Active Record **8.0** (in-memory SQLite)
87
+ - [ ] `bundle exec rake test` — full suite green; record summary
88
+ - [ ] `stuff/smoke_test.sh` — passes on Rails 8
89
+ - [ ] README: requirements `Rails / Active Record 8.0.x`
90
+
91
+ ### 1.4 Release artifact
92
+
93
+ - [ ] `gem build validation_hints.gemspec`
94
+ - [ ] Install built `.gem` into `/home/code/testInline` gemset (no `path:` in consumer Gemfiles)
95
+
96
+ ---
97
+
98
+ ## Phase 1b — Optional intermediate: Rails 7.2 *(both repos)*
99
+
100
+ Skip if going **7.1 → 8.0** directly with full regression green.
101
+
102
+ - [ ] validation_hints: AR `>= 7.2`, `< 7.3` — test, tag **7.2.0** (optional)
103
+ - [ ] inline_forms: `rails` `>= 7.2`, `< 7.3` — engine tests + example app
104
+ - [ ] Installer: `load_defaults 7.2`, `Migration[7.2]`
105
+ - [ ] `bin/inline_forms`: prefer `rails` **7.2.x** for `rails new` when present
106
+
107
+ ---
108
+
109
+ ## Phase 2 — inline_forms engine → Rails 8
110
+
111
+ ### 2.1 Gemspec & dependencies
112
+
113
+ - [ ] `inline_forms.gemspec`:
114
+ - [ ] `rails` `>= 8.0`, `< 8.1`
115
+ - [ ] `rails-i18n` `>= 8.0`, `< 9.0`
116
+ - [ ] `validation_hints` `>= 8.0`, `< 9.0`
117
+ - [ ] `lib/inline_forms/version.rb` → **8.0.0** when stack ships
118
+ - [ ] `bundle update` in gem dev environment
119
+
120
+ ### 2.2 Engine & library code
121
+
122
+ - [ ] `lib/inline_forms.rb` — engine, initializers, `ValidationHints::ValidationsPatch` load order on 8
123
+ - [ ] `lib/generators/inline_forms_generator.rb` — `Rails::Generators::GeneratedAttribute` patch; generator runs under 8
124
+ - [ ] Controllers / concerns: `turbo_rails/frame` layout paths unchanged
125
+ - [ ] Remove or update comments referencing Rails 7.0 / 7.1-only workarounds
126
+ - [ ] `test/` — full suite on Rails 8
127
+
128
+ ### 2.3 Installer generator (`bin/`, templates)
129
+
130
+ - [ ] `bin/inline_forms` — prefer locally installed **`rails` 8.0.x** for `rails new` (replace 7.0.x selector at ~line 126)
131
+ - [ ] `bin/inline_forms_installer_core.rb`:
132
+ - [ ] **Stop** rewriting `config.load_defaults` to 7.1 — set **`8.0`**
133
+ - [ ] **Stop stripping** `config.autoload_lib(...)` (required on 8; was stripped for 7.0 compat)
134
+ - [ ] Update header comments (remove 7.0 / `Unknown version "8.0"` narrative)
135
+ - [ ] `gem 'rails', '~> 8.0.0'` (or `~> 8.0` per team pin)
136
+ - [ ] `gem 'rails-i18n', '~> 8.0'`
137
+ - [ ] `gem 'validation_hints', '~> 8.0'`
138
+ - [ ] All `ActiveRecord::Migration[7.1]` → **`[8.0]`** (Devise, join tables, views, seeds)
139
+ - [ ] Example app tests under `lib/installer_templates/example_app_tests/` — pass when copied into MyApp on 8
140
+
141
+ ---
142
+
143
+ ## Phase 3 — Example app & third-party stack
144
+
145
+ Verify each installer-pinned gem supports Rails 8 before declaring Phase 3 done.
146
+
147
+ | Gem | Current pin | Rails 8 action |
148
+ |-----|-------------|----------------|
149
+ | `devise` | `~> 5.0` | Confirm 5.x + Rails 8 matrix; run `devise:install` flow |
150
+ | `devise-i18n` | `~> 1.16` | Version / fork check |
151
+ | `paper_trail` | `~> 16.0` | Run install + rich-text initializer; YAML safe-load still valid |
152
+ | `carrierwave` | `~> 3.1` | README claims 6–8; exercise image field in example tests |
153
+ | `foundation-rails` | `~> 6.9` | Dart Sass build under 8 |
154
+ | `dartsass-rails` | unpinned | `rails dartsass:install` in fresh app |
155
+ | `turbo-rails` | unpinned | Frame + Drive tests (see `example_app_turbo_*`) |
156
+ | `cancancan` | unpinned | `check_authorization` in generated `ApplicationController` |
157
+ | `tabs_on_rails` | git fork | **High risk** — confirm branch works on 8 or replace |
158
+ | `i18n-active_record` | git | Confirm fork loads on 8 |
159
+ | `importmap-rails` / `sprockets-rails` | unpinned | Hybrid pipeline still boots |
160
+ | `minitest` | `~> 5.25` | Rails 8 still expects Minitest 5 (not 6.x) |
161
+ | `sqlite3` | `~> 1.4` | Adapter still required for example app |
162
+
163
+ ### 3.1 Generated app config
164
+
165
+ - [ ] Fresh `inline_forms create MyApp -d sqlite --example` on **Rails 8** system gem (no manual `application.rb` surgery)
166
+ - [ ] `config/application.rb`: `load_defaults 8.0`, `autoload_lib` present
167
+ - [ ] `bundle install` — no resolution errors
168
+ - [ ] **Do not** run `db:migrate` unless explicitly requested; schema load via test suite is enough
169
+ - [ ] `bundle exec rails test` in MyApp — **0 failures**; record runs / assertions
170
+
171
+ ### 3.2 Browser spot-check (manual)
172
+
173
+ - [ ] Login `admin@example.com` / `admin999`
174
+ - [ ] Inline edit, nested photos pagination, Turbo frames, validation hint tooltips
175
+
176
+ ---
177
+
178
+ ## Phase 4 — Framework defaults & cleanup
179
+
180
+ - [ ] **Dart Sass / SCSS (installer noise):** `inline_forms create --example` runs `dartsass:build` with hundreds of deprecation warnings (`@import`, `lighten()`, global builtins) from Foundation + `inline_forms` SCSS. Accept on 7.x for now; before **Dart Sass 3.0** migrate entry SCSS to `@use` / `color.scale` (see `inline_forms/stuff/rails-8-checklist.md` mirror note)
181
+ - [ ] Run `rails app:update` in a scratch 8 app; diff `config/initializers/new_framework_defaults_8_0.rb` — decide what the installer should set explicitly vs leave commented
182
+ - [ ] Review Rails 8 removals affecting inline_forms:
183
+ - [ ] `form_with` / `model:` nil — audit templates
184
+ - [ ] Deprecated `ActionController` config flags — none in engine
185
+ - [ ] `ActiveRecord::ConnectionAdapters::ConnectionPool#connection` — search codebase
186
+ - [ ] **Security:** `bundle exec bundler-audit` on 8 Gemfile.lock (both gems + MyApp)
187
+ - [ ] Remove obsolete **7.0→7.1** defensive code paths only after 8 is default (installer + `bin/inline_forms` comments)
188
+ - [ ] `stuff/pipeline.md` — optional: PropShaft / importmap-only follow-up (not a blocker for 8.0)
189
+
190
+ ---
191
+
192
+ ## Phase 5 — Release & documentation
193
+
194
+ ### validation_hints 8.0.0
195
+
196
+ - [ ] Tag `v8.0.0`
197
+ - [ ] Publish to RubyGems (if applicable)
198
+
199
+ ### inline_forms 8.0.0
200
+
201
+ - [ ] `CHANGELOG.md` — Rails 8, validation_hints 8, installer pins, test counts
202
+ - [ ] `README.rdoc` — stack version table
203
+ - [ ] Tag `v8.0.0`
204
+ - [ ] Publish to RubyGems (if applicable)
205
+
206
+ ### Roadmap hygiene
207
+
208
+ - [ ] Update `stuff/roadmap.md` (both repos): version table, Phase 7 “Rails 8” → completed or archived
209
+ - [ ] Mark this checklist Phase 0–5 items `[x]` or move completed sections to “Reference only”
210
+ - [ ] `stuff/analysis.md` (validation_hints) — version references
211
+
212
+ ---
213
+
214
+ ## Verification commands (copy-paste)
215
+
216
+ ```bash
217
+ # validation_hints
218
+ cd /home/code/validation_hints
219
+ rvm use .
220
+ bundle exec rake test
221
+ ./stuff/smoke_test.sh
222
+
223
+ # inline_forms gem tests
224
+ cd /home/code/inline_forms
225
+ rvm use .
226
+ bundle exec rake test
227
+
228
+ # Example app (after build + install gem)
229
+ cd /home/code/inline_forms
230
+ rvm use .
231
+ gem build inline_forms.gemspec
232
+ cd /home/code/testInline
233
+ rvm use .
234
+ gem install /home/code/inline_forms/inline_forms-*.gem
235
+ rm -rf MyApp
236
+ inline_forms create MyApp -d sqlite --example
237
+ cd MyApp
238
+ rvm use .
239
+ bundle exec rails test
240
+ ```
241
+
242
+ ---
243
+
244
+ ## Risk register
245
+
246
+ | Risk | Mitigation |
247
+ |------|------------|
248
+ | System `rails new` is 8.x but Gemfile still 7.1 | Fixed in Phase 2/3: align generator version, Gemfile, and `load_defaults` |
249
+ | `tabs_on_rails` / `i18n-active_record` git deps | Spike in scratch app early Phase 3; fork or replace before release |
250
+ | `generate_message` drift in AR 8 | Phase 1.2 audit + keep parity tests with Rails error messages |
251
+ | Asset pipeline hybrid (Sprockets + importmap + CDN Trix) | Not blocking 8.0; track in `pipeline.md` |
252
+ | Major version jumps confuse consumers | Clear CHANGELOG; inline_forms 8 requires validation_hints 8 |
253
+
254
+ ---
255
+
256
+ ## Out of scope for this checklist
257
+
258
+ Tracked in `inline_forms/stuff/towards_rails_8.md` **after** Rails 8 ships:
259
+
260
+ - Devise → Rodauth / native auth / IdP
261
+ - CanCan → Pundit / Action Policy
262
+ - Active Record encryption rollout
263
+ - jQuery → Stimulus full migration
264
+ - Hint copy / prescriptive tooltips (`roadmap.md` Phase 1)
265
+
266
+ Update this file as items complete or scope changes.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validation_hints
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.13.12
4
+ version: 7.13.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ace Suares
@@ -148,6 +148,7 @@ files:
148
148
  - lib/validation_hints/railtie.rb
149
149
  - lib/validation_hints/validations_patch.rb
150
150
  - lib/validation_hints/version.rb
151
+ - stuff/rails-8-checklist.md
151
152
  - test/active_model/hints_test.rb
152
153
  - test/active_model/i18n_test.rb
153
154
  - test/test_helper.rb