Summary
gem.coop is a community-owned RubyGems-compatible server that mirrors all of rubygems.org in real-time and additionally allows publishing gems into dedicated namespaces.
For mirrored gems, no change is needed — the Resolver already finds them via the rubygems.org API. For gems published only to gem.coop (dedicated namespace feature), rubygems.org has no record and the Resolver returns :unknown.
What needs to change
When the Resolver gets a miss from rubygems.org, fall back to querying the gem.coop API (if it exposes a RubyGems v1-compatible endpoint) before returning :unknown. If gem.coop's API is compatible, this may be a one-line fallback in the resolver; if not, a thin adapter is needed.
Acceptance
Notes
- Same class of work as #8 (GitLab adapter) — v1.x, not a v1.0 blocker.
- Verify whether gem.coop exposes a RubyGems v1-compatible API before designing the fallback.
Summary
gem.coop is a community-owned RubyGems-compatible server that mirrors all of rubygems.org in real-time and additionally allows publishing gems into dedicated namespaces.
For mirrored gems, no change is needed — the
Resolveralready finds them via the rubygems.org API. For gems published only to gem.coop (dedicated namespace feature), rubygems.org has no record and theResolverreturns:unknown.What needs to change
When the
Resolvergets a miss from rubygems.org, fall back to querying the gem.coop API (if it exposes a RubyGems v1-compatible endpoint) before returning:unknown. If gem.coop's API is compatible, this may be a one-line fallback in the resolver; if not, a thin adapter is needed.Acceptance
gem.coopin aGemfile.lockresolve correctly when they exist on rubygems.org (no regression)Projectrather than:unknownNotes