ruby / ruby/rbs

bundler and rubygems

Open
#2,599 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
2.2k
Forks
256
Avg merge
6d 17h
Merged PRs (30d)
37

Description

Hi!

Two questions:

First, I'd like folks to be able to typecheck their Gemfiles via Solargraph, which is able to use RBS for external types. The DSL for a Gemfile is described in Bundler::Dsl; having types described for that class is certainly a prerequisite.

Are you open to having types for bundler live in this project, presumably in core next to rubygems?

If not, Solargraph rbs collection, but it doesn't seem possible to add bundler via gem_rbs_collection, as rbs collection install only takes effect on gems.

Second, there are a number of public APIs in both bundler and rubygems that Solargraph uses in its own code that are not in the RBS repo. It appears you had the same issue, as I see shims for bundler and rubygems in your sig/shims directory.

Do you object to me adding these additional signatures to the definitions in https://github.com/ruby/rbs/tree/master/core? I was not sure if there was intent behind the decision to leave those as internal shims or if it was for expedience.

Much appreciation for your work on RBS! Solargraph is much more capable as a result, both as an LSP and a typechecker.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading sig/shims/bundler.rbs and sig/shims/rubygems.rbs, then compare them with the definitions under core. Clarify whether Bundler signatures should live in this repository and which public APIs are in scope. Done means an agreed placement and scope for the additional RBS definitions.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.