diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bf48e4b9..7713db34 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] - ruby: ['3.1', '3.2', 'head'] + ruby: ['3.1', '3.2', '3.3', 'head'] name: >- ${{matrix.os}}, ${{matrix.ruby}} @@ -20,7 +20,7 @@ jobs: steps: - name: Setup machine - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Ruby uses: ruby/setup-ruby@v1 with: diff --git a/.github/workflows/test_io_uring.yml b/.github/workflows/test_io_uring.yml index b7d3afcf..5b111cc2 100644 --- a/.github/workflows/test_io_uring.yml +++ b/.github/workflows/test_io_uring.yml @@ -8,7 +8,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - ruby: ['3.1', '3.2', 'head'] + ruby: ['3.1', '3.2', '3.3', 'head'] name: >- ${{matrix.os}}, ${{matrix.ruby}} @@ -16,7 +16,7 @@ jobs: runs-on: ${{matrix.os}} steps: - name: Checkout repository and submodules - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive - name: Setup Ruby diff --git a/.rubocop.yml b/.rubocop.yml index c27956f9..cfcc79f5 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,5 @@ AllCops: - TargetRubyVersion: 3.2 + TargetRubyVersion: 3.3 RubyInterpreters: - ruby Exclude: @@ -9,6 +9,7 @@ AllCops: - 'Gemfile*' - 'ext/**/*.rb' - lib/polyphony/adapters/irb.rb + NewCops: enable Style/LambdaCall: Enabled: false @@ -202,4 +203,4 @@ Style/SlicingWithRange: Style/RaiseArgs: Exclude: - - lib/polyphony/extensions/fiber.rb \ No newline at end of file + - lib/polyphony/extensions/fiber.rb diff --git a/README.md b/README.md index 4a6af0e9..cc3b68de 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ ## What is Polyphony? Polyphony is a library for building concurrent applications in Ruby. Polyphony -harnesses the power of [Ruby fibers](https://rubyapi.org/3.2/o/fiber) to provide +harnesses the power of [Ruby fibers](https://rubyapi.org/3.3/o/fiber) to provide a cooperative, sequential coroutine-based concurrency model. Under the hood, Polyphony uses [io_uring](https://unixism.net/loti/what_is_io_uring.html) or [libev](https://github.com/enki/libev) to maximize I/O performance. diff --git a/docs/advanced-io.md b/docs/advanced-io.md index 7de4d4d0..22919645 100644 --- a/docs/advanced-io.md +++ b/docs/advanced-io.md @@ -119,7 +119,7 @@ minimizing memory use and GC pressure. ## Compressing and decompressing in-flight data You might be familiar with Ruby's [zlib](https://github.com/ruby/zlib) gem (docs -[here](https://rubyapi.org/3.2/o/zlib)), which can be used to compress and +[here](https://rubyapi.org/3.3/o/zlib)), which can be used to compress and uncompress data using the popular gzip format. Imagine we want to implement an HTTP server that can serve files compressed using gzip: @@ -318,4 +318,4 @@ provided by Polyphony, which lets us write less code, have it run faster, have it run concurrently, and minimize memory allocations and pressure on the Ruby GC. Feel free to browse the [IO examples](https://github.com/digital-fabric/polyphony/tree/master/examples/io) -included in Polyphony. \ No newline at end of file +included in Polyphony. diff --git a/docs/readme.md b/docs/readme.md index ac8b8afb..47a6feb8 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -25,7 +25,7 @@ ## What is Polyphony? Polyphony is a library for building concurrent applications in Ruby. Polyphony -harnesses the power of [Ruby fibers](https://rubyapi.org/3.2/o/fiber) to provide +harnesses the power of [Ruby fibers](https://rubyapi.org/3.3/o/fiber) to provide a cooperative, sequential coroutine-based concurrency model. Under the hood, Polyphony uses [io_uring](https://unixism.net/loti/what_is_io_uring.html) or [libev](https://github.com/enki/libev) to maximize I/O performance. diff --git a/polyphony.gemspec b/polyphony.gemspec index 2a27afce..2c851b4b 100644 --- a/polyphony.gemspec +++ b/polyphony.gemspec @@ -20,15 +20,21 @@ Gem::Specification.new do |s| s.require_paths = ["lib"] s.required_ruby_version = '>= 3.1' - s.add_development_dependency 'rake-compiler', '1.2.1' - s.add_development_dependency 'minitest', '5.17.0' + s.add_development_dependency 'rake-compiler', '1.2.7' + s.add_development_dependency 'minitest', '5.22.3' s.add_development_dependency 'simplecov', '0.22.0' - s.add_development_dependency 'rubocop', '1.45.1' + s.add_development_dependency 'rubocop', '1.62.1' s.add_development_dependency 'pry', '0.14.2' - s.add_development_dependency 'msgpack', '1.6.0' + s.add_development_dependency 'msgpack', '1.7.2' s.add_development_dependency 'httparty', '0.21.0' - s.add_development_dependency 'localhost', '1.1.10' - s.add_development_dependency 'debug', '1.8.0' - s.add_development_dependency 'benchmark-ips', '2.10.0' + s.add_development_dependency 'localhost', '1.2.0' + s.add_development_dependency 'debug', '1.9.1' + s.add_development_dependency 'benchmark-ips', '2.13.0' + + # FIXME: remove gems when all other dependencies have bundled them (not part of stdlib since Ruby 3.4) + s.add_development_dependency 'base64', '0.2.0' + s.add_development_dependency 'bigdecimal', '3.1.7' + s.add_development_dependency 'csv', '3.3.0' + s.add_development_dependency 'mutex_m', '0.2.0' end diff --git a/test/helper.rb b/test/helper.rb index 6d6ae3a8..b1f7780e 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -11,6 +11,7 @@ require_relative './eg' require 'minitest/autorun' +require 'minitest/unit' ::Exception.__disable_sanitized_backtrace__ = true