RubyGems Package Registry Beta Program: Feedback & Graduation Criteria

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Overview

We are promoting the RubyGems Package Registry from Experiment to Beta in GitLab 19.1 or 19.2. This issue serves as the central hub for the Beta program: collecting customer feedback, tracking known limitations, and defining the signal we need before graduating to GA.

For the full history and context, see &3200 - Make the RubyGems Repository Beta.

What is the RubyGems Package Registry?

The GitLab RubyGems Package Registry allows you to publish and manage Ruby gems directly within your GitLab projects. Key capabilities include:

  • Publish gems via gem push using personal access tokens, deploy tokens, or CI/CD job tokens
  • Download gems from the Package Registry UI or API
  • CI/CD integration with native CI_JOB_TOKEN support for automated publishing
  • Metadata extraction for published gems
  • Gem size limit of up to 3 GB

How to sign up for the Beta

No formal sign-up is required. To start using the RubyGems Package Registry Beta:

  1. Ensure the feature is enabled: The RubyGems registry is behind the rubygem_packages feature flag. On GitLab.com, this will be enabled for Beta participants. For Self-Managed instances, an administrator must enable the flag.
  2. Authenticate using one of the supported methods:
    • Personal access token (scope: api)
    • Deploy token (scope: read_package_registry and/or write_package_registry)
    • CI/CD job token
  3. Configure your credentials in ~/.gem/credentials:
    ---
    https://gitlab.example.com/api/v4/projects/<project_id>/packages/rubygems: '<token>'
  4. Push a gem:
    gem push my_gem-0.0.1.gem --host https://gitlab.example.com/api/v4/projects/<project_id>/packages/rubygems

Full documentation: https://docs.gitlab.com/user/packages/rubygems_registry/

How to provide feedback

We want to hear from you! Please comment directly on this issue with:

  1. Your use case: What are you using the RubyGems registry for? (internal gems, CI/CD publishing, mirroring, etc.)
  2. Environment details: GitLab.com or Self-Managed? Approximate number of gems and total size?
  3. What's working well: Features or workflows that meet your expectations
  4. Issues or bugs: Anything broken or behaving unexpectedly (please also file a separate issue with the ~"Category:Package Registry" label)
  5. Performance observations: Upload/download speeds, latency, any timeouts or failures at scale
  6. Missing functionality: Features you need before you can adopt this in production
  7. Scale testing results: If you've tested with a large number of gems or large gem sizes, share your findings

For bugs or feature requests, please create a dedicated issue and link it here.

Known limitations (Beta)

The following are known limitations during the Beta period:

  • No gem install support: Spec file generation landed in !235239 (merged) and the spec index download endpoint is pending merge in !238982 (merged). Once merged, gem install / Bundler integration will be fully supported. (See #299267 (closed))
  • Feature flag gated: The feature is behind the rubygem_packages feature flag and must be explicitly enabled
  • Spec generation: Spec file generation is implemented and merged (!235239 (merged)). The spec index download endpoint is pending merge in !238982 (merged). (See #299267 (closed))
  • Duplicate gem names/versions: Pushing a gem with the same name and version as an existing one creates a duplicate rather than rejecting or replacing it
  • Database constraint issues: Some edge cases with metadata may trigger constraint violations (See #333607 (closed))

Graduation criteria: Beta to GA

We will consider the RubyGems Package Registry ready for GA when the following criteria are met:

Functionality

  • All blocking child issues in &3200 are resolved
  • gem install / Bundler integration is supported or a clear workaround is documented
  • Feature flag is removed and the feature is enabled by default
  • Documentation is complete and reflects the production-ready state

Performance & Scale

  • Verified performance at scale: publishing and downloading gems performs within acceptable latency thresholds under load
  • No known P1/P2 performance-related bugs
  • Tested with repositories containing 100+ gems of varying sizes

Quality & Reliability

  • No open S1/S2 bugs related to the RubyGems registry
  • Error rates on GitLab.com are within acceptable thresholds (aligned with Package Registry SLOs)
  • No data integrity issues (metadata, gem files, dependencies)

Customer Signal

  • At least 5 distinct customers/users have provided positive feedback on this issue confirming production-readiness
  • No unresolved blocking feedback from Beta participants
  • Usage metrics show sustained adoption (month-over-month growth in unique users publishing/downloading gems)

Timeline

Milestone Target
Beta launch 19.1 or 19.2
Feedback collection period 2-3 milestones post-Beta
GA decision Based on graduation criteria above
Edited by Tim Rizzi