Proposal to deprecate prototype features
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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