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 +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/validation_hints/version.rb +1 -1
- data/stuff/rails-8-checklist.md +266 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ba093e5a4c85fc337199399f9d837f3757ee611e71e7ff1cbec1d49b36931139
|
|
4
|
+
data.tar.gz: dd6f1a2ad6d92b290665c0c15362fe563c8b45114db43de515879d8ab5eaa0da
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
@@ -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.
|
|
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
|