diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 1e91f624878..8942e5ea828 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -55,8 +55,8 @@ on: - 'ruby/**' concurrency: - group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} - cancel-in-progress: true + group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}-${{ github.run_id }} + cancel-in-progress: false permissions: contents: read @@ -70,7 +70,7 @@ jobs: ubuntu: name: AMD64 Ubuntu ${{ matrix.ubuntu }} GLib & Ruby runs-on: ubuntu-latest - if: ${{ !contains(github.event.pull_request.title, 'WIP') }} + if: false timeout-minutes: 60 strategy: fail-fast: false @@ -126,7 +126,7 @@ jobs: macos: name: ARM64 macOS 14 GLib & Ruby runs-on: macos-latest - if: ${{ !contains(github.event.pull_request.title, 'WIP') }} + if: false timeout-minutes: 60 env: ARROW_BUILD_STATIC: OFF @@ -315,7 +315,7 @@ jobs: windows-msvc: name: AMD64 Windows MSVC GLib runs-on: windows-2022 - if: ${{ !contains(github.event.pull_request.title, 'WIP') }} + if: false timeout-minutes: 240 strategy: fail-fast: false diff --git a/ruby/README.md b/ruby/README.md index 39593d4b0d9..9d64573ffe7 100644 --- a/ruby/README.md +++ b/ruby/README.md @@ -17,7 +17,7 @@ under the License. --> -# Apache Arrow Ruby +# Apache Arrow Ruby 8 Here are the official Ruby bindings for Apache Arrow. @@ -166,3 +166,40 @@ amounts.join(levels, [:name]) # 1 Max 2 Max 1 # 2 Kate 3 Kate 9 ``` +a +a +a +a +a +trigger +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a diff --git a/ruby/red-arrow/lib/arrow/chunked-array.rb b/ruby/red-arrow/lib/arrow/chunked-array.rb index 0cdd9b6a6d2..dc18ad76473 100644 --- a/ruby/red-arrow/lib/arrow/chunked-array.rb +++ b/ruby/red-arrow/lib/arrow/chunked-array.rb @@ -55,6 +55,9 @@ def to_arrow_chunked_array alias_method :chunks_raw, :chunks def chunks + if frozen? && !instance_variable_defined?(:@chunks) + return chunks_raw + end @chunks ||= chunks_raw.tap do |_chunks| _chunks.each do |chunk| share_input(chunk) diff --git a/ruby/red-arrow/test/test-ractor.rb b/ruby/red-arrow/test/test-ractor.rb index 2aef74d01a6..5830c836186 100644 --- a/ruby/red-arrow/test/test-ractor.rb +++ b/ruby/red-arrow/test/test-ractor.rb @@ -23,9 +23,12 @@ class RactorTest < Test::Unit::TestCase require_ruby(3, 1, 0) array = Arrow::Array.new([1, 2, 3]) chunked_array = Arrow::ChunkedArray.new([array]) + warn chunked_array.instance_variables Ractor.make_shareable(chunked_array) + warn chunked_array.instance_variables ractor = Ractor.new do recived_chunked_array = Ractor.receive + warn recived_chunked_array.instance_variables recived_chunked_array.chunks end ractor.send(chunked_array)