From c590b80ed324d7168ffcb1163f9bf0260609fe09 Mon Sep 17 00:00:00 2001 From: Earlopain <14981592+Earlopain@users.noreply.github.com> Date: Thu, 6 Jun 2024 08:44:39 +0200 Subject: [PATCH 01/28] Don't try to sign git commits when running tests I have git set up to always sign with a key that requires a password, this would require me to enter that password when running tests. Git allows overwriting config for a single invocation, lets just do that --- test/rbs/collection/sources/git_test.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/rbs/collection/sources/git_test.rb b/test/rbs/collection/sources/git_test.rb index 108f826d8..e567c5bb0 100644 --- a/test/rbs/collection/sources/git_test.rb +++ b/test/rbs/collection/sources/git_test.rb @@ -56,6 +56,8 @@ def test_resolved_revision_updated_after_fetch git "init", chdir: origin_repo git "config", "user.email", "you@example.com", chdir: origin_repo git "config", "user.name", "Your Name", chdir: origin_repo + # Ignore potential signing key protected by passphrase + git "config", "commit.gpgsign", "false", chdir: origin_repo git "checkout", "-b", "main", chdir: origin_repo git "commit", "--allow-empty", "-m", "Initial commit", chdir: origin_repo From 45d4d1681e48198b442d3015192c5ff9563a3e06 Mon Sep 17 00:00:00 2001 From: Earlopain <14981592+Earlopain@users.noreply.github.com> Date: Thu, 6 Jun 2024 08:47:23 +0200 Subject: [PATCH 02/28] Add explicit dependency on the `logger` gem This is being bundled, starting in Ruby 3.4 it will warn: https://github.com/ruby/ruby/commit/d7e558e3c48c213d0e8bedca4fb547db55613f7c --- Gemfile.lock | 1 + rbs.gemspec | 1 + 2 files changed, 2 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index d9cf41358..25c1253b3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,6 +2,7 @@ PATH remote: . specs: rbs (3.5.0) + logger PATH remote: test/assets/test-gem diff --git a/rbs.gemspec b/rbs.gemspec index dc466a7ff..b0a4b9101 100644 --- a/rbs.gemspec +++ b/rbs.gemspec @@ -41,4 +41,5 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] spec.required_ruby_version = ">= 3.0" + spec.add_dependency "logger" end From 7071ff8bafdbafc378bbf963e286ed871177f029 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 7 Jun 2024 10:07:05 +0900 Subject: [PATCH 03/28] Add `RBS_LOC_CHILDREN_SIZE` macro --- ext/rbs_extension/location.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ext/rbs_extension/location.c b/ext/rbs_extension/location.c index 43051bb53..60f03aea5 100644 --- a/ext/rbs_extension/location.c +++ b/ext/rbs_extension/location.c @@ -2,6 +2,7 @@ #define RBS_LOC_REQUIRED_P(loc, i) ((loc)->children->required_p & (1 << (i))) #define RBS_LOC_OPTIONAL_P(loc, i) (!RBS_LOC_REQUIRED_P((loc), (i))) +#define RBS_LOC_CHILDREN_SIZE(cap) (sizeof(rbs_loc_children) + sizeof(rbs_loc_entry) * (cap)) VALUE RBS_Location; @@ -25,7 +26,7 @@ static void check_children_max(unsigned short n) { void rbs_loc_alloc_children(rbs_loc *loc, unsigned short cap) { check_children_max(cap); - size_t s = sizeof(rbs_loc_children) + sizeof(rbs_loc_entry) * cap; + size_t s = RBS_LOC_CHILDREN_SIZE(cap); loc->children = malloc(s); loc->children->len = 0; @@ -39,7 +40,7 @@ static void check_children_cap(rbs_loc *loc) { } else { if (loc->children->len == loc->children->cap) { check_children_max(loc->children->cap + 1); - size_t s = sizeof(rbs_loc_children) + sizeof(rbs_loc_entry) * (++loc->children->cap); + size_t s = RBS_LOC_CHILDREN_SIZE(++loc->children->cap); loc->children = realloc(loc->children, s); } } @@ -85,7 +86,7 @@ static size_t rbs_loc_memsize(const void *ptr) { if (loc->children == NULL) { return sizeof(rbs_loc); } else { - return sizeof(rbs_loc) + sizeof(rbs_loc_children) + sizeof(rbs_loc_entry) * loc->children->cap; + return sizeof(rbs_loc) + RBS_LOC_CHILDREN_SIZE(loc->children->cap); } } @@ -129,7 +130,7 @@ static VALUE location_initialize_copy(VALUE self, VALUE other) { self_loc->rg = other_loc->rg; if (other_loc->children != NULL) { rbs_loc_alloc_children(self_loc, other_loc->children->cap); - memcpy(self_loc->children, other_loc->children, sizeof(rbs_loc_children) + sizeof(rbs_loc_entry) * other_loc->children->cap); + memcpy(self_loc->children, other_loc->children, RBS_LOC_CHILDREN_SIZE(other_loc->children->cap)); } return Qnil; From 88a72b8ca4a6a92b3f7615040d6622dd157f7148 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Thu, 6 Jun 2024 18:01:17 +0900 Subject: [PATCH 04/28] Make c99, c23 compatible --- ext/rbs_extension/location.c | 2 +- ext/rbs_extension/location.h | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ext/rbs_extension/location.c b/ext/rbs_extension/location.c index 60f03aea5..3f6f70190 100644 --- a/ext/rbs_extension/location.c +++ b/ext/rbs_extension/location.c @@ -2,7 +2,7 @@ #define RBS_LOC_REQUIRED_P(loc, i) ((loc)->children->required_p & (1 << (i))) #define RBS_LOC_OPTIONAL_P(loc, i) (!RBS_LOC_REQUIRED_P((loc), (i))) -#define RBS_LOC_CHILDREN_SIZE(cap) (sizeof(rbs_loc_children) + sizeof(rbs_loc_entry) * (cap)) +#define RBS_LOC_CHILDREN_SIZE(cap) (sizeof(rbs_loc_children) + sizeof(rbs_loc_entry) * ((cap) - 1)) VALUE RBS_Location; diff --git a/ext/rbs_extension/location.h b/ext/rbs_extension/location.h index 63b926e55..b8d1ddf14 100644 --- a/ext/rbs_extension/location.h +++ b/ext/rbs_extension/location.h @@ -16,17 +16,19 @@ typedef struct { typedef unsigned int rbs_loc_entry_bitmap; +// The flexible array always allocates, but it's okay. +// This struct is not allocated when the `rbs_loc` doesn't have children. typedef struct { unsigned short len; unsigned short cap; rbs_loc_entry_bitmap required_p; - rbs_loc_entry entries[0]; + rbs_loc_entry entries[1]; } rbs_loc_children; typedef struct { VALUE buffer; range rg; - rbs_loc_children *children; + rbs_loc_children *children; // NULL when no children is allocated } rbs_loc; /** From 4fdfab6596ae5df9b6f304123031dd27eb26acf7 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 7 Jun 2024 12:05:54 +0900 Subject: [PATCH 05/28] Version 3.5.1.pre.1 --- Gemfile.lock | 2 +- lib/rbs/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d9cf41358..3b93c4c24 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - rbs (3.5.0) + rbs (3.5.1.pre.1) PATH remote: test/assets/test-gem diff --git a/lib/rbs/version.rb b/lib/rbs/version.rb index 04ec38584..ae242bb93 100644 --- a/lib/rbs/version.rb +++ b/lib/rbs/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module RBS - VERSION = "3.5.0" + VERSION = "3.5.1.pre.1" end From 45b34bd9bf9a2b6872ae832f6a344b23dc75ec3d Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 7 Jun 2024 12:37:24 +0900 Subject: [PATCH 06/28] Version 3.5.1 --- CHANGELOG.md | 11 +++++++++++ Gemfile.lock | 2 +- lib/rbs/version.rb | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90298b1ed..67ba0c188 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # CHANGELOG +## 3.5.1 (2024-06-07) + +### Library changes + +* Add explicit dependency on the `logger` gem ([#1865](https://github.com/ruby/rbs/pull/1865)) +* Make c99, c23 compatible ([#1870](https://github.com/ruby/rbs/pull/1870)) + +### Miscellaneous + +* Don't try to sign git commits when running tests ([#1867](https://github.com/ruby/rbs/pull/1867)) + ## 3.5.0 (2024-06-06) ### Signature updates diff --git a/Gemfile.lock b/Gemfile.lock index c168a8bff..64ab49c23 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - rbs (3.5.1.pre.1) + rbs (3.5.1) logger PATH diff --git a/lib/rbs/version.rb b/lib/rbs/version.rb index ae242bb93..5f6f01d6b 100644 --- a/lib/rbs/version.rb +++ b/lib/rbs/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module RBS - VERSION = "3.5.1.pre.1" + VERSION = "3.5.1" end From 73c64e0cf271acc40ff2467bd54d328a1b37bfa8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 06:31:37 +0000 Subject: [PATCH 07/28] Bump rbs from 3.5.0 to 3.5.1 in /steep Bumps [rbs](https://github.com/ruby/rbs) from 3.5.0 to 3.5.1. - [Release notes](https://github.com/ruby/rbs/releases) - [Changelog](https://github.com/ruby/rbs/blob/master/CHANGELOG.md) - [Commits](https://github.com/ruby/rbs/compare/v3.5.0...v3.5.1) --- updated-dependencies: - dependency-name: rbs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- steep/Gemfile.lock | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/steep/Gemfile.lock b/steep/Gemfile.lock index e27eee945..26de01b0a 100644 --- a/steep/Gemfile.lock +++ b/steep/Gemfile.lock @@ -38,7 +38,8 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rbs (3.5.0) + rbs (3.5.1) + logger securerandom (0.3.1) steep (1.6.0) activesupport (>= 5.1) From f8dac01bb7cdaf564ab88c05cb5ea8a5948085a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 06:34:55 +0000 Subject: [PATCH 08/28] Bump rexml from 3.2.8 to 3.2.9 Bumps [rexml](https://github.com/ruby/rexml) from 3.2.8 to 3.2.9. - [Release notes](https://github.com/ruby/rexml/releases) - [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md) - [Commits](https://github.com/ruby/rexml/compare/v3.2.8...v3.2.9) --- updated-dependencies: - dependency-name: rexml dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 64ab49c23..93b733ad5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -85,8 +85,8 @@ GEM rdoc (6.6.3.1) psych (>= 4.0.0) regexp_parser (2.9.2) - rexml (3.2.8) - strscan (>= 3.0.9) + rexml (3.2.9) + strscan rspec (3.13.0) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) From f579fa95316857a41e46598fd85fdf78ec195d85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 06:35:28 +0000 Subject: [PATCH 09/28] Bump raap from 0.7.0 to 0.8.0 Bumps raap from 0.7.0 to 0.8.0. --- updated-dependencies: - dependency-name: raap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 64ab49c23..b0192a4a5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -71,7 +71,7 @@ GEM psych (4.0.6) stringio public_suffix (5.0.5) - raap (0.7.0) + raap (0.8.0) rbs (~> 3.0) timeout (~> 0.4) racc (1.8.0) From e8cadba553c1c779b9c00866d533fe432963ed54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 06:37:09 +0000 Subject: [PATCH 10/28] Bump concurrent-ruby from 1.3.1 to 1.3.3 in /steep Bumps [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) from 1.3.1 to 1.3.3. - [Release notes](https://github.com/ruby-concurrency/concurrent-ruby/releases) - [Changelog](https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.1...v1.3.3) --- updated-dependencies: - dependency-name: concurrent-ruby dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- steep/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steep/Gemfile.lock b/steep/Gemfile.lock index 26de01b0a..e0d71701b 100644 --- a/steep/Gemfile.lock +++ b/steep/Gemfile.lock @@ -14,7 +14,7 @@ GEM ast (2.4.2) base64 (0.2.0) bigdecimal (3.1.8) - concurrent-ruby (1.3.1) + concurrent-ruby (1.3.3) connection_pool (2.4.1) csv (3.3.0) drb (2.2.1) From 1e4512e067750d10a9fa5341b8ebd173c4b90ca2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 06:52:09 +0000 Subject: [PATCH 11/28] Bump concurrent-ruby from 1.3.1 to 1.3.3 Bumps [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) from 1.3.1 to 1.3.3. - [Release notes](https://github.com/ruby-concurrency/concurrent-ruby/releases) - [Changelog](https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.1...v1.3.3) --- updated-dependencies: - dependency-name: concurrent-ruby dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index d1828aa36..79a458d1b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -29,7 +29,7 @@ GEM base64 (0.2.0) benchmark-ips (2.13.0) bigdecimal (3.1.8) - concurrent-ruby (1.3.1) + concurrent-ruby (1.3.3) connection_pool (2.4.1) csv (3.3.0) dbm (1.1.0) From 0326461002db55bf12fd4df41ba93cbb3dca1a65 Mon Sep 17 00:00:00 2001 From: ksss Date: Tue, 11 Jun 2024 17:13:41 +0900 Subject: [PATCH 12/28] Make it a syntax error when the keys of keyword arguments are duplicated. --- ext/rbs_extension/parser.c | 21 +++++++++++++++++---- test/rbs/parser_test.rb | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 4 deletions(-) diff --git a/ext/rbs_extension/parser.c b/ext/rbs_extension/parser.c index cafb4a0d5..df21e187d 100644 --- a/ext/rbs_extension/parser.c +++ b/ext/rbs_extension/parser.c @@ -329,11 +329,22 @@ static VALUE parse_keyword_key(parserstate *state) { /* keyword ::= {} keyword `:` */ -static void parse_keyword(parserstate *state, VALUE keywords) { +static void parse_keyword(parserstate *state, VALUE keywords, VALUE memo) { VALUE key; VALUE param; key = parse_keyword_key(state); + + if (!NIL_P(rb_hash_aref(memo, key))) { + raise_syntax_error( + state, + state->current_token, + "duplicated keyword argument" + ); + } else { + rb_hash_aset(memo, key, Qtrue); + } + parser_advance_assert(state, pCOLON); param = parse_function_param(state); @@ -403,6 +414,8 @@ static void parse_params(parserstate *state, method_params *params) { return; } + VALUE memo = rb_hash_new(); + while (true) { VALUE param; @@ -441,7 +454,7 @@ static void parse_params(parserstate *state, method_params *params) { parser_advance(state); if (is_keyword(state)) { - parse_keyword(state, params->optional_keywords); + parse_keyword(state, params->optional_keywords, memo); parser_advance_if(state, pCOMMA); goto PARSE_KEYWORDS; } @@ -506,7 +519,7 @@ static void parse_params(parserstate *state, method_params *params) { case pQUESTION: parser_advance(state); if (is_keyword(state)) { - parse_keyword(state, params->optional_keywords); + parse_keyword(state, params->optional_keywords, memo); } else { raise_syntax_error( state, @@ -529,7 +542,7 @@ static void parse_params(parserstate *state, method_params *params) { case tBANGIDENT: KEYWORD_CASES if (is_keyword(state)) { - parse_keyword(state, params->required_keywords); + parse_keyword(state, params->required_keywords, memo); } else { raise_syntax_error( state, diff --git a/test/rbs/parser_test.rb b/test/rbs/parser_test.rb index e0e217e49..ea0e9bcd2 100644 --- a/test/rbs/parser_test.rb +++ b/test/rbs/parser_test.rb @@ -669,6 +669,44 @@ def test_parse_method_type end end + def test_duplicate_keyword + RBS::Parser.parse_method_type(buffer("(top foo, foo: top) -> void")).tap do |method_type| + assert_equal "top foo, foo: top", method_type.type.param_to_s + end + + RBS::Parser.parse_method_type(buffer("(?foo, foo: top) -> void")).tap do |method_type| + assert_equal "?foo, foo: top", method_type.type.param_to_s + end + + RBS::Parser.parse_method_type(buffer("(foo: top, **top foo) -> void")).tap do |method_type| + assert_equal "foo: top, **top foo", method_type.type.param_to_s + end + + assert_raises RBS::ParsingError do + RBS::Parser.parse_method_type(buffer("(foo: top, foo: top) -> void")) + end.tap do |exn| + assert_equal "test.rbs:1:11...1:14: Syntax error: duplicated keyword argument, token=`foo` (tLIDENT)", exn.message + end + + assert_raises RBS::ParsingError do + RBS::Parser.parse_method_type(buffer("(foo: top, ?foo: top) -> void")) + end.tap do |exn| + assert_equal "test.rbs:1:12...1:15: Syntax error: duplicated keyword argument, token=`foo` (tLIDENT)", exn.message + end + + assert_raises RBS::ParsingError do + RBS::Parser.parse_method_type(buffer("(?foo: top, foo: top) -> void")) + end.tap do |exn| + assert_equal "test.rbs:1:12...1:15: Syntax error: duplicated keyword argument, token=`foo` (tLIDENT)", exn.message + end + + assert_raises RBS::ParsingError do + RBS::Parser.parse_method_type(buffer("(?foo: top, ?foo: top) -> void")) + end.tap do |exn| + assert_equal "test.rbs:1:13...1:16: Syntax error: duplicated keyword argument, token=`foo` (tLIDENT)", exn.message + end + end + def test_parse_method_type2 RBS::Parser.parse_method_type(buffer("(foo?: String, bar!: Integer) -> void")).tap do |method_type| assert_equal "foo?: String, bar!: Integer", method_type.type.param_to_s From 6162dfd5d534355db2b94945c149ff025e1435a1 Mon Sep 17 00:00:00 2001 From: ksss Date: Tue, 11 Jun 2024 17:58:09 +0900 Subject: [PATCH 13/28] Keys of record also --- ext/rbs_extension/parser.c | 12 +++++++++ test/rbs/type_parsing_test.rb | 50 +++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/ext/rbs_extension/parser.c b/ext/rbs_extension/parser.c index df21e187d..e2064a1be 100644 --- a/ext/rbs_extension/parser.c +++ b/ext/rbs_extension/parser.c @@ -726,6 +726,16 @@ static VALUE parse_proc_type(parserstate *state) { return rbs_proc(function, block, loc, proc_self); } +static void check_key_duplication(parserstate *state, VALUE fields, VALUE key) { + if (!NIL_P(rb_hash_aref(fields, key))) { + raise_syntax_error( + state, + state->current_token, + "duplicated record key" + ); + } +} + /** * ... `{` ... `}` ... * > > @@ -757,6 +767,7 @@ VALUE parse_record_attributes(parserstate *state) { if (is_keyword(state)) { // { foo: type } syntax key = parse_keyword_key(state); + check_key_duplication(state, fields, key); parser_advance_assert(state, pCOLON); } else { // { key => type } syntax @@ -778,6 +789,7 @@ VALUE parse_record_attributes(parserstate *state) { "unexpected record key token" ); } + check_key_duplication(state, fields, key); parser_advance_assert(state, pFATARROW); } type = parse_type(state); diff --git a/test/rbs/type_parsing_test.rb b/test/rbs/type_parsing_test.rb index 27ea589eb..7a60203e7 100644 --- a/test/rbs/type_parsing_test.rb +++ b/test/rbs/type_parsing_test.rb @@ -705,6 +705,56 @@ def test_record_with_union_key assert_equal "a.rbs:1:3...1:4: Syntax error: expected a token `pFATARROW`, token=`|` (pBAR)", error.message end + def test_record_key_duplication + assert_raises(RBS::ParsingError) do + Parser.parse_type('{ foo: Integer, foo: String }') + end.tap do |error| + assert_equal "tLIDENT", error.token_type + assert_equal "foo", error.location.source + assert_equal "a.rbs:1:16...1:19: Syntax error: duplicated record key, token=`foo` (tLIDENT)", error.message + end + + assert_raises(RBS::ParsingError) do + Parser.parse_type('{ foo: Integer, ?foo: String }') + end.tap do |error| + assert_equal "tLIDENT", error.token_type + assert_equal "foo", error.location.source + assert_equal "a.rbs:1:17...1:20: Syntax error: duplicated record key, token=`foo` (tLIDENT)", error.message + end + + assert_raises(RBS::ParsingError) do + Parser.parse_type('{ ?foo: Integer, ?foo: String }') + end.tap do |error| + assert_equal "tLIDENT", error.token_type + assert_equal "foo", error.location.source + assert_equal "a.rbs:1:18...1:21: Syntax error: duplicated record key, token=`foo` (tLIDENT)", error.message + end + + assert_raises(RBS::ParsingError) do + Parser.parse_type('{ foo: 1, "foo" => 2, \'foo\' => 3 }') + end.tap do |error| + assert_equal "tSQSTRING", error.token_type + assert_equal "'foo'", error.location.source + assert_equal "a.rbs:1:22...1:27: Syntax error: duplicated record key, token=`'foo'` (tSQSTRING)", error.message + end + + assert_raises(RBS::ParsingError) do + Parser.parse_type('{ foo: 1, \'foo\' => 2, "foo" => 3 }') + end.tap do |error| + assert_equal "tDQSTRING", error.token_type + assert_equal '"foo"', error.location.source + assert_equal "a.rbs:1:22...1:27: Syntax error: duplicated record key, token=`\"foo\"` (tDQSTRING)", error.message + end + + assert_raises(RBS::ParsingError) do + Parser.parse_type('{ void => 1, void: 2 }') + end.tap do |error| + assert_equal "kVOID", error.token_type + assert_equal 'void', error.location.source + assert_equal "a.rbs:1:2...1:6: Syntax error: unexpected record key token, token=`void` (kVOID)", error.message + end + end + def test_type_var Parser.parse_type("Array[A]", variables: []).yield_self do |type| assert_instance_of Types::ClassInstance, type From 85b13143029e6a30d9b368d9276e7cd3481d8b78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 06:49:45 +0000 Subject: [PATCH 14/28] Bump rexml from 3.2.9 to 3.3.0 Bumps [rexml](https://github.com/ruby/rexml) from 3.2.9 to 3.3.0. - [Release notes](https://github.com/ruby/rexml/releases) - [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md) - [Commits](https://github.com/ruby/rexml/compare/v3.2.9...v3.3.0) --- updated-dependencies: - dependency-name: rexml dependency-type: indirect update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 79a458d1b..db2b7b431 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -85,7 +85,7 @@ GEM rdoc (6.6.3.1) psych (>= 4.0.0) regexp_parser (2.9.2) - rexml (3.2.9) + rexml (3.3.0) strscan rspec (3.13.0) rspec-core (~> 3.13.0) From 81b8655c9e0b0bfff00865de1ffced4dc379a963 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 06:50:47 +0000 Subject: [PATCH 15/28] Bump steep from 1.7.0.dev.4 to 1.7.1 Bumps [steep](https://github.com/soutaro/steep) from 1.7.0.dev.4 to 1.7.1. - [Release notes](https://github.com/soutaro/steep/releases) - [Changelog](https://github.com/soutaro/steep/blob/master/CHANGELOG.md) - [Commits](https://github.com/soutaro/steep/compare/v1.7.0.dev.4...v1.7.1) --- updated-dependencies: - dependency-name: steep dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index b02cd17df..7400b55a1 100644 --- a/Gemfile +++ b/Gemfile @@ -42,5 +42,5 @@ group :minitest do end group :typecheck_test do - gem "steep", "~> 1.7.0.dev", require: false + gem "steep", "~> 1.7.1", require: false end diff --git a/Gemfile.lock b/Gemfile.lock index 79a458d1b..da8caf0b4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -118,7 +118,7 @@ GEM ruby-progressbar (1.13.0) securerandom (0.3.1) stackprof (0.2.26) - steep (1.7.0.dev.4) + steep (1.7.1) activesupport (>= 5.1) concurrent-ruby (>= 1.1.10) csv (>= 3.0.9) @@ -177,7 +177,7 @@ DEPENDENCIES rubocop rubocop-rubycw stackprof - steep (~> 1.7.0.dev) + steep (~> 1.7.1) tempfile test-unit From f594744902d2b2a99879b4f71c0548c2c4101269 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Thu, 13 Jun 2024 10:21:18 +0900 Subject: [PATCH 16/28] Update docs for ruby-3.3.3 --- core/rubygems/errors.rbs | 66 +++++++++++++++++++++++++++++ core/rubygems/rubygems.rbs | 66 +++++++++++++++++++++++++++++ stdlib/strscan/0/string_scanner.rbs | 8 ++-- 3 files changed, 136 insertions(+), 4 deletions(-) diff --git a/core/rubygems/errors.rbs b/core/rubygems/errors.rbs index d39535575..db3f0074f 100644 --- a/core/rubygems/errors.rbs +++ b/core/rubygems/errors.rbs @@ -94,6 +94,72 @@ # # -The RubyGems Team # +# +# Provides 3 methods for declaring when something is going away. +# +# +deprecate(name, repl, year, month)+: +# Indicate something may be removed on/after a certain date. +# +# +rubygems_deprecate(name, replacement=:none)+: +# Indicate something will be removed in the next major RubyGems version, +# and (optionally) a replacement for it. +# +# `rubygems_deprecate_command`: +# Indicate a RubyGems command (in +lib/rubygems/commands/*.rb+) will be +# removed in the next RubyGems version. +# +# Also provides `skip_during` for temporarily turning off deprecation warnings. +# This is intended to be used in the test suite, so deprecation warnings don't +# cause test failures if you need to make sure stderr is otherwise empty. +# +# Example usage of `deprecate` and `rubygems_deprecate`: +# +# class Legacy +# def self.some_class_method +# # ... +# end +# +# def some_instance_method +# # ... +# end +# +# def some_old_method +# # ... +# end +# +# extend Gem::Deprecate +# deprecate :some_instance_method, "X.z", 2011, 4 +# rubygems_deprecate :some_old_method, "Modern#some_new_method" +# +# class << self +# extend Gem::Deprecate +# deprecate :some_class_method, :none, 2011, 4 +# end +# end +# +# Example usage of `rubygems_deprecate_command`: +# +# class Gem::Commands::QueryCommand < Gem::Command +# extend Gem::Deprecate +# rubygems_deprecate_command +# +# # ... +# end +# +# Example usage of `skip_during`: +# +# class TestSomething < Gem::Testcase +# def test_some_thing_with_deprecations +# Gem::Deprecate.skip_during do +# actual_stdout, actual_stderr = capture_output do +# Gem.something_deprecated +# end +# assert_empty actual_stdout +# assert_equal(expected, actual_stderr) +# end +# end +# end +# module Gem # # Raised when RubyGems is unable to load or activate a gem. Contains the name diff --git a/core/rubygems/rubygems.rbs b/core/rubygems/rubygems.rbs index 456f8a498..35ae2855b 100644 --- a/core/rubygems/rubygems.rbs +++ b/core/rubygems/rubygems.rbs @@ -94,6 +94,72 @@ # # -The RubyGems Team # +# +# Provides 3 methods for declaring when something is going away. +# +# +deprecate(name, repl, year, month)+: +# Indicate something may be removed on/after a certain date. +# +# +rubygems_deprecate(name, replacement=:none)+: +# Indicate something will be removed in the next major RubyGems version, +# and (optionally) a replacement for it. +# +# `rubygems_deprecate_command`: +# Indicate a RubyGems command (in +lib/rubygems/commands/*.rb+) will be +# removed in the next RubyGems version. +# +# Also provides `skip_during` for temporarily turning off deprecation warnings. +# This is intended to be used in the test suite, so deprecation warnings don't +# cause test failures if you need to make sure stderr is otherwise empty. +# +# Example usage of `deprecate` and `rubygems_deprecate`: +# +# class Legacy +# def self.some_class_method +# # ... +# end +# +# def some_instance_method +# # ... +# end +# +# def some_old_method +# # ... +# end +# +# extend Gem::Deprecate +# deprecate :some_instance_method, "X.z", 2011, 4 +# rubygems_deprecate :some_old_method, "Modern#some_new_method" +# +# class << self +# extend Gem::Deprecate +# deprecate :some_class_method, :none, 2011, 4 +# end +# end +# +# Example usage of `rubygems_deprecate_command`: +# +# class Gem::Commands::QueryCommand < Gem::Command +# extend Gem::Deprecate +# rubygems_deprecate_command +# +# # ... +# end +# +# Example usage of `skip_during`: +# +# class TestSomething < Gem::Testcase +# def test_some_thing_with_deprecations +# Gem::Deprecate.skip_during do +# actual_stdout, actual_stderr = capture_output do +# Gem.something_deprecated +# end +# assert_empty actual_stdout +# assert_equal(expected, actual_stderr) +# end +# end +# end +# module Gem interface _HashLike[K, V] def each_pair: () { ([ K, V ]) -> untyped } -> self diff --git a/stdlib/strscan/0/string_scanner.rbs b/stdlib/strscan/0/string_scanner.rbs index 606ce7acd..27fa9a984 100644 --- a/stdlib/strscan/0/string_scanner.rbs +++ b/stdlib/strscan/0/string_scanner.rbs @@ -184,10 +184,10 @@ class StringScanner # If nothing was priorly matched, it returns nil. # # s = StringScanner.new("Fri Dec 12 1975 14:39") - # s.scan(/(\w+) (\w+) (\d+) /) # -> "Fri Dec 12 " - # s.captures # -> ["Fri", "Dec", "12"] - # s.scan(/(\w+) (\w+) (\d+) /) # -> nil - # s.captures # -> nil + # s.scan(/(\w+) (\w+) (\d+) (1980)?/) # -> "Fri Dec 12 " + # s.captures # -> ["Fri", "Dec", "12", nil] + # s.scan(/(\w+) (\w+) (\d+) (1980)?/) # -> nil + # s.captures # -> nil # def captures: () -> Array[String]? From 62be269a7ecbb938df41c28859742e570824dccc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 06:28:07 +0000 Subject: [PATCH 17/28] Bump steep from 1.6.0 to 1.7.1 in /steep Bumps [steep](https://github.com/soutaro/steep) from 1.6.0 to 1.7.1. - [Release notes](https://github.com/soutaro/steep/releases) - [Changelog](https://github.com/soutaro/steep/blob/master/CHANGELOG.md) - [Commits](https://github.com/soutaro/steep/compare/v1.6.0...v1.7.1) --- updated-dependencies: - dependency-name: steep dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- steep/Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/steep/Gemfile.lock b/steep/Gemfile.lock index e0d71701b..30e39b24d 100644 --- a/steep/Gemfile.lock +++ b/steep/Gemfile.lock @@ -41,7 +41,7 @@ GEM rbs (3.5.1) logger securerandom (0.3.1) - steep (1.6.0) + steep (1.7.1) activesupport (>= 5.1) concurrent-ruby (>= 1.1.10) csv (>= 3.0.9) @@ -52,7 +52,7 @@ GEM logger (>= 1.3.0) parser (>= 3.1) rainbow (>= 2.2.2, < 4.0) - rbs (>= 3.1.0) + rbs (>= 3.5.0.pre) securerandom (>= 0.1) strscan (>= 1.0.0) terminal-table (>= 2, < 4) From 5357b3b055cb1fab546115cb6702576ddcdb0976 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Thu, 13 Jun 2024 09:49:51 +0900 Subject: [PATCH 18/28] Update `has_parser?` method The type of `defined?` syntax was changed. --- lib/rbs/cli.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rbs/cli.rb b/lib/rbs/cli.rb index a60d39f43..4ffbb7538 100644 --- a/lib/rbs/cli.rb +++ b/lib/rbs/cli.rb @@ -109,7 +109,7 @@ def parse_logging_options(opts) end def has_parser? - defined?(RubyVM::AbstractSyntaxTree) + defined?(RubyVM::AbstractSyntaxTree) ? true : false end def run(args) From fb487ee0a7dddd2af05e3b3be8d835e677d52872 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 06:42:18 +0000 Subject: [PATCH 19/28] Bump parser from 3.3.2.0 to 3.3.3.0 in /steep Bumps [parser](https://github.com/whitequark/parser) from 3.3.2.0 to 3.3.3.0. - [Changelog](https://github.com/whitequark/parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/whitequark/parser/compare/v3.3.2.0...v3.3.3.0) --- updated-dependencies: - dependency-name: parser dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- steep/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steep/Gemfile.lock b/steep/Gemfile.lock index 30e39b24d..ed002002a 100644 --- a/steep/Gemfile.lock +++ b/steep/Gemfile.lock @@ -30,7 +30,7 @@ GEM logger (1.6.0) minitest (5.23.1) mutex_m (0.2.0) - parser (3.3.2.0) + parser (3.3.3.0) ast (~> 2.4.1) racc racc (1.8.0) From 3477d1cde68f3ca1096738e51f69c967656c6ddb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 07:02:25 +0000 Subject: [PATCH 20/28] Bump parser from 3.3.2.0 to 3.3.3.0 Bumps [parser](https://github.com/whitequark/parser) from 3.3.2.0 to 3.3.3.0. - [Changelog](https://github.com/whitequark/parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/whitequark/parser/compare/v3.3.2.0...v3.3.3.0) --- updated-dependencies: - dependency-name: parser dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 51a1793fa..105941970 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -64,7 +64,7 @@ GEM net-protocol nkf (0.2.0) parallel (1.24.0) - parser (3.3.2.0) + parser (3.3.3.0) ast (~> 2.4.1) racc power_assert (2.0.3) From f89ed85b4c22738c00d68a3c1bb9f521bb6d7d4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 07:09:27 +0000 Subject: [PATCH 21/28] Bump parallel from 1.24.0 to 1.25.1 Bumps [parallel](https://github.com/grosser/parallel) from 1.24.0 to 1.25.1. - [Commits](https://github.com/grosser/parallel/compare/v1.24.0...v1.25.1) --- updated-dependencies: - dependency-name: parallel dependency-type: indirect update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 105941970..9695d648c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -63,7 +63,7 @@ GEM net-smtp (0.5.0) net-protocol nkf (0.2.0) - parallel (1.24.0) + parallel (1.25.1) parser (3.3.3.0) ast (~> 2.4.1) racc From 8fbeb374ed70b8698db6e74aaa8a491651a09376 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 14 Jun 2024 10:07:20 +0900 Subject: [PATCH 22/28] Add `windows.yml` --- .github/workflows/ruby.yml | 18 ------------------ .github/workflows/windows.yml | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 9c80fb1df..3ea2ff2b3 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -76,21 +76,3 @@ jobs: - name: Run test run: | bundle exec rake ${{ matrix.job }} - - windows: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [windows-2019, windows-2022] - ruby: [ucrt, mswin] - steps: - - uses: actions/checkout@v4 - - name: load ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - - name: rake-compiler - run: gem install rake-compiler - - name: compile - run: rake compile diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 000000000..8dbe55654 --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,27 @@ +name: Ruby on Windows + +on: + push: + branches: + - master + pull_request: {} + merge_group: {} + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [windows-2019, windows-2022] + ruby: [ucrt, mswin] + steps: + - uses: actions/checkout@v4 + - name: load ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + - name: rake-compiler + run: gem install rake-compiler + - name: compile + run: rake compile From dcf33d546a255c45e7c0e29309c4a94150cdd0e7 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 14 Jun 2024 10:08:17 +0900 Subject: [PATCH 23/28] Test on `windows-latest` --- .github/workflows/windows.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 8dbe55654..67168953f 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -9,11 +9,10 @@ on: jobs: test: - runs-on: ${{ matrix.os }} + runs-on: "windows-latest" strategy: fail-fast: false matrix: - os: [windows-2019, windows-2022] ruby: [ucrt, mswin] steps: - uses: actions/checkout@v4 From 2cee2114e45ef01d31c409a5234ec55e3c742724 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 14 Jun 2024 10:08:35 +0900 Subject: [PATCH 24/28] Add tests on released Ruby versions --- .github/workflows/windows.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 67168953f..5ff620197 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -8,12 +8,12 @@ on: merge_group: {} jobs: - test: + compile: runs-on: "windows-latest" strategy: fail-fast: false matrix: - ruby: [ucrt, mswin] + ruby: ['3.2', '3.3', ucrt, mswin] steps: - uses: actions/checkout@v4 - name: load ruby From e02f2279e55fc3582738882e25ea23b735f5915d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jun 2024 06:29:21 +0000 Subject: [PATCH 25/28] Bump rspec-expectations from 3.13.0 to 3.13.1 Bumps [rspec-expectations](https://github.com/rspec/rspec-expectations) from 3.13.0 to 3.13.1. - [Release notes](https://github.com/rspec/rspec-expectations/releases) - [Changelog](https://github.com/rspec/rspec-expectations/blob/main/Changelog.md) - [Commits](https://github.com/rspec/rspec-expectations/compare/v3.13.0...v3.13.1) --- updated-dependencies: - dependency-name: rspec-expectations dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9695d648c..5785b4c15 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,7 +93,7 @@ GEM rspec-mocks (~> 3.13.0) rspec-core (3.13.0) rspec-support (~> 3.13.0) - rspec-expectations (3.13.0) + rspec-expectations (3.13.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-mocks (3.13.1) From c73f90abdb0fe4795f79c7bef447f1a3239ea635 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jun 2024 06:30:02 +0000 Subject: [PATCH 26/28] Bump stringio from 3.1.0 to 3.1.1 Bumps [stringio](https://github.com/ruby/stringio) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/ruby/stringio/releases) - [Changelog](https://github.com/ruby/stringio/blob/master/NEWS.md) - [Commits](https://github.com/ruby/stringio/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: stringio dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9695d648c..d76a7a8c0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -133,7 +133,7 @@ GEM securerandom (>= 0.1) strscan (>= 1.0.0) terminal-table (>= 2, < 4) - stringio (3.1.0) + stringio (3.1.1) strong_json (2.1.2) strscan (3.1.0) tempfile (0.2.1) From 0158502163ba9b8feec10756572733056f026150 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 06:35:23 +0000 Subject: [PATCH 27/28] Bump public_suffix from 5.0.5 to 5.1.0 Bumps [public_suffix](https://github.com/weppos/publicsuffix-ruby) from 5.0.5 to 5.1.0. - [Changelog](https://github.com/weppos/publicsuffix-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/weppos/publicsuffix-ruby/compare/v5.0.5...v5.1.0) --- updated-dependencies: - dependency-name: public_suffix dependency-type: indirect update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index deb93d233..75b5ae3b1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -70,7 +70,7 @@ GEM power_assert (2.0.3) psych (4.0.6) stringio - public_suffix (5.0.5) + public_suffix (5.1.0) raap (0.8.0) rbs (~> 3.0) timeout (~> 0.4) From d3db777c54c2d77e962c8683c3924c034eb0d274 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 06:35:46 +0000 Subject: [PATCH 28/28] Bump memory_profiler from 1.0.1 to 1.0.2 Bumps [memory_profiler](https://github.com/SamSaffron/memory_profiler) from 1.0.1 to 1.0.2. - [Changelog](https://github.com/SamSaffron/memory_profiler/blob/master/CHANGELOG.md) - [Commits](https://github.com/SamSaffron/memory_profiler/compare/v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: memory_profiler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index deb93d233..0bf480c32 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -55,7 +55,7 @@ GEM rb-inotify (~> 0.9, >= 0.9.10) logger (1.6.0) marcel (1.0.4) - memory_profiler (1.0.1) + memory_profiler (1.0.2) minitest (5.23.1) mutex_m (0.2.0) net-protocol (0.2.2)