claude_memory 0.13.1 → 0.13.2
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/.claude-plugin/marketplace.json +1 -1
- data/.claude-plugin/plugin.json +1 -1
- data/CHANGELOG.md +15 -0
- data/docs/improvements.md +4 -0
- data/lib/claude_memory/commands/checks/fts_rank_check.rb +60 -0
- data/lib/claude_memory/commands/doctor_command.rb +2 -0
- data/lib/claude_memory/commands/index_command.rb +22 -4
- data/lib/claude_memory/commands/setup_vectors_command.rb +9 -3
- data/lib/claude_memory/index/lexical_fts.rb +47 -23
- data/lib/claude_memory/index/vector_index.rb +27 -0
- data/lib/claude_memory/mcp/server.rb +33 -1
- data/lib/claude_memory/sweep/maintenance.rb +22 -0
- data/lib/claude_memory/sweep/sweeper.rb +1 -0
- data/lib/claude_memory/version.rb +1 -1
- data/lib/claude_memory.rb +1 -0
- metadata +2 -25
- data/.claude/CLAUDE.md +0 -4
- data/.claude/memory.sqlite3 +0 -0
- data/.claude/output-styles/memory-aware.md +0 -1
- data/.claude/rules/claude_memory.generated.md +0 -87
- data/.claude/settings.json +0 -113
- data/.claude/settings.local.json +0 -59
- data/.claude/skills/check-memory/DEPRECATED.md +0 -29
- data/.claude/skills/check-memory/SKILL.md +0 -87
- data/.claude/skills/dashboard/SKILL.md +0 -42
- data/.claude/skills/debug-memory +0 -1
- data/.claude/skills/improve/SKILL.md +0 -631
- data/.claude/skills/improve/feature-patterns.md +0 -1221
- data/.claude/skills/memory-first-workflow +0 -1
- data/.claude/skills/quality-update/SKILL.md +0 -229
- data/.claude/skills/quality-update/implementation-guide.md +0 -346
- data/.claude/skills/release/SKILL.md +0 -206
- data/.claude/skills/review-commit/SKILL.md +0 -199
- data/.claude/skills/review-for-quality/SKILL.md +0 -154
- data/.claude/skills/review-for-quality/expert-checklists.md +0 -79
- data/.claude/skills/setup-memory +0 -1
- data/.claude/skills/study-repo/SKILL.md +0 -322
- data/.claude/skills/study-repo/analysis-template.md +0 -323
- data/.claude/skills/study-repo/focus-examples.md +0 -327
- data/.claude/skills/upgrade-dependencies/SKILL.md +0 -154
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
# Focused Analysis Examples
|
|
2
|
-
|
|
3
|
-
When using the `--focus` flag, narrow the analysis to specific aspects of the repository. This is especially useful for:
|
|
4
|
-
- Very large repositories (>5000 files)
|
|
5
|
-
- Time-constrained analysis
|
|
6
|
-
- Specific adoption goals
|
|
7
|
-
- Deep study of one component
|
|
8
|
-
|
|
9
|
-
## How Focus Mode Works
|
|
10
|
-
|
|
11
|
-
1. **Narrows file exploration** to relevant paths only
|
|
12
|
-
2. **Focuses comparison** on the specific aspect
|
|
13
|
-
3. **Targets recommendations** to the focused area
|
|
14
|
-
4. **Reduces context usage** for faster analysis
|
|
15
|
-
5. **Produces smaller** influence documents
|
|
16
|
-
|
|
17
|
-
## Example Focus Topics
|
|
18
|
-
|
|
19
|
-
### Testing Strategy
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
/study-repo /tmp/repo --focus="testing strategy"
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
**What to analyze**:
|
|
26
|
-
- Test files and directory structure (spec/, test/)
|
|
27
|
-
- Test framework choice (RSpec, Minitest, etc.)
|
|
28
|
-
- CI configuration (.github/workflows/, .circleci/)
|
|
29
|
-
- Test coverage tools and reporting
|
|
30
|
-
- Mocking/stubbing patterns
|
|
31
|
-
- Integration vs unit test balance
|
|
32
|
-
- Test factories and fixtures
|
|
33
|
-
- Performance test practices
|
|
34
|
-
|
|
35
|
-
**Output focus**:
|
|
36
|
-
- How they organize tests
|
|
37
|
-
- What patterns they use for test data
|
|
38
|
-
- How they achieve high coverage
|
|
39
|
-
- CI/CD testing pipeline design
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
### MCP Integration
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
/study-repo /tmp/repo --focus="MCP server implementation"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**What to analyze**:
|
|
50
|
-
- MCP server files (mcp/, server/)
|
|
51
|
-
- Tool definitions and schemas
|
|
52
|
-
- Request/response handling
|
|
53
|
-
- Error handling approach
|
|
54
|
-
- Tool composition and organization
|
|
55
|
-
- JSON-RPC implementation
|
|
56
|
-
- Streaming support
|
|
57
|
-
- Authentication/security
|
|
58
|
-
|
|
59
|
-
**Output focus**:
|
|
60
|
-
- How tools are structured
|
|
61
|
-
- Best practices for tool design
|
|
62
|
-
- Error handling patterns
|
|
63
|
-
- Performance optimizations
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
### Database Schema
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
/study-repo /tmp/repo --focus="database design"
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
**What to analyze**:
|
|
74
|
-
- Schema files (db/schema.rb, migrations/)
|
|
75
|
-
- Index strategies
|
|
76
|
-
- Query optimization patterns
|
|
77
|
-
- Transaction management
|
|
78
|
-
- Connection pooling
|
|
79
|
-
- Database abstraction layer
|
|
80
|
-
- Migration practices
|
|
81
|
-
- Backup/restore approaches
|
|
82
|
-
|
|
83
|
-
**Output focus**:
|
|
84
|
-
- Schema design decisions
|
|
85
|
-
- Performance optimizations
|
|
86
|
-
- Migration safety patterns
|
|
87
|
-
- Query efficiency techniques
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
### CLI Architecture
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
/study-repo /tmp/repo --focus="CLI design"
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
**What to analyze**:
|
|
98
|
-
- Entry points (bin/, exe/)
|
|
99
|
-
- Command organization (commands/, lib/commands/)
|
|
100
|
-
- Argument parsing (Thor, OptionParser, etc.)
|
|
101
|
-
- Help text and documentation
|
|
102
|
-
- Error messages and exit codes
|
|
103
|
-
- Subcommand structure
|
|
104
|
-
- Configuration file handling
|
|
105
|
-
- Output formatting
|
|
106
|
-
|
|
107
|
-
**Output focus**:
|
|
108
|
-
- Command organization patterns
|
|
109
|
-
- User experience considerations
|
|
110
|
-
- Error handling best practices
|
|
111
|
-
- Testing CLI commands
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
### Performance Optimizations
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
/study-repo /tmp/repo --focus="performance"
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
**What to analyze**:
|
|
122
|
-
- Caching strategies (Redis, in-memory)
|
|
123
|
-
- Batch processing patterns
|
|
124
|
-
- Query optimization
|
|
125
|
-
- Resource management
|
|
126
|
-
- Profiling and metrics
|
|
127
|
-
- Lazy loading techniques
|
|
128
|
-
- Memory efficiency
|
|
129
|
-
- Concurrency patterns
|
|
130
|
-
|
|
131
|
-
**Output focus**:
|
|
132
|
-
- What they optimize and how
|
|
133
|
-
- Benchmarking approaches
|
|
134
|
-
- Trade-offs made
|
|
135
|
-
- Performance monitoring
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
### Error Handling
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
/study-repo /tmp/repo --focus="error handling"
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**What to analyze**:
|
|
146
|
-
- Exception hierarchy
|
|
147
|
-
- Error class organization
|
|
148
|
-
- Recovery strategies
|
|
149
|
-
- User-facing error messages
|
|
150
|
-
- Logging practices
|
|
151
|
-
- Retry logic
|
|
152
|
-
- Graceful degradation
|
|
153
|
-
- Error reporting/telemetry
|
|
154
|
-
|
|
155
|
-
**Output focus**:
|
|
156
|
-
- Exception design patterns
|
|
157
|
-
- Error communication to users
|
|
158
|
-
- Debugging support
|
|
159
|
-
- Resilience patterns
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
### Configuration Management
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
/study-repo /tmp/repo --focus="configuration"
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
**What to analyze**:
|
|
170
|
-
- Config file formats (YAML, JSON, TOML)
|
|
171
|
-
- Environment variable handling
|
|
172
|
-
- Default value strategies
|
|
173
|
-
- Configuration validation
|
|
174
|
-
- Secret management
|
|
175
|
-
- Multi-environment support
|
|
176
|
-
- Configuration discovery
|
|
177
|
-
- Override precedence
|
|
178
|
-
|
|
179
|
-
**Output focus**:
|
|
180
|
-
- Configuration architecture
|
|
181
|
-
- Validation and defaults
|
|
182
|
-
- Security practices
|
|
183
|
-
- User experience
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
### Domain Modeling
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
/study-repo /tmp/repo --focus="domain model"
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
**What to analyze**:
|
|
194
|
-
- Core domain objects
|
|
195
|
-
- Value objects vs entities
|
|
196
|
-
- Aggregate boundaries
|
|
197
|
-
- Repository pattern usage
|
|
198
|
-
- Domain events
|
|
199
|
-
- Business logic organization
|
|
200
|
-
- Validation rules
|
|
201
|
-
- Domain services
|
|
202
|
-
|
|
203
|
-
**Output focus**:
|
|
204
|
-
- How domain is modeled
|
|
205
|
-
- Separation of concerns
|
|
206
|
-
- Business rule implementation
|
|
207
|
-
- Pattern usage
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
### Dependency Injection
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
/study-repo /tmp/repo --focus="dependency injection"
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
**What to analyze**:
|
|
218
|
-
- DI container (if any)
|
|
219
|
-
- Constructor injection patterns
|
|
220
|
-
- Service locator usage
|
|
221
|
-
- Factory patterns
|
|
222
|
-
- Testability approaches
|
|
223
|
-
- Configuration of dependencies
|
|
224
|
-
- Lifecycle management
|
|
225
|
-
- Interface abstractions
|
|
226
|
-
|
|
227
|
-
**Output focus**:
|
|
228
|
-
- DI strategy and patterns
|
|
229
|
-
- Testing benefits
|
|
230
|
-
- Complexity vs benefits
|
|
231
|
-
- Best practices
|
|
232
|
-
|
|
233
|
-
---
|
|
234
|
-
|
|
235
|
-
### API Design
|
|
236
|
-
|
|
237
|
-
```bash
|
|
238
|
-
/study-repo /tmp/repo --focus="API design"
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
**What to analyze**:
|
|
242
|
-
- REST/GraphQL/RPC patterns
|
|
243
|
-
- Endpoint organization
|
|
244
|
-
- Request/response formats
|
|
245
|
-
- Versioning strategy
|
|
246
|
-
- Authentication/authorization
|
|
247
|
-
- Rate limiting
|
|
248
|
-
- Documentation (OpenAPI, etc.)
|
|
249
|
-
- Client SDK design
|
|
250
|
-
|
|
251
|
-
**Output focus**:
|
|
252
|
-
- API structure and conventions
|
|
253
|
-
- Versioning approach
|
|
254
|
-
- Documentation practices
|
|
255
|
-
- Client experience
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
## Custom Focus Topics
|
|
260
|
-
|
|
261
|
-
You can specify any aspect you want to focus on:
|
|
262
|
-
|
|
263
|
-
```bash
|
|
264
|
-
/study-repo /tmp/repo --focus="logging and observability"
|
|
265
|
-
/study-repo /tmp/repo --focus="file system abstraction"
|
|
266
|
-
/study-repo /tmp/repo --focus="plugin architecture"
|
|
267
|
-
/study-repo /tmp/repo --focus="webhook handling"
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
The skill will adapt the analysis to your specified topic.
|
|
271
|
-
|
|
272
|
-
## When to Use Focus Mode
|
|
273
|
-
|
|
274
|
-
### Use Focus When:
|
|
275
|
-
- Repository has >1000 files
|
|
276
|
-
- You have a specific adoption goal
|
|
277
|
-
- You want deep analysis of one aspect
|
|
278
|
-
- Time is limited
|
|
279
|
-
- You're comparing specific features
|
|
280
|
-
|
|
281
|
-
### Use Full Analysis When:
|
|
282
|
-
- Repository is small (<500 files)
|
|
283
|
-
- You want comprehensive overview
|
|
284
|
-
- Architecture understanding is the goal
|
|
285
|
-
- Time allows for thorough exploration
|
|
286
|
-
- Making major adoption decisions
|
|
287
|
-
|
|
288
|
-
## Output Differences
|
|
289
|
-
|
|
290
|
-
### Full Analysis Output:
|
|
291
|
-
```
|
|
292
|
-
docs/influence/project-name.md
|
|
293
|
-
- All sections populated
|
|
294
|
-
- Broad recommendations
|
|
295
|
-
- Comprehensive comparison
|
|
296
|
-
- 10-20 pages typical
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
### Focused Analysis Output:
|
|
300
|
-
```
|
|
301
|
-
docs/influence/project-name-focus.md
|
|
302
|
-
- Focused sections only
|
|
303
|
-
- Targeted recommendations
|
|
304
|
-
- Specific comparison
|
|
305
|
-
- 3-8 pages typical
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
## Combining Focuses
|
|
309
|
-
|
|
310
|
-
For very large projects, run multiple focused analyses:
|
|
311
|
-
|
|
312
|
-
```bash
|
|
313
|
-
# Study different aspects separately
|
|
314
|
-
/study-repo /tmp/big-repo --focus="MCP implementation"
|
|
315
|
-
/study-repo /tmp/big-repo --focus="testing strategy"
|
|
316
|
-
/study-repo /tmp/big-repo --focus="database design"
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
Each produces a separate influence document focused on that aspect.
|
|
320
|
-
|
|
321
|
-
## Tips for Effective Focus
|
|
322
|
-
|
|
323
|
-
1. **Be specific**: "MCP server" is better than "server stuff"
|
|
324
|
-
2. **Match their terminology**: Use terms from their docs/code
|
|
325
|
-
3. **Start broad, then focus**: Run full analysis first to identify interesting areas
|
|
326
|
-
4. **Combine with grep**: Search for keywords related to your focus
|
|
327
|
-
5. **Review examples**: Look at their tests for the focused component
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: upgrade-dependencies
|
|
3
|
-
description: "Upgrade all Ruby gem dependencies to their latest versions with release note review and codebase alignment checks. Use this skill whenever the user asks to update, upgrade, or bump dependencies, gems, or packages — even casually like 'update my gems' or 'are my deps up to date?'"
|
|
4
|
-
agent: general-purpose
|
|
5
|
-
allowed-tools: Read, Grep, Glob, Bash, Edit, Write, Agent, WebFetch
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Dependency Upgrade Skill
|
|
9
|
-
|
|
10
|
-
Systematically upgrade Ruby gem dependencies by researching latest versions, reviewing release notes for breaking changes, updating version constraints, verifying with tests, and confirming codebase alignment.
|
|
11
|
-
|
|
12
|
-
The goal is a *thoughtful* upgrade — not blindly bumping versions, but understanding what changed and ensuring the codebase is compatible. This matters because a silent API change can introduce bugs that tests don't catch if the tests don't exercise the affected code path.
|
|
13
|
-
|
|
14
|
-
## Process Overview
|
|
15
|
-
|
|
16
|
-
1. **Discover** current dependencies and their constraints
|
|
17
|
-
2. **Research** latest versions and release notes (in parallel)
|
|
18
|
-
3. **Analyze** breaking changes and codebase impact
|
|
19
|
-
4. **Upgrade** version constraints and install
|
|
20
|
-
5. **Verify** with the full test suite
|
|
21
|
-
6. **Report** a summary table with upgrade details
|
|
22
|
-
|
|
23
|
-
## Step 1: Discover Current Dependencies
|
|
24
|
-
|
|
25
|
-
Read the gemspec and Gemfile to build a complete dependency inventory.
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
Read *.gemspec → runtime dependencies (add_dependency)
|
|
29
|
-
Read Gemfile → development dependencies (gem declarations)
|
|
30
|
-
Run: bundle outdated → current vs latest versions, which are constrained
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Build a working list with these columns:
|
|
34
|
-
- **Gem name**
|
|
35
|
-
- **Source** (gemspec or Gemfile)
|
|
36
|
-
- **Current constraint** (e.g., `~> 5.0`)
|
|
37
|
-
- **Installed version** (from `bundle outdated` or `Gemfile.lock`)
|
|
38
|
-
- **Latest version** (from `bundle outdated`)
|
|
39
|
-
- **Constrained?** (is the version constraint preventing upgrade?)
|
|
40
|
-
|
|
41
|
-
## Step 2: Research Release Notes
|
|
42
|
-
|
|
43
|
-
For each gem that has a newer version available, research what changed. Launch these as parallel Agent subagents — one per gem — to avoid sequential delays.
|
|
44
|
-
|
|
45
|
-
Each research agent should:
|
|
46
|
-
|
|
47
|
-
1. Run `gem search <name> --exact --versions` to confirm the latest version
|
|
48
|
-
2. Fetch the changelog or release notes from GitHub (check CHANGELOG.md, CHANGES, HISTORY.md, or GitHub Releases)
|
|
49
|
-
3. Summarize changes between the installed version and latest version
|
|
50
|
-
4. Flag any **breaking changes**, **deprecations**, or **API changes**
|
|
51
|
-
5. Note if it's a **major version bump** (higher risk)
|
|
52
|
-
|
|
53
|
-
For transitive dependencies (not directly declared but showing in `bundle outdated`), research is optional — focus on direct dependencies. Transitive deps are upgraded automatically when their parent gem allows it.
|
|
54
|
-
|
|
55
|
-
### What to look for in release notes
|
|
56
|
-
|
|
57
|
-
- **Removed methods or classes** the codebase might use
|
|
58
|
-
- **Renamed options or changed defaults** that could silently alter behavior
|
|
59
|
-
- **New required arguments** to methods we call
|
|
60
|
-
- **Deprecated features** we rely on (working now, but will break later)
|
|
61
|
-
- **Changed return types** or data structures
|
|
62
|
-
- **Minimum Ruby version bumps** that could affect CI or deployment
|
|
63
|
-
|
|
64
|
-
## Step 3: Analyze Codebase Impact
|
|
65
|
-
|
|
66
|
-
For each gem with breaking changes or API modifications:
|
|
67
|
-
|
|
68
|
-
1. **Grep the codebase** for usage of affected APIs
|
|
69
|
-
2. **Check test coverage** — are the affected code paths tested?
|
|
70
|
-
3. **Determine if changes are needed** before or after the upgrade
|
|
71
|
-
|
|
72
|
-
Classify each upgrade:
|
|
73
|
-
|
|
74
|
-
- **Safe** — no breaking changes, or breaking changes don't affect our usage
|
|
75
|
-
- **Needs code changes** — our code uses a deprecated or removed API
|
|
76
|
-
- **Held back** — a transitive dependency constraint prevents the upgrade (explain which parent gem and why)
|
|
77
|
-
|
|
78
|
-
If code changes are needed, make them *before* bumping the version constraint so the upgrade commit is clean.
|
|
79
|
-
|
|
80
|
-
## Step 4: Upgrade Dependencies
|
|
81
|
-
|
|
82
|
-
### Gemspec dependencies (runtime)
|
|
83
|
-
|
|
84
|
-
Update version constraints to target the latest version. Use `~>` with the appropriate precision:
|
|
85
|
-
|
|
86
|
-
- For stable gems (1.0+): `~> X.Y` allows patch updates (e.g., `~> 5.102` allows 5.102.x)
|
|
87
|
-
- For pre-1.0 gems: `~> 0.X, ">= 0.X.Y"` to pin a minimum while allowing patches
|
|
88
|
-
- For gems where a specific fix matters: add `">= X.Y.Z"` as an additional constraint
|
|
89
|
-
|
|
90
|
-
### Gemfile dependencies (development)
|
|
91
|
-
|
|
92
|
-
Same approach. If a major version bump is available (e.g., lefthook 1.x → 2.x), check the migration guide before bumping.
|
|
93
|
-
|
|
94
|
-
### Install
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
bundle update
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
If `bundle update` fails due to dependency conflicts, resolve them. Common strategies:
|
|
101
|
-
- Relax an overly tight constraint
|
|
102
|
-
- Update the conflicting parent gem first
|
|
103
|
-
- Accept that a gem can't be upgraded yet and document why
|
|
104
|
-
|
|
105
|
-
## Step 5: Verify with Tests
|
|
106
|
-
|
|
107
|
-
Run the full test suite:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
bundle exec rspec
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Also run the linter to catch any style issues:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
bundle exec rake standard
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
If tests fail:
|
|
120
|
-
1. Read the failure carefully — is it caused by the upgrade or pre-existing?
|
|
121
|
-
2. If caused by the upgrade, fix the code to work with the new version
|
|
122
|
-
3. If unfixable, revert that specific gem's upgrade and note it in the report
|
|
123
|
-
|
|
124
|
-
## Step 6: Present Summary
|
|
125
|
-
|
|
126
|
-
Present a clear summary table of all changes:
|
|
127
|
-
|
|
128
|
-
```markdown
|
|
129
|
-
| Gem | Old Version | New Version | Old Constraint | New Constraint | Notes |
|
|
130
|
-
|-----|------------|-------------|----------------|----------------|-------|
|
|
131
|
-
| sequel | 5.100.0 | 5.102.0 | ~> 5.0 | ~> 5.102 | No breaking changes |
|
|
132
|
-
| lefthook | 1.13.6 | 2.1.4 | ~> 1.6 | ~> 2.1 | Major version bump, reviewed migration guide |
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
Follow the table with:
|
|
136
|
-
|
|
137
|
-
1. **Breaking changes found** — what changed and how the codebase was updated
|
|
138
|
-
2. **Gems held back** — which gems couldn't be upgraded and why (e.g., "diff-lcs 2.0 held back by rspec's ~> 1.4 constraint")
|
|
139
|
-
3. **Notable new features** — anything worth adopting from the new versions
|
|
140
|
-
4. **Test results** — confirmation that all tests pass
|
|
141
|
-
|
|
142
|
-
## Edge Cases
|
|
143
|
-
|
|
144
|
-
### Gems with no GitHub repository
|
|
145
|
-
Fall back to `gem info <name>` and the RubyGems page for release history. Note reduced confidence in the review.
|
|
146
|
-
|
|
147
|
-
### Yanked versions
|
|
148
|
-
If `bundle update` fails because a version was yanked, try the next most recent version.
|
|
149
|
-
|
|
150
|
-
### Pre-release versions
|
|
151
|
-
Do not upgrade to pre-release or alpha versions unless the user explicitly asks. Stick to stable releases.
|
|
152
|
-
|
|
153
|
-
### Monorepo gems
|
|
154
|
-
Some gems (like rails components) are versioned together. Upgrade them as a group.
|