Move Bundler settings parsing out of ruby_crawler into formats/gem/settings.rs, and read .bundle/config keys with one parser (two drifted today)
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 22/100
Rechercherichtung
Start with crates/socket-patch-core/src/crawlers/ruby_crawler.rs around bundle_config_setting_with and formats/gem/mirror.rs (config_key and the key loop), then compare how each reads .bundle/config lines. Step 1 is the parser move into formats/gem/settings.rs, which needs design choices about which key rules win. Done when formats/gem/* no longer imports crawlers::*, one key parser remains, and the ruby crawler, gem vendor, redirect and mirror tests pass.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
[agent] Filed by the scheduled architecture audit (audit-core). Register: register.
Kind: refactor (placement plus a duplicated parser; extends E20/#833). Register ID: A57.
Problem
- Bundler settings logic lives in the crawler. About 1,260 lines of it sit in
crawlers/ruby_crawler.rsL1270-L2530:`` config scalar parsing and unquoting, the global and app config locations, the cache dir, the loaded manifest and lockfile, and the moved root. - Format modules import from that crawler.
formats/gem/manifest.rsL58 andformats/gem/mirror.rsL16 import fromcrawlers::ruby_crawler, and so dovendor/gem.rs,vendor/lock_inventory/gem.rs,vex/discover/gem.rs,hosted/engine.rs,patch/redirect/upstream/gem.rsand the CLI. - The
.bundle/configkey line is parsed twice, and the copies drifted:ruby_crawler::bundle_config_setting_withL2449-L2461 matchesKEY:as a plain prefix: it acceptsKEY:valuewith no space, does not decode quoted keys, and does not normalize legacy keys.formats/gem/mirror.rsL125-L230 (config_keyand the key loop) requires": ", decodes Bundler 4.1's quoted keys, and normalizes dot/dash keys.- The drift is latent for
BUNDLE_PATH/BUNDLE_GEMFILE/BUNDLE_LOCKFILE, because Bundler quotes only keys that contain:.
- The Gemfile/gems.rb manifest name list is written twice:
ruby_crawler.rsL276 andhosted/engine.rsL1167.formats/gem/mod.rsalready holdsBUNDLER_LOCKS.
Proposed change
This is a tracking issue; do the steps in order.
- Create
formats/gem/settings.rsand move the pure parsers there: the config-map parse (one key-line reader, followingmirror.rs's rules), unquote,bundler_truthy, and the tier rules from #1931. Also move aBUNDLER_MANIFEST_FILESconst there. - Leave only file and env I/O in the crawler, as a
BundlerEnv::ambient()snapshot that replaces the 4 copies of the ambient-env tuple (L47, L169, L591, L670). - Repoint the
formats/gem,vendor,vex,hostedand redirect imports.
Size
About 10 files; mostly moves (~1,000 lines moved, ~−80 net).
Acceptance criteria
- Behavior is unchanged: the ruby crawler, gem vendor, gem redirect and mirror tests pass.
formats/gem/*no longer importscrawlers::*.- One
.bundle/configkey parser remains.
- Vorherrschende Sprache
- Rust
- Sterne
- 8
- Forks
- 2
- Ø Merge
- 19 Std. 24 Min.
- Gemergte PRs (30 T.)
- 669
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus SocketDev/socket-patch
-
agent:triaged arch-audit priority:p3 refactor
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
SocketDev/socket-patch#1860 ·
Maintainer antworten meist innerhalb von 1 Tag
-
agent:triaged arch-audit priority:p3 refactor
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
SocketDev/socket-patch#1838 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Vendored npm rollback / remove / vendor --revert on a lockfileVersion 2 lock fail after any `npm install`, yet half-revert the lock: `packages` goes back to the registry while the legacy mirror keeps the patched integrity, and npm 6 then fails EINTEGRITYEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenbug bughunt pm:npm
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
SocketDev/socket-patch#1937 ·
Maintainer antworten meist innerhalb von 1 Tag
-
arch-audit bug
Schwierigkeit 3/5 Ein halber Tag Anfängerfreundlichkeit 55/100
SocketDev/socket-patch#1934 ·
Maintainer antworten meist innerhalb von 1 Tag
-
arch-audit bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 50/100
SocketDev/socket-patch#1933 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in SocketDev/socket-patch
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Cloud environment origin check accepts an explicit default HTTPS port (:443) (follow-up to #30418)Offenarea: cloud
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
manaflow-ai/cmux#31340 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
apache/datafusion#26999 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
quarto-dev/q2#1005 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Chat stream: two tool calls with the same index but different ids are merged into oneEvtl. vergeben @kunalgoesbyken hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
respanai/respan-gateway#136 ·
Maintainer antworten meist innerhalb von 1 Tag