ruby / ruby/rbs

Proposal to deprecate prototype features

Open
#2,841 3 comments 3 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

RBS has 3 prototype features. I propose to stop maintaining all of them and eventually deprecate them.

Issues

Implementation as Experimental Features

All three prototypes (rb, rbi, runtime) use Ripper or RubyVM::AbstractSyntaxTree.

Both Ripper and RubyVM::AbstractSyntaxTree are experimental features, and their deprecation has also been proposed.

Decreasing Use Cases

rb

The rbs-inline gem almost entirely covers the prototype rb functionality and is planned to be integrated into the rbs repo in rbs v4. It is expected that prototype rb will no longer be used.

rbi

The rbi feature has served its purpose and is likely no longer in use.

runtime

The runtime feature lacks sufficient functionality for use in large-scale codebases like applications, and for simple use cases, rbs-inline is often sufficient.

Deprecation Method

I propose to issue a warning for prototype features starting with rbs v4, indicating they are slated for deprecation, and to completely remove them in v5.

The runtime feature may still have uses for expanding type definitions in core and stdlib, so it is highly likely to remain for internal use within the rbs repository.

Refs

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 reviewing the implementations and usage of the prototype rb, rbi, and runtime features, along with the referenced issues and pull request. Check how Ripper, RubyVM::AbstractSyntaxTree, and rbs-inline relate to these features. Done means an agreed deprecation warning plan for rbs v4 and removal plan for v5, while deciding whether runtime remains for internal core and stdlib use.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.