rbs 4.0.0.dev.4 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +14 -14
- data/.github/workflows/bundle-update.yml +60 -0
- data/.github/workflows/c-check.yml +18 -11
- data/.github/workflows/comments.yml +5 -3
- data/.github/workflows/dependabot.yml +2 -2
- data/.github/workflows/ruby.yml +27 -34
- data/.github/workflows/rust.yml +95 -0
- data/.github/workflows/typecheck.yml +2 -2
- data/.github/workflows/windows.yml +2 -2
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +323 -0
- data/README.md +1 -1
- data/Rakefile +43 -33
- data/Steepfile +1 -0
- data/config.yml +426 -24
- data/core/array.rbs +307 -227
- data/core/basic_object.rbs +9 -8
- data/core/binding.rbs +0 -2
- data/core/builtin.rbs +2 -2
- data/core/class.rbs +6 -5
- data/core/comparable.rbs +55 -34
- data/core/complex.rbs +104 -78
- data/core/dir.rbs +61 -49
- data/core/encoding.rbs +12 -15
- data/core/enumerable.rbs +179 -87
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator.rbs +65 -2
- data/core/errno.rbs +11 -2
- data/core/errors.rbs +58 -29
- data/core/exception.rbs +13 -13
- data/core/fiber.rbs +74 -54
- data/core/file.rbs +280 -177
- data/core/file_test.rbs +3 -3
- data/core/float.rbs +257 -92
- data/core/gc.rbs +425 -281
- data/core/hash.rbs +1045 -739
- data/core/integer.rbs +135 -137
- data/core/io/buffer.rbs +53 -42
- data/core/io/wait.rbs +13 -35
- data/core/io.rbs +192 -144
- data/core/kernel.rbs +216 -155
- data/core/marshal.rbs +4 -4
- data/core/match_data.rbs +15 -13
- data/core/math.rbs +107 -66
- data/core/method.rbs +69 -33
- data/core/module.rbs +244 -106
- data/core/nil_class.rbs +7 -6
- data/core/numeric.rbs +74 -63
- data/core/object.rbs +9 -11
- data/core/object_space.rbs +30 -23
- data/core/pathname.rbs +1322 -0
- data/core/proc.rbs +95 -58
- data/core/process.rbs +222 -202
- data/core/ractor.rbs +371 -515
- data/core/random.rbs +21 -3
- data/core/range.rbs +159 -57
- data/core/rational.rbs +60 -89
- data/core/rbs/unnamed/argf.rbs +60 -53
- data/core/rbs/unnamed/env_class.rbs +19 -14
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +11 -118
- data/core/regexp.rbs +258 -214
- data/core/ruby.rbs +53 -0
- data/core/ruby_vm.rbs +38 -34
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +4 -71
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +16 -82
- data/core/rubygems/version.rbs +2 -3
- data/core/set.rbs +490 -360
- data/core/signal.rbs +26 -16
- data/core/string.rbs +3234 -1285
- data/core/struct.rbs +27 -26
- data/core/symbol.rbs +41 -34
- data/core/thread.rbs +135 -67
- data/core/time.rbs +81 -50
- data/core/trace_point.rbs +41 -35
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +24 -16
- data/core/warning.rbs +7 -7
- data/docs/aliases.md +79 -0
- data/docs/collection.md +3 -3
- data/docs/config.md +171 -0
- data/docs/encoding.md +56 -0
- data/docs/gem.md +0 -1
- data/docs/inline.md +576 -0
- data/docs/sigs.md +3 -3
- data/docs/syntax.md +46 -16
- data/docs/type_fingerprint.md +21 -0
- data/exe/rbs +1 -1
- data/ext/rbs_extension/ast_translation.c +544 -116
- data/ext/rbs_extension/ast_translation.h +3 -0
- data/ext/rbs_extension/class_constants.c +16 -2
- data/ext/rbs_extension/class_constants.h +8 -0
- data/ext/rbs_extension/extconf.rb +5 -1
- data/ext/rbs_extension/legacy_location.c +33 -56
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +44 -35
- data/include/rbs/ast.h +448 -173
- data/include/rbs/defines.h +27 -0
- data/include/rbs/lexer.h +30 -11
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +6 -6
- data/include/rbs/string.h +0 -2
- data/include/rbs/util/rbs_allocator.h +34 -13
- data/include/rbs/util/rbs_assert.h +12 -1
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- data/include/rbs/util/rbs_encoding.h +2 -0
- data/include/rbs/util/rbs_unescape.h +2 -1
- data/include/rbs.h +8 -0
- data/lib/rbs/ast/annotation.rb +1 -1
- data/lib/rbs/ast/comment.rb +1 -1
- data/lib/rbs/ast/declarations.rb +10 -10
- data/lib/rbs/ast/members.rb +14 -14
- data/lib/rbs/ast/ruby/annotations.rb +293 -3
- data/lib/rbs/ast/ruby/comment_block.rb +24 -0
- data/lib/rbs/ast/ruby/declarations.rb +198 -3
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +4 -0
- data/lib/rbs/ast/ruby/members.rb +532 -22
- data/lib/rbs/ast/type_param.rb +24 -4
- data/lib/rbs/buffer.rb +20 -15
- data/lib/rbs/cli/diff.rb +16 -15
- data/lib/rbs/cli/validate.rb +38 -106
- data/lib/rbs/cli.rb +52 -19
- data/lib/rbs/collection/config/lockfile_generator.rb +14 -2
- data/lib/rbs/collection/sources/git.rb +1 -0
- data/lib/rbs/definition.rb +1 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +62 -9
- data/lib/rbs/definition_builder/method_builder.rb +20 -0
- data/lib/rbs/definition_builder.rb +147 -25
- data/lib/rbs/diff.rb +7 -1
- data/lib/rbs/environment.rb +227 -74
- data/lib/rbs/environment_loader.rb +0 -6
- data/lib/rbs/errors.rb +27 -18
- data/lib/rbs/inline_parser.rb +342 -6
- data/lib/rbs/location_aux.rb +1 -1
- data/lib/rbs/locator.rb +5 -1
- data/lib/rbs/method_type.rb +5 -3
- data/lib/rbs/parser_aux.rb +20 -7
- data/lib/rbs/prototype/helpers.rb +57 -0
- data/lib/rbs/prototype/rb.rb +3 -28
- data/lib/rbs/prototype/rbi.rb +3 -20
- data/lib/rbs/prototype/runtime.rb +8 -0
- data/lib/rbs/resolver/constant_resolver.rb +2 -2
- data/lib/rbs/resolver/type_name_resolver.rb +116 -38
- data/lib/rbs/subtractor.rb +3 -1
- data/lib/rbs/test/type_check.rb +19 -2
- data/lib/rbs/type_name.rb +1 -1
- data/lib/rbs/types.rb +88 -78
- data/lib/rbs/unit_test/type_assertions.rb +35 -8
- data/lib/rbs/validator.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs.rb +1 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +1 -1
- data/rbs.gemspec +4 -3
- data/rust/.gitignore +1 -0
- data/rust/Cargo.lock +378 -0
- data/rust/Cargo.toml +7 -0
- data/rust/ruby-rbs/Cargo.toml +22 -0
- data/rust/ruby-rbs/build.rs +764 -0
- data/rust/ruby-rbs/examples/locations.rs +60 -0
- data/rust/ruby-rbs/src/lib.rs +1 -0
- data/rust/ruby-rbs/src/node/mod.rs +742 -0
- data/rust/ruby-rbs/tests/sanity.rs +47 -0
- data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
- data/rust/ruby-rbs-sys/Cargo.toml +23 -0
- data/rust/ruby-rbs-sys/build.rs +204 -0
- data/rust/ruby-rbs-sys/src/lib.rs +50 -0
- data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
- data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
- data/rust/ruby-rbs-sys/wrapper.h +1 -0
- data/schema/typeParam.json +17 -1
- data/sig/ast/ruby/annotations.rbs +315 -4
- data/sig/ast/ruby/comment_block.rbs +8 -0
- data/sig/ast/ruby/declarations.rbs +102 -4
- data/sig/ast/ruby/members.rbs +108 -2
- data/sig/cli/diff.rbs +5 -11
- data/sig/cli/validate.rbs +12 -8
- data/sig/cli.rbs +18 -18
- data/sig/definition.rbs +6 -1
- data/sig/definition_builder.rbs +2 -0
- data/sig/environment.rbs +70 -12
- data/sig/errors.rbs +13 -14
- data/sig/inline_parser.rbs +39 -2
- data/sig/locator.rbs +0 -2
- data/sig/manifest.yaml +0 -1
- data/sig/method_builder.rbs +3 -1
- data/sig/parser.rbs +31 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/resolver/type_name_resolver.rbs +35 -7
- data/sig/source.rbs +3 -3
- data/sig/type_param.rbs +13 -8
- data/sig/types.rbs +6 -7
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +11 -0
- data/src/ast.c +410 -153
- data/src/lexer.c +1392 -1313
- data/src/lexer.re +3 -0
- data/src/lexstate.c +58 -37
- data/src/location.c +8 -48
- data/src/parser.c +977 -516
- data/src/string.c +0 -48
- data/src/util/rbs_allocator.c +89 -71
- data/src/util/rbs_assert.c +1 -1
- data/src/util/rbs_buffer.c +2 -2
- data/src/util/rbs_constant_pool.c +10 -14
- data/src/util/rbs_encoding.c +4 -8
- data/src/util/rbs_unescape.c +56 -20
- data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
- data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
- data/stdlib/cgi/0/core.rbs +9 -393
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/cgi-escape/0/escape.rbs +171 -0
- data/stdlib/coverage/0/coverage.rbs +7 -4
- data/stdlib/date/0/date.rbs +92 -79
- data/stdlib/date/0/date_time.rbs +25 -24
- data/stdlib/delegate/0/delegator.rbs +10 -7
- data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
- data/stdlib/digest/0/digest.rbs +110 -0
- data/stdlib/erb/0/erb.rbs +748 -347
- data/stdlib/etc/0/etc.rbs +55 -50
- data/stdlib/fileutils/0/fileutils.rbs +158 -139
- data/stdlib/forwardable/0/forwardable.rbs +13 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +217 -136
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +162 -134
- data/stdlib/objspace/0/objspace.rbs +17 -34
- data/stdlib/open-uri/0/open-uri.rbs +48 -8
- data/stdlib/open3/0/open3.rbs +469 -10
- data/stdlib/openssl/0/openssl.rbs +475 -357
- data/stdlib/optparse/0/optparse.rbs +26 -17
- data/stdlib/pathname/0/pathname.rbs +11 -1381
- data/stdlib/pp/0/pp.rbs +9 -8
- data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
- data/stdlib/pstore/0/pstore.rbs +35 -30
- data/stdlib/psych/0/psych.rbs +65 -12
- data/stdlib/psych/0/store.rbs +2 -4
- data/stdlib/pty/0/pty.rbs +9 -6
- data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
- data/stdlib/rdoc/0/code_object.rbs +2 -1
- data/stdlib/rdoc/0/parser.rbs +1 -1
- data/stdlib/rdoc/0/rdoc.rbs +1 -1
- data/stdlib/rdoc/0/store.rbs +1 -1
- data/stdlib/resolv/0/resolv.rbs +25 -68
- data/stdlib/ripper/0/ripper.rbs +22 -19
- data/stdlib/securerandom/0/manifest.yaml +2 -0
- data/stdlib/securerandom/0/securerandom.rbs +7 -20
- data/stdlib/shellwords/0/shellwords.rbs +2 -2
- data/stdlib/singleton/0/singleton.rbs +3 -0
- data/stdlib/socket/0/addrinfo.rbs +7 -7
- data/stdlib/socket/0/basic_socket.rbs +3 -3
- data/stdlib/socket/0/ip_socket.rbs +10 -8
- data/stdlib/socket/0/socket.rbs +23 -10
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +11 -3
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +1177 -85
- data/stdlib/strscan/0/string_scanner.rbs +27 -25
- data/stdlib/tempfile/0/tempfile.rbs +25 -21
- data/stdlib/time/0/time.rbs +8 -6
- data/stdlib/timeout/0/timeout.rbs +63 -7
- data/stdlib/tsort/0/cyclic.rbs +3 -0
- data/stdlib/tsort/0/tsort.rbs +7 -6
- data/stdlib/uri/0/common.rbs +42 -20
- data/stdlib/uri/0/file.rbs +3 -3
- data/stdlib/uri/0/generic.rbs +26 -18
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/ldap.rbs +2 -2
- data/stdlib/uri/0/mailto.rbs +3 -3
- data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
- data/stdlib/zlib/0/deflate.rbs +4 -3
- data/stdlib/zlib/0/gzip_reader.rbs +6 -6
- data/stdlib/zlib/0/gzip_writer.rbs +14 -12
- data/stdlib/zlib/0/inflate.rbs +1 -1
- data/stdlib/zlib/0/need_dict.rbs +1 -1
- data/stdlib/zlib/0/zstream.rbs +1 -0
- metadata +50 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 690d197a18a87b38b5346aa388ce159c6309062882bfe0042f081a0c6c145f32
|
|
4
|
+
data.tar.gz: 8302d00f402a1997f0ad749e684da8a7717115a0d51d60b9aa006a5988345df5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aa8baf772365041ba474bbbd1c5ac55ae09bffc31fe57ae307e1778fdd115afbf9c2b940e59019e40026e76afdd77a30321229e46d88a953f9a7c90a7bf1c383
|
|
7
|
+
data.tar.gz: a701db27b244f861abcf394ff0ab57e54ad064697df540e564e4fda4b1242e9316f5453e2a14bb7548e8b063df39c0775bf76d13f7b8fde833c2c7e4e9758b65
|
data/.github/dependabot.yml
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
version: 2
|
|
2
2
|
updates:
|
|
3
|
-
- package-ecosystem: bundler
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
# - package-ecosystem: bundler
|
|
4
|
+
# directory: "/"
|
|
5
|
+
# schedule:
|
|
6
|
+
# interval: daily
|
|
7
|
+
# open-pull-requests-limit: 3
|
|
8
|
+
# allow:
|
|
9
|
+
# - dependency-type: all
|
|
10
10
|
|
|
11
|
-
- package-ecosystem: bundler
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
# - package-ecosystem: bundler
|
|
12
|
+
# directory: "/steep"
|
|
13
|
+
# schedule:
|
|
14
|
+
# interval: daily
|
|
15
|
+
# open-pull-requests-limit: 3
|
|
16
|
+
# allow:
|
|
17
|
+
# - dependency-type: all
|
|
18
18
|
|
|
19
19
|
- package-ecosystem: 'github-actions'
|
|
20
20
|
directory: '/'
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name: Scheduled Bundle Update PR
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: '0 0 * * 2'
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
bundle-update:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout repository
|
|
14
|
+
uses: actions/checkout@v6
|
|
15
|
+
|
|
16
|
+
- name: Set up Ruby
|
|
17
|
+
uses: ruby/setup-ruby@v1
|
|
18
|
+
with:
|
|
19
|
+
ruby-version: '4.0'
|
|
20
|
+
|
|
21
|
+
- name: Set up git
|
|
22
|
+
run: |
|
|
23
|
+
git config --global user.name "github-actions[bot]"
|
|
24
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
25
|
+
|
|
26
|
+
- name: Switch branch
|
|
27
|
+
run: |
|
|
28
|
+
git switch -c bundle-update-$(date +'%Y%m%d')-$(uuidgen | cut -c1-8)
|
|
29
|
+
|
|
30
|
+
- name: Install bundler
|
|
31
|
+
run: gem install bundler
|
|
32
|
+
|
|
33
|
+
- name: Run bundle update
|
|
34
|
+
run: |
|
|
35
|
+
bundle lock --update
|
|
36
|
+
bundle lock --update --gemfile=steep/Gemfile
|
|
37
|
+
git add Gemfile.lock steep/Gemfile.lock
|
|
38
|
+
|
|
39
|
+
if git diff --cached --exit-code; then
|
|
40
|
+
echo "No changes to commit, exiting."
|
|
41
|
+
exit 0
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
git commit -m "bundle update"
|
|
45
|
+
echo "has_update=true" >> $GITHUB_ENV
|
|
46
|
+
|
|
47
|
+
- name: Push branch
|
|
48
|
+
if: env.has_update == 'true'
|
|
49
|
+
run: git push origin HEAD
|
|
50
|
+
|
|
51
|
+
- name: Create Pull Request
|
|
52
|
+
if: env.has_update == 'true'
|
|
53
|
+
env:
|
|
54
|
+
GH_TOKEN: ${{ secrets.DEPENDABOT_MERGE_GH_TOKEN }}
|
|
55
|
+
run: |
|
|
56
|
+
gh pr create \
|
|
57
|
+
--title "bundle update ($(date +'%Y-%m-%d'))" \
|
|
58
|
+
--body "Automated weekly bundle update" \
|
|
59
|
+
--head "$(git rev-parse --abbrev-ref HEAD)" \
|
|
60
|
+
--base "${{ github.event.repository.default_branch }}"
|
|
@@ -2,6 +2,8 @@ name: C Code Generation and Formatting Check
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
5
7
|
pull_request: {}
|
|
6
8
|
merge_group: {}
|
|
7
9
|
|
|
@@ -9,10 +11,10 @@ jobs:
|
|
|
9
11
|
format-check:
|
|
10
12
|
runs-on: ubuntu-latest
|
|
11
13
|
steps:
|
|
12
|
-
- uses: actions/checkout@
|
|
14
|
+
- uses: actions/checkout@v6
|
|
13
15
|
- uses: ruby/setup-ruby@v1
|
|
14
16
|
with:
|
|
15
|
-
ruby-version: "
|
|
17
|
+
ruby-version: "4.0"
|
|
16
18
|
bundler-cache: none
|
|
17
19
|
- name: Set working directory as safe
|
|
18
20
|
run: git config --global --add safe.directory $(pwd)
|
|
@@ -23,24 +25,29 @@ jobs:
|
|
|
23
25
|
- name: Install clang-format from LLVM
|
|
24
26
|
run: |
|
|
25
27
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
|
26
|
-
sudo apt-add-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main"
|
|
28
|
+
sudo apt-add-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main"
|
|
27
29
|
sudo apt-get update
|
|
28
|
-
sudo apt-get install -y clang-format
|
|
30
|
+
sudo apt-get install -y clang-format-20
|
|
31
|
+
sudo ln -sf /usr/bin/clang-format-20 /usr/local/bin/clang-format
|
|
29
32
|
clang-format --version
|
|
33
|
+
- name: Count processors
|
|
34
|
+
run: nproc
|
|
30
35
|
- name: Install Re2c
|
|
31
36
|
run: |
|
|
32
37
|
cd /tmp
|
|
33
|
-
curl -L https://github.com/skvadrik/re2c/archive/refs/tags/3.
|
|
34
|
-
tar xf re2c-3.
|
|
35
|
-
cd re2c-3
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
curl -L https://github.com/skvadrik/re2c/archive/refs/tags/4.3.tar.gz > re2c-4.3.tar.gz
|
|
39
|
+
tar xf re2c-4.3.tar.gz
|
|
40
|
+
cd re2c-4.3
|
|
41
|
+
cmake --preset=linux-gcc-release-ootree-skeleton-fast
|
|
42
|
+
cmake --build --preset=linux-gcc-release-ootree-skeleton-fast --parallel="$(nproc)"
|
|
43
|
+
sudo ln -sf "$(pwd)"/.build/linux-gcc-release-ootree-skeleton-fast/re2c /usr/local/bin/re2c
|
|
44
|
+
re2c --version
|
|
40
45
|
- name: Update rubygems & bundler
|
|
41
46
|
run: |
|
|
42
47
|
ruby -v
|
|
43
48
|
gem update --system
|
|
49
|
+
- name: install erb
|
|
50
|
+
run: gem install erb
|
|
44
51
|
- name: bin/setup
|
|
45
52
|
run: |
|
|
46
53
|
bin/setup
|
|
@@ -11,12 +11,12 @@ jobs:
|
|
|
11
11
|
comments:
|
|
12
12
|
runs-on: "ubuntu-latest"
|
|
13
13
|
# env:
|
|
14
|
-
# RUBY_COMMIT:
|
|
14
|
+
# RUBY_COMMIT: v4.0.0-preview2
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@v6
|
|
17
17
|
- uses: ruby/setup-ruby@v1
|
|
18
18
|
with:
|
|
19
|
-
ruby-version: "
|
|
19
|
+
ruby-version: "4.0.1"
|
|
20
20
|
bundler: none
|
|
21
21
|
- name: Install dependencies
|
|
22
22
|
run: |
|
|
@@ -26,6 +26,8 @@ jobs:
|
|
|
26
26
|
run: |
|
|
27
27
|
ruby -v
|
|
28
28
|
gem update --system
|
|
29
|
+
- name: install erb
|
|
30
|
+
run: gem install erb
|
|
29
31
|
- name: bin/setup
|
|
30
32
|
run: |
|
|
31
33
|
bin/setup
|
|
@@ -14,10 +14,10 @@ jobs:
|
|
|
14
14
|
if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
|
|
15
15
|
steps:
|
|
16
16
|
- name: Dependabot metadata
|
|
17
|
-
uses: dependabot/fetch-metadata@
|
|
17
|
+
uses: dependabot/fetch-metadata@21025c705c08248db411dc16f3619e6b5f9ea21a # v2.5.0
|
|
18
18
|
id: metadata
|
|
19
19
|
- name: Checkout repository
|
|
20
|
-
uses: actions/checkout@
|
|
20
|
+
uses: actions/checkout@v6
|
|
21
21
|
with:
|
|
22
22
|
fetch-depth: 0
|
|
23
23
|
- name: Abort if blocker files are changed
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -13,29 +13,31 @@ jobs:
|
|
|
13
13
|
strategy:
|
|
14
14
|
fail-fast: false
|
|
15
15
|
matrix:
|
|
16
|
-
ruby: ['3.
|
|
16
|
+
ruby: ['3.2', '3.3', '3.4', '4.0', head]
|
|
17
17
|
rubyopt: [""]
|
|
18
18
|
job:
|
|
19
19
|
- test
|
|
20
20
|
include:
|
|
21
21
|
- ruby: head
|
|
22
22
|
job: stdlib_test rubocop
|
|
23
|
-
- ruby: "
|
|
23
|
+
- ruby: "4.0"
|
|
24
24
|
job: stdlib_test
|
|
25
|
-
- ruby: "
|
|
25
|
+
- ruby: "4.0"
|
|
26
26
|
job: test
|
|
27
27
|
rubyopt: "--enable-frozen-string-literal"
|
|
28
|
-
- ruby: "
|
|
28
|
+
- ruby: "4.0"
|
|
29
29
|
job: stdlib_test
|
|
30
30
|
rubyopt: "--enable-frozen-string-literal"
|
|
31
|
-
- ruby: "
|
|
31
|
+
- ruby: "4.0"
|
|
32
32
|
job: rubocop validate test_doc build test_generate_stdlib raap
|
|
33
|
-
- ruby: "
|
|
33
|
+
- ruby: "4.0"
|
|
34
34
|
job: typecheck_test
|
|
35
|
+
- ruby: asan-release
|
|
36
|
+
job: test
|
|
35
37
|
env:
|
|
36
38
|
RANDOMIZE_STDLIB_TEST_ORDER: "true"
|
|
37
39
|
steps:
|
|
38
|
-
- uses: actions/checkout@
|
|
40
|
+
- uses: actions/checkout@v6
|
|
39
41
|
- uses: ruby/setup-ruby@v1
|
|
40
42
|
with:
|
|
41
43
|
ruby-version: ${{ matrix.ruby }}
|
|
@@ -50,11 +52,17 @@ jobs:
|
|
|
50
52
|
run: |
|
|
51
53
|
ruby -v
|
|
52
54
|
gem update --system
|
|
55
|
+
- name: install erb
|
|
56
|
+
run: gem install erb
|
|
53
57
|
- name: bundle config set with
|
|
54
58
|
run: |
|
|
55
59
|
echo "NO_MINITEST=true" >> $GITHUB_ENV
|
|
56
60
|
bundle config set --local without 'minitest'
|
|
57
61
|
if: ${{ contains(matrix.ruby, 'head') }}
|
|
62
|
+
- name: bundle config set force_ruby_platform true if head
|
|
63
|
+
if: ${{ contains(matrix.ruby, 'head') }}
|
|
64
|
+
run: |
|
|
65
|
+
bundle config set force_ruby_platform true
|
|
58
66
|
- name: Skip installing type checkers
|
|
59
67
|
if: ${{ ! contains(matrix.job, 'typecheck_test') }}
|
|
60
68
|
run: |
|
|
@@ -62,41 +70,21 @@ jobs:
|
|
|
62
70
|
- name: bin/setup
|
|
63
71
|
run: |
|
|
64
72
|
bin/setup
|
|
73
|
+
- name: Configure ASAN options
|
|
74
|
+
if: ${{ contains(matrix.ruby, 'asan') }}
|
|
75
|
+
run: |
|
|
76
|
+
echo "ASAN_OPTIONS=abort_on_error=1" >> $GITHUB_ENV
|
|
65
77
|
- name: Run test
|
|
66
78
|
run: |
|
|
67
79
|
bundle exec rake ${{ matrix.job }}
|
|
68
|
-
valgrind:
|
|
69
|
-
runs-on: ubuntu-latest
|
|
70
|
-
steps:
|
|
71
|
-
- uses: actions/checkout@v4
|
|
72
|
-
- uses: ruby/setup-ruby@v1
|
|
73
|
-
with:
|
|
74
|
-
ruby-version: "3.4"
|
|
75
|
-
bundler-cache: none
|
|
76
|
-
- name: Set working directory as safe
|
|
77
|
-
run: git config --global --add safe.directory $(pwd)
|
|
78
|
-
- name: Install dependencies
|
|
79
|
-
run: |
|
|
80
|
-
sudo apt-get update
|
|
81
|
-
sudo apt-get install -y libdb-dev curl autoconf automake m4 libtool python3 valgrind
|
|
82
|
-
- name: Update rubygems & bundler
|
|
83
|
-
run: |
|
|
84
|
-
ruby -v
|
|
85
|
-
gem update --system
|
|
86
|
-
- name: bin/setup
|
|
87
|
-
run: |
|
|
88
|
-
bin/setup
|
|
89
|
-
- run: bundle exec rake test:valgrind
|
|
90
|
-
env:
|
|
91
|
-
RUBY_FREE_AT_EXIT: 1
|
|
92
80
|
C99_compile:
|
|
93
81
|
runs-on: macos-latest
|
|
94
82
|
strategy:
|
|
95
83
|
fail-fast: false
|
|
96
84
|
matrix:
|
|
97
|
-
ruby: ['
|
|
85
|
+
ruby: ['4.0', head]
|
|
98
86
|
steps:
|
|
99
|
-
- uses: actions/checkout@
|
|
87
|
+
- uses: actions/checkout@v6
|
|
100
88
|
- name: Install dependencies
|
|
101
89
|
run: |
|
|
102
90
|
brew install ruby-build
|
|
@@ -110,10 +98,15 @@ jobs:
|
|
|
110
98
|
run: |
|
|
111
99
|
ruby -v
|
|
112
100
|
gem update --system
|
|
101
|
+
- name: install erb
|
|
102
|
+
run: gem install erb
|
|
113
103
|
- name: clang version
|
|
114
104
|
run: clang --version
|
|
105
|
+
- name: bundle config set force_ruby_platform true if head
|
|
106
|
+
if: ${{ contains(matrix.ruby, 'head') }}
|
|
107
|
+
run: |
|
|
108
|
+
bundle config set force_ruby_platform true
|
|
115
109
|
- name: bin/setup
|
|
116
110
|
run: |
|
|
117
111
|
bin/setup
|
|
118
112
|
- run: bundle exec rake clean compile_c99
|
|
119
|
-
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: Rust
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
paths:
|
|
9
|
+
- ".github/workflows/rust.yml"
|
|
10
|
+
- "rust/**"
|
|
11
|
+
- "include/**"
|
|
12
|
+
- "src/**"
|
|
13
|
+
|
|
14
|
+
env:
|
|
15
|
+
RUSTFLAGS: "-D warnings"
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
test:
|
|
19
|
+
name: cargo:test
|
|
20
|
+
runs-on: ${{ matrix.os }}
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v6
|
|
27
|
+
- name: Install Rust tools
|
|
28
|
+
run: |
|
|
29
|
+
rustup update --no-self-update stable
|
|
30
|
+
rustup default stable
|
|
31
|
+
- uses: actions/cache@v5
|
|
32
|
+
with:
|
|
33
|
+
path: |
|
|
34
|
+
~/.cargo/registry
|
|
35
|
+
~/.cargo/git
|
|
36
|
+
rust/target
|
|
37
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
38
|
+
restore-keys: |
|
|
39
|
+
${{ runner.os }}-cargo-
|
|
40
|
+
- name: Run tests
|
|
41
|
+
run: |
|
|
42
|
+
cd rust
|
|
43
|
+
cargo test --verbose
|
|
44
|
+
|
|
45
|
+
publish-dry-run:
|
|
46
|
+
name: cargo:publish-dry-run
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
continue-on-error: true
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@v6
|
|
51
|
+
- name: Install Rust tools
|
|
52
|
+
run: |
|
|
53
|
+
rustup update --no-self-update stable
|
|
54
|
+
rustup default stable
|
|
55
|
+
- uses: actions/cache@v5
|
|
56
|
+
with:
|
|
57
|
+
path: |
|
|
58
|
+
~/.cargo/registry
|
|
59
|
+
~/.cargo/git
|
|
60
|
+
rust/target
|
|
61
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
62
|
+
restore-keys: |
|
|
63
|
+
${{ runner.os }}-cargo-
|
|
64
|
+
- name: Test publish crates
|
|
65
|
+
run: |
|
|
66
|
+
cd rust
|
|
67
|
+
cargo publish --dry-run
|
|
68
|
+
|
|
69
|
+
lint:
|
|
70
|
+
name: cargo:lint
|
|
71
|
+
runs-on: ubuntu-latest
|
|
72
|
+
steps:
|
|
73
|
+
- uses: actions/checkout@v6
|
|
74
|
+
- name: Install Rust tools
|
|
75
|
+
run: |
|
|
76
|
+
rustup update --no-self-update stable
|
|
77
|
+
rustup default stable
|
|
78
|
+
rustup component add --toolchain stable clippy rustfmt
|
|
79
|
+
- uses: actions/cache@v5
|
|
80
|
+
with:
|
|
81
|
+
path: |
|
|
82
|
+
~/.cargo/registry
|
|
83
|
+
~/.cargo/git
|
|
84
|
+
rust/target
|
|
85
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
86
|
+
restore-keys: |
|
|
87
|
+
${{ runner.os }}-cargo-
|
|
88
|
+
- name: Check formatting
|
|
89
|
+
run: |
|
|
90
|
+
cd rust
|
|
91
|
+
cargo fmt --check
|
|
92
|
+
- name: Run clippy
|
|
93
|
+
run: |
|
|
94
|
+
cd rust
|
|
95
|
+
cargo clippy
|
|
@@ -13,10 +13,10 @@ jobs:
|
|
|
13
13
|
strategy:
|
|
14
14
|
fail-fast: false
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@v6
|
|
17
17
|
- uses: ruby/setup-ruby@v1
|
|
18
18
|
with:
|
|
19
|
-
ruby-version: "3.
|
|
19
|
+
ruby-version: "3.4"
|
|
20
20
|
bundler: none
|
|
21
21
|
- name: Set working directory as safe
|
|
22
22
|
run: git config --global --add safe.directory $(pwd)
|