Project

General

Profile

Actions

Feature #21020

open

Sync sig directory for prism of default gem.

Added by ksss (Yuki Kurihara) about 1 month ago. Updated 9 days ago.

Status:
Assigned
Assignee:
Target version:
-
[ruby-core:120579]

Description

Currently, the type signatures (RBS) for the default gem is not available.
Prism is the only default gem with type signatures, but this number is expected to increase in the future.

As a first step to resolving this issue, I propose including the sig directory of Prism as a default gem in the synchronization process.

PR: https://github.com/ruby/ruby/pull/12541

Updated by kddnewton (Kevin Newton) about 1 month ago

I'm fine with this if everyone else is.

Updated by hsbt (Hiroshi SHIBATA) 9 days ago

  • Status changed from Open to Assigned
  • Assignee set to prism

I'm interesting that location of signature with fresh installation of ruby.

The sig directory under the prism is fine if we have only prism signature. Where is the best location if we will add json or psych signatures?

1. $prefix/lib/ruby/3.5.0+0/$name/sig <- current proposal
2. $prefix/lib/ruby/3.5.0+0/sig/$name
3. $prefix/lib/ruby/sig/$name
4. $prefix/lib/ruby/gems/3.5.0+0/sig/$name
5. $GEM_HOME/sig/$name # This is same as 4 with $GEM_HOME is not specified.
6. $prefix/include/sig/$name
7. $prefix/share/sig/$name
...

I prefer 2 or 3.

Updated by Eregon (Benoit Daloze) 9 days ago

How about $prefix/lib/ruby/gems/3.5.0+0/gems/$name-$version/sig so it would be consistent between default and bundled gems?

Updated by kddnewton (Kevin Newton) 9 days ago

I think the code in the PR is good, but I agree I don't think the sig should live under prism/sig. I think it should be top directory of ruby repository sig. When it's installed I agree with @Eregon (Benoit Daloze) but I also think @hsbt's solution 2 is fine, provided RBS knows to use the overridden version if one is provided.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0