rbs 3.0.0.dev.1 → 3.0.0.dev.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +2 -1
- data/.github/workflows/ruby.yml +4 -3
- data/CHANGELOG.md +28 -0
- data/Gemfile.lock +12 -12
- data/README.md +1 -0
- data/Rakefile +77 -3
- data/Steepfile +1 -1
- data/core/array.rbs +574 -424
- data/core/basic_object.rbs +11 -39
- data/core/binding.rbs +1 -1
- data/core/builtin.rbs +9 -1
- data/core/class.rbs +37 -0
- data/core/comparable.rbs +7 -18
- data/core/complex.rbs +2 -2
- data/core/data.rbs +419 -0
- data/core/dir.rbs +52 -104
- data/core/encoding.rbs +22 -181
- data/core/enumerable.rbs +212 -175
- data/core/enumerator/product.rbs +96 -0
- data/core/enumerator.rbs +57 -8
- data/core/errors.rbs +8 -2
- data/core/exception.rbs +41 -0
- data/core/fiber.rbs +95 -12
- data/core/file.rbs +840 -275
- data/core/file_test.rbs +34 -19
- data/core/float.rbs +40 -96
- data/core/gc.rbs +15 -3
- data/core/hash.rbs +114 -176
- data/core/integer.rbs +85 -145
- data/core/io/buffer.rbs +187 -60
- data/core/io/wait.rbs +28 -16
- data/core/io.rbs +1859 -1389
- data/core/kernel.rbs +525 -961
- data/core/match_data.rbs +306 -142
- data/core/math.rbs +506 -234
- data/core/method.rbs +0 -24
- data/core/module.rbs +111 -18
- data/core/nil_class.rbs +2 -0
- data/core/numeric.rbs +76 -144
- data/core/object.rbs +88 -212
- data/core/proc.rbs +17 -5
- data/core/process.rbs +22 -5
- data/core/ractor.rbs +1 -1
- data/core/random.rbs +20 -3
- data/core/range.rbs +91 -89
- data/core/rational.rbs +2 -3
- data/core/rbs/unnamed/argf.rbs +177 -120
- data/core/rbs/unnamed/env_class.rbs +89 -163
- data/core/rbs/unnamed/random.rbs +36 -12
- data/core/refinement.rbs +8 -0
- data/core/regexp.rbs +462 -272
- data/core/ruby_vm.rbs +210 -0
- data/{stdlib/set/0 → core}/set.rbs +43 -47
- data/core/string.rbs +1403 -1332
- data/core/string_io.rbs +191 -107
- data/core/struct.rbs +67 -63
- data/core/symbol.rbs +187 -201
- data/core/thread.rbs +40 -35
- data/core/time.rbs +902 -826
- data/core/trace_point.rbs +55 -6
- data/core/unbound_method.rbs +48 -24
- data/docs/collection.md +4 -0
- data/docs/syntax.md +55 -0
- data/ext/rbs_extension/constants.c +16 -2
- data/ext/rbs_extension/constants.h +8 -1
- data/ext/rbs_extension/extconf.rb +1 -1
- data/ext/rbs_extension/lexer.c +834 -777
- data/ext/rbs_extension/lexer.h +3 -1
- data/ext/rbs_extension/lexer.re +3 -1
- data/ext/rbs_extension/lexstate.c +4 -2
- data/ext/rbs_extension/parser.c +262 -43
- data/ext/rbs_extension/ruby_objs.c +56 -2
- data/ext/rbs_extension/ruby_objs.h +7 -1
- data/lib/rbs/annotate/rdoc_annotator.rb +1 -1
- data/lib/rbs/ast/declarations.rb +49 -2
- data/lib/rbs/ast/directives.rb +39 -0
- data/lib/rbs/cli.rb +38 -19
- data/lib/rbs/collection/cleaner.rb +8 -1
- data/lib/rbs/collection/config/lockfile.rb +3 -1
- data/lib/rbs/collection/config/lockfile_generator.rb +37 -30
- data/lib/rbs/collection/config.rb +3 -3
- data/lib/rbs/collection/sources/git.rb +10 -3
- data/lib/rbs/collection/sources/local.rb +79 -0
- data/lib/rbs/collection/sources.rb +8 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +24 -8
- data/lib/rbs/definition_builder.rb +8 -8
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +358 -88
- data/lib/rbs/environment_loader.rb +12 -9
- data/lib/rbs/environment_walker.rb +1 -1
- data/lib/rbs/errors.rb +52 -37
- data/lib/rbs/locator.rb +27 -8
- data/lib/rbs/parser_aux.rb +8 -6
- data/lib/rbs/resolver/constant_resolver.rb +23 -7
- data/lib/rbs/resolver/type_name_resolver.rb +2 -1
- data/lib/rbs/sorter.rb +5 -5
- data/lib/rbs/test/setup.rb +1 -1
- data/lib/rbs/type_alias_dependency.rb +1 -1
- data/lib/rbs/type_alias_regularity.rb +3 -3
- data/lib/rbs/validator.rb +23 -2
- data/lib/rbs/variance_calculator.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +28 -2
- data/lib/rbs.rb +2 -2
- data/lib/rdoc_plugin/parser.rb +2 -2
- data/rbs.gemspec +1 -1
- data/sig/ancestor_graph.rbs +22 -2
- data/sig/collection/config/lockfile_generator.rbs +8 -10
- data/sig/collection/config.rbs +1 -1
- data/sig/collection/sources.rbs +44 -9
- data/sig/constant.rbs +1 -1
- data/sig/declarations.rbs +36 -3
- data/sig/definition.rbs +1 -1
- data/sig/definition_builder.rbs +0 -1
- data/sig/directives.rbs +61 -0
- data/sig/environment.rbs +150 -29
- data/sig/environment_loader.rbs +1 -1
- data/sig/errors.rbs +22 -1
- data/sig/locator.rbs +14 -2
- data/sig/parser.rbs +8 -15
- data/sig/resolver/constant_resolver.rbs +1 -2
- data/sig/shims/{abstract_syntax_tree.rbs → _abstract_syntax_tree.rbs} +0 -0
- data/sig/shims/bundler.rbs +18 -0
- data/sig/shims/rubygems.rbs +6 -0
- data/sig/use_map.rbs +35 -0
- data/sig/validator.rbs +12 -5
- data/sig/writer.rbs +4 -2
- data/stdlib/bigdecimal/0/big_decimal.rbs +16 -13
- data/stdlib/cgi/0/core.rbs +16 -0
- data/stdlib/coverage/0/coverage.rbs +50 -8
- data/stdlib/csv/0/csv.rbs +1 -1
- data/stdlib/date/0/date.rbs +856 -726
- data/stdlib/date/0/date_time.rbs +83 -210
- data/stdlib/erb/0/erb.rbs +13 -36
- data/stdlib/etc/0/etc.rbs +127 -20
- data/stdlib/fileutils/0/fileutils.rbs +1290 -381
- data/stdlib/logger/0/logger.rbs +466 -316
- data/stdlib/net-http/0/net-http.rbs +2211 -534
- data/stdlib/nkf/0/nkf.rbs +5 -5
- data/stdlib/objspace/0/objspace.rbs +31 -14
- data/stdlib/openssl/0/openssl.rbs +11 -7
- data/stdlib/optparse/0/optparse.rbs +20 -17
- data/stdlib/pathname/0/pathname.rbs +21 -4
- data/stdlib/pstore/0/pstore.rbs +378 -154
- data/stdlib/pty/0/pty.rbs +24 -8
- data/stdlib/ripper/0/ripper.rbs +1650 -0
- data/stdlib/socket/0/addrinfo.rbs +9 -15
- data/stdlib/socket/0/socket.rbs +36 -3
- data/stdlib/strscan/0/string_scanner.rbs +7 -5
- data/stdlib/tempfile/0/tempfile.rbs +104 -44
- data/stdlib/time/0/time.rbs +2 -2
- data/stdlib/uri/0/file.rbs +5 -0
- data/stdlib/uri/0/generic.rbs +2 -2
- data/stdlib/yaml/0/yaml.rbs +2 -2
- data/stdlib/zlib/0/zlib.rbs +1 -1
- metadata +13 -13
- data/core/deprecated.rbs +0 -9
- data/lib/rbs/constant_table.rb +0 -167
- data/lib/rbs/type_name_resolver.rb +0 -67
- data/sig/constant_table.rbs +0 -30
- data/sig/shims/ripper.rbs +0 -8
- data/sig/type_name_resolver.rbs +0 -26
- data/steep/Gemfile +0 -3
- data/steep/Gemfile.lock +0 -61
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3311021fa8dd522c500cc5c388590108f4fd0ebf6d6c5c37afc522f37b49d579
|
4
|
+
data.tar.gz: 832f3b9d95b142a2bb95fe14f5e1bb7919dc441cab94b67458d48411d8dc325f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 362ea45210850eddd3fd5eff4b5ba5970a3d736a6c3ef2c86d85ec47d94174649e032e179fc81d486d45df6ae67c1ab9b90bbe1baecae1e4ecb307ea7cc9fc13
|
7
|
+
data.tar.gz: 118e7afe25837dd3b4d0d0324c5162f35cf1fd973365b5c0b1a009a4b422a584a3db274d38118038ec86fff7f55cfa95703a2214f06d0b8d72f417d2126dfbaf
|
@@ -5,12 +5,13 @@ on:
|
|
5
5
|
branches:
|
6
6
|
- master
|
7
7
|
pull_request: {}
|
8
|
+
merge_group: {}
|
8
9
|
|
9
10
|
jobs:
|
10
11
|
test:
|
11
12
|
runs-on: "ubuntu-latest"
|
12
13
|
container:
|
13
|
-
image: rubylang/ruby:3.
|
14
|
+
image: rubylang/ruby:3.2-dev-focal
|
14
15
|
steps:
|
15
16
|
- uses: actions/checkout@v3
|
16
17
|
- name: Install dependencies
|
data/.github/workflows/ruby.yml
CHANGED
@@ -5,9 +5,7 @@ on:
|
|
5
5
|
branches:
|
6
6
|
- master
|
7
7
|
pull_request: {}
|
8
|
-
|
9
|
-
env:
|
10
|
-
LANG: 'C.UTF-8'
|
8
|
+
merge_group: {}
|
11
9
|
|
12
10
|
jobs:
|
13
11
|
test:
|
@@ -16,6 +14,7 @@ jobs:
|
|
16
14
|
matrix:
|
17
15
|
container_tag:
|
18
16
|
- master-nightly-focal
|
17
|
+
- 3.2-dev-focal
|
19
18
|
- 3.1-dev-focal
|
20
19
|
- 3.0-dev-focal
|
21
20
|
- 2.7-dev-bionic
|
@@ -35,6 +34,8 @@ jobs:
|
|
35
34
|
job: stdlib_test
|
36
35
|
- container_tag: 3.0-dev-focal
|
37
36
|
job: stdlib_test
|
37
|
+
- container_tag: 3.1-dev-focal
|
38
|
+
job: stdlib_test
|
38
39
|
container:
|
39
40
|
image: rubylang/ruby:${{ matrix.container_tag }}
|
40
41
|
steps:
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,34 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## 2.8.4 (2023-01-20)
|
6
|
+
|
7
|
+
### Miscellaneous
|
8
|
+
|
9
|
+
* Make `rake stdlib_test` run with single process (Backport [#1207](https://github.com/ruby/rbs/pull/1207), [#1211](https://github.com/ruby/rbs/pull/1211))
|
10
|
+
* Remove `steep/*` files from `.gem` (Backport [#1214](https://github.com/ruby/rbs/pull/1214), [#1216](https://github.com/ruby/rbs/pull/1216))
|
11
|
+
|
12
|
+
## 2.8.3 (2023-01-06)
|
13
|
+
|
14
|
+
### Library changes
|
15
|
+
|
16
|
+
* Use `-std=gnu99` instead of `-std=c99` (Backport [#973](https://github.com/ruby/rbs/pull/973))
|
17
|
+
* Add `rbs_` prefix to `skip` function (Backport [#1186](https://github.com/ruby/rbs/pull/1186))
|
18
|
+
|
19
|
+
## 2.8.2 (2022-12-21)
|
20
|
+
|
21
|
+
### Signature updates
|
22
|
+
|
23
|
+
* `YAML.load` ([#1170](https://github.com/ruby/rbs/pull/1170))
|
24
|
+
|
25
|
+
### Library changes
|
26
|
+
|
27
|
+
* Add the methods of the `prepend`ed module itself ([#1182](https://github.com/ruby/rbs/pull/1182))
|
28
|
+
|
29
|
+
### Miscellaneous
|
30
|
+
|
31
|
+
* Add `TestSkip` module to skip tests that fails in ruby CI ([#1167](https://github.com/ruby/rbs/pull/1167))
|
32
|
+
|
5
33
|
## 2.8.1 (2022-11-28)
|
6
34
|
|
7
35
|
### Signature updates
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rbs (3.0.0.dev.
|
4
|
+
rbs (3.0.0.dev.3)
|
5
5
|
|
6
6
|
PATH
|
7
7
|
remote: test/assets/test-gem
|
@@ -17,7 +17,7 @@ GEM
|
|
17
17
|
dbm (1.1.0)
|
18
18
|
debase (0.2.5.beta2)
|
19
19
|
debase-ruby_core_source (>= 0.10.12)
|
20
|
-
debase-ruby_core_source (
|
20
|
+
debase-ruby_core_source (3.2.0)
|
21
21
|
diff-lcs (1.5.0)
|
22
22
|
digest (3.1.1)
|
23
23
|
forwardable (1.3.2)
|
@@ -32,7 +32,7 @@ GEM
|
|
32
32
|
marcel (1.0.2)
|
33
33
|
minitest (5.17.0)
|
34
34
|
parallel (1.22.1)
|
35
|
-
parser (3.1.
|
35
|
+
parser (3.2.1.0)
|
36
36
|
ast (~> 2.4.1)
|
37
37
|
power_assert (2.0.2)
|
38
38
|
prime (0.1.2)
|
@@ -47,7 +47,7 @@ GEM
|
|
47
47
|
rake
|
48
48
|
rdoc (6.4.0)
|
49
49
|
psych (>= 4.0.0)
|
50
|
-
regexp_parser (2.
|
50
|
+
regexp_parser (2.7.0)
|
51
51
|
rexml (3.2.5)
|
52
52
|
rspec (3.12.0)
|
53
53
|
rspec-core (~> 3.12.0)
|
@@ -62,18 +62,18 @@ GEM
|
|
62
62
|
diff-lcs (>= 1.2.0, < 2.0)
|
63
63
|
rspec-support (~> 3.12.0)
|
64
64
|
rspec-support (3.12.0)
|
65
|
-
rubocop (1.
|
65
|
+
rubocop (1.45.1)
|
66
66
|
json (~> 2.3)
|
67
67
|
parallel (~> 1.10)
|
68
|
-
parser (>= 3.
|
68
|
+
parser (>= 3.2.0.0)
|
69
69
|
rainbow (>= 2.2.2, < 4.0)
|
70
70
|
regexp_parser (>= 1.8, < 3.0)
|
71
71
|
rexml (>= 3.2.5, < 4.0)
|
72
|
-
rubocop-ast (>= 1.
|
72
|
+
rubocop-ast (>= 1.24.1, < 2.0)
|
73
73
|
ruby-progressbar (~> 1.7)
|
74
|
-
unicode-display_width (>=
|
75
|
-
rubocop-ast (1.
|
76
|
-
parser (>= 3.
|
74
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
75
|
+
rubocop-ast (1.26.0)
|
76
|
+
parser (>= 3.2.1.0)
|
77
77
|
rubocop-rubycw (0.1.6)
|
78
78
|
rubocop (~> 1.0)
|
79
79
|
ruby-debug-ide (0.7.3)
|
@@ -86,7 +86,7 @@ GEM
|
|
86
86
|
tempfile (0.1.3)
|
87
87
|
test-unit (3.5.7)
|
88
88
|
power_assert
|
89
|
-
unicode-display_width (2.
|
89
|
+
unicode-display_width (2.4.2)
|
90
90
|
|
91
91
|
PLATFORMS
|
92
92
|
ruby
|
@@ -115,4 +115,4 @@ DEPENDENCIES
|
|
115
115
|
test-unit
|
116
116
|
|
117
117
|
BUNDLED WITH
|
118
|
-
2.
|
118
|
+
2.4.6
|
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -69,7 +69,15 @@ FileList["test/stdlib/**/*_test.rb"].each do |test|
|
|
69
69
|
task test => :compile do
|
70
70
|
sh "#{ruby} -Ilib #{bin}/test_runner.rb #{test}"
|
71
71
|
end
|
72
|
-
|
72
|
+
end
|
73
|
+
|
74
|
+
task :stdlib_test do
|
75
|
+
test_files = FileList["test/stdlib/**/*_test.rb"].reject do |path|
|
76
|
+
path =~ %r{Ractor}
|
77
|
+
end
|
78
|
+
sh "#{ruby} -Ilib #{bin}/test_runner.rb #{test_files.join(' ')}"
|
79
|
+
# TODO: Ractor tests need to be run in a separate process
|
80
|
+
sh "#{ruby} -Ilib #{bin}/test_runner.rb test/stdlib/Ractor_test.rb"
|
73
81
|
end
|
74
82
|
|
75
83
|
task :rubocop do
|
@@ -135,7 +143,7 @@ namespace :generate do
|
|
135
143
|
class <%= target %>SingletonTest < Test::Unit::TestCase
|
136
144
|
include TypeAssertions
|
137
145
|
|
138
|
-
# library "pathname", "
|
146
|
+
# library "pathname", "securerandom" # Declare library signatures to load
|
139
147
|
testing "singleton(::<%= target %>)"
|
140
148
|
|
141
149
|
<%- class_methods.each do |method_name, definition| %>
|
@@ -153,7 +161,7 @@ namespace :generate do
|
|
153
161
|
class <%= target %>Test < Test::Unit::TestCase
|
154
162
|
include TypeAssertions
|
155
163
|
|
156
|
-
# library "pathname", "
|
164
|
+
# library "pathname", "securerandom" # Declare library signatures to load
|
157
165
|
testing "::<%= target %>"
|
158
166
|
|
159
167
|
<%- instance_methods.each do |method_name, definition| %>
|
@@ -225,3 +233,69 @@ task :test_generate_stdlib do
|
|
225
233
|
sh "RBS_GENERATE_TEST_PATH=/tmp/Thread_Mutex_test.rb rake 'generate:stdlib_test[Thread::Mutex]'"
|
226
234
|
sh "ruby -c /tmp/Thread_Mutex_test.rb"
|
227
235
|
end
|
236
|
+
|
237
|
+
Rake::Task[:release].enhance do
|
238
|
+
Rake::Task[:"release:note"].invoke
|
239
|
+
end
|
240
|
+
|
241
|
+
namespace :release do
|
242
|
+
desc "Explain the post-release steps automatically"
|
243
|
+
task :note do
|
244
|
+
version = Gem::Version.new(RBS::VERSION)
|
245
|
+
major, minor, patch, *_ = RBS::VERSION.split(".")
|
246
|
+
major = major.to_i
|
247
|
+
minor = minor.to_i
|
248
|
+
patch = patch.to_i
|
249
|
+
|
250
|
+
puts "🎉🎉🎉🎉 Congratulations for **#{version}** release! 🎉🎉🎉🎉"
|
251
|
+
puts
|
252
|
+
puts "There are a few things left to complete the release. 💪"
|
253
|
+
puts
|
254
|
+
|
255
|
+
if patch == 0 || version.prerelease?
|
256
|
+
puts "* [ ] Update release note: https://github.com/ruby/rbs/wiki/Release-Note-#{major}.#{minor}"
|
257
|
+
end
|
258
|
+
|
259
|
+
if patch == 0 && !version.prerelease?
|
260
|
+
puts "* [ ] Delete `RBS XYZ is the latest version of...` from release note: https://github.com/ruby/rbs/wiki/Release-Note-#{major}.#{minor}"
|
261
|
+
end
|
262
|
+
|
263
|
+
puts "* [ ] Publish a release at GitHub"
|
264
|
+
puts "* [ ] Make some announcements on Twitter/Mustdon/Slack/???"
|
265
|
+
|
266
|
+
puts
|
267
|
+
puts
|
268
|
+
|
269
|
+
puts "✏️ Making a draft release on GitHub..."
|
270
|
+
|
271
|
+
content = File.read(File.join(__dir__, "CHANGELOG.md"))
|
272
|
+
changelog = content.scan(/^## \d.*?(?=^## \d)/m)[0]
|
273
|
+
changelog = changelog.sub(/^.*\n^.*\n/, "").rstrip
|
274
|
+
|
275
|
+
notes = <<NOTES
|
276
|
+
[Release note](https://github.com/ruby/rbs/wiki/Release-Note-#{major}.#{minor})
|
277
|
+
|
278
|
+
#{changelog}
|
279
|
+
NOTES
|
280
|
+
|
281
|
+
command = [
|
282
|
+
"gh",
|
283
|
+
"release",
|
284
|
+
"create",
|
285
|
+
"--draft",
|
286
|
+
"v#{RBS::VERSION}",
|
287
|
+
"--title=#{RBS::VERSION}",
|
288
|
+
"--notes=#{notes}"
|
289
|
+
]
|
290
|
+
|
291
|
+
if version.prerelease?
|
292
|
+
command << "--prerelease"
|
293
|
+
end
|
294
|
+
|
295
|
+
require "open3"
|
296
|
+
output, status = Open3.capture2(*command)
|
297
|
+
if status.success?
|
298
|
+
puts " >> Done! Open #{output.chomp} and publish the release!"
|
299
|
+
end
|
300
|
+
end
|
301
|
+
end
|
data/Steepfile
CHANGED
@@ -9,7 +9,7 @@ target :lib do
|
|
9
9
|
"lib/rbs/test.rb"
|
10
10
|
)
|
11
11
|
|
12
|
-
library "set", "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest'
|
12
|
+
library "set", "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest', 'ripper'
|
13
13
|
signature 'stdlib/yaml/0'
|
14
14
|
signature "stdlib/strscan/0/"
|
15
15
|
signature "stdlib/optparse/0/"
|