Guard against missing rbs_collection.yaml ignore entries#1282
Merged
Conversation
Every EG gem that ships RBS signatures must be listed in `rbs_collection.yaml` with `ignore: true`. Otherwise `rbs collection install` pulls the gem's signatures in via bundler while those same signatures also exist locally in this monorepo, and Steep fails with "declaration is duplicated" errors. `elasticgraph-json_ingestion` was added without this entry, breaking Steep on a batch of dependency-bump PRs. Nothing in CI caught the omission, so this adds a spec asserting the gems with a `sig` dir match the ignored EG entries in the config (catching both missing and stale entries), and fixes the immediate omission. Generated with Claude Code
jwils
approved these changes
Jun 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A batch of dependency-bump PRs (#1236, #1245, #1267, #1272, #1276, #1277, #1279, #1280) are all failing Steep with
declaration is duplicatederrors.Root cause: the new
elasticgraph-json_ingestiongem ships RBS signatures (sig/) and is a dev dependency of 6 other EG gems, but it was never added torbs_collection.yamlwithignore: true. Whenrbs collection installruns, it pulls the gem's signatures in via bundler while those same signatures also exist locally in this monorepo, so Steep sees duplicate declarations and fails.Every EG gem that ships signatures must be ignored in
rbs_collection.yamlfor this reason (see the explanatory comment in that file). Nothing in CI caught the omission.What
elasticgraph-json_ingestiontorbs_collection.yamlwithignore: true.gem_spec.rbasserting that the EG gems with asig/directory match (viamatch_array) theelasticgraph*entries markedignore: true. This catches both a newly-added gem missing its entry and a stale entry, so this mistake can't recur silently.The bootstrap gem
elasticgraph(no dash) ships no signatures and is correctly exempt.Verification
missing elements: ["elasticgraph-json_ingestion"]), passes after.bundle exec rspec elasticgraph/spec/unit/elastic_graph/gem_spec.rb→ 205 examples, 0 failures.script/type_check→ No type error detected. 🫖🤖 Generated with Claude Code