Add gems virtual repositories #154
Reference in New Issue
Block a user
Delete Branch "benvin/virtual-gems"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bundler needs one source for internal and public gems, but gems virtuals have no merger, so a local gems repo and rubygems.org cannot be served together.
info/<gem>across members (member order wins a duplicate version-platform); pass a single-member gem through verbatimversionslines and md5s for gems several members list; unionnamesgems/*.gemandquick/Marshal.4.8/*to the member owning that version, via the shared member-path validationdocs/gems/virtual.mdand a stockruby:3.3bundler e2e-docker case/versionsis served as a plain 200 with no ETag, Repr-Digest or Range support, and the body (newcreated_at+ moved shared lines) differs every 60s, so bundler re-downloads the full file on every run (~23MB against rubygems.org) → set a content-hash ETag and answer If-None-Match with 304; keepcreated_atstable while the body is unchanged./versionsnever equals the cached one (freshcreated_at), soprevpins a second copy of the ~23MB body that gems never reads (files()is nil), on top of the recorder,ReadAlland merge-buffer copies per member → compare with the header stripped, and dropprevfor gems./inforeturns ErrNotFound is silently dropped from/versions→ return an error (502) so the virtual fails closed./infofrom every member (rubygems.org included), and misses are not cached → cache negative results briefly.