From 8fce792368f2269311985509a248796c4ad35372 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 01/17] ruby4.0-systemd-journal: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-systemd-journal.yaml | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 ruby4.0-systemd-journal.yaml diff --git a/ruby4.0-systemd-journal.yaml b/ruby4.0-systemd-journal.yaml new file mode 100644 index 00000000000..745a2ce00a2 --- /dev/null +++ b/ruby4.0-systemd-journal.yaml @@ -0,0 +1,60 @@ +package: + name: ruby4.0-systemd-journal + version: "2.1.1" + epoch: 0 + description: Provides the ability to navigate and read entries from the systemd journal in ruby, as well as write events to the journal. + copyright: + - license: MIT + dependencies: + runtime: + - libsystemd # libsystemd.so.0 is dlopened + - ruby${{vars.rubyMM}}-ffi + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: systemd-journal + +pipeline: + - uses: git-checkout + with: + expected-commit: aa663188dacc03eae1c41d07d5a43fe4c6291480 + repository: https://github.com/ledbettj/systemd-journal + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +test: + pipeline: + - runs: | + ruby -e "require 'systemd/journal'" + - uses: test/tw/ldd-check + +update: + enabled: true + github: + identifier: ledbettj/systemd-journal + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM From 1c1333996adcdd34a7c8317fb22586e9589e5f5e Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 02/17] ruby4.0-thor: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-thor.yaml | 92 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 ruby4.0-thor.yaml diff --git a/ruby4.0-thor.yaml b/ruby4.0-thor.yaml new file mode 100644 index 00000000000..fdad3796448 --- /dev/null +++ b/ruby4.0-thor.yaml @@ -0,0 +1,92 @@ +# Generated from https://github.com/rails/thor/tree/v1.3.2 +package: + name: ruby4.0-thor + version: "1.4.0" + epoch: 0 + description: Thor is a toolkit for building powerful command-line interfaces. + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/rails/thor.git + tag: v${{package.version}} + expected-commit: 518ae0f49bb1c3dc2226607c07da74b591759ed0 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +update: + enabled: true + github: + identifier: rails/thor + strip-prefix: v + use-tag: true + tag-filter: v + +vars: + gem: thor + +test: + pipeline: + - uses: test/tw/gem-check + with: + require: | + thor + thor/actions + thor/base + thor/command + thor/error + thor/group + thor/invocation + thor/line_editor + thor/nested_context + thor/parser + thor/rake_compat + thor/runner + thor/shell + thor/util + thor/version + thor/actions/create_file + thor/actions/create_link + thor/actions/directory + thor/actions/empty_directory + thor/actions/file_manipulation + thor/actions/inject_into_file + thor/core_ext/hash_with_indifferent_access + thor/line_editor/basic + thor/parser/argument + thor/parser/arguments + thor/shell/basic + thor/shell/color + thor/shell/column_printer + thor/shell/html + thor/shell/lcs_diff + thor/shell/table_printer + thor/shell/terminal + thor/shell/wrapped_printer + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM From 2f399630e5e929148a30c49d012fc8a2dfc6e4ad Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 03/17] ruby4.0-thread_safe: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-thread_safe.yaml | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 ruby4.0-thread_safe.yaml diff --git a/ruby4.0-thread_safe.yaml b/ruby4.0-thread_safe.yaml new file mode 100644 index 00000000000..c1500c8efb3 --- /dev/null +++ b/ruby4.0-thread_safe.yaml @@ -0,0 +1,56 @@ +# Generated from https://github.com/ruby-concurrency/thread_safe +package: + name: ruby4.0-thread_safe + version: 0.3.6 + epoch: 0 + description: A collection of data structures and utilities to make thread-safe programming in Ruby easier + copyright: + - license: Apache-2.0 + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: ccfd11b76d6cf74ba0e19278fba9ba1b7f5ea5ca + repository: https://github.com/ruby-concurrency/thread_safe + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: thread_safe + +update: + enabled: true + github: + identifier: ruby-concurrency/thread_safe + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + pipeline: + - uses: test/tw/gem-check From 6028bdd0c2412e75b059e7c1133147115c7f5424 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 04/17] ruby4.0-tilt: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-tilt.yaml | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 ruby4.0-tilt.yaml diff --git a/ruby4.0-tilt.yaml b/ruby4.0-tilt.yaml new file mode 100644 index 00000000000..0a4ef039b41 --- /dev/null +++ b/ruby4.0-tilt.yaml @@ -0,0 +1,61 @@ +# Generated from https://github.com/jeremyevans/tilt +package: + name: ruby4.0-tilt + version: "2.6.1" + epoch: 0 + description: Generic interface to multiple Ruby template engines + copyright: + - license: MIT + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 0697fe45e5b7ff2fabd947e7ae55d1312e1ec5ef + repository: https://github.com/jeremyevans/tilt + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: tilt + +update: + enabled: true + github: + identifier: jeremyevans/tilt + strip-prefix: v + use-tag: true + +test: + pipeline: + # AUTOGENERATED + - runs: | + tilt --help + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM From d89814d8b36395e86e0b1701950224cfbff4514f Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 05/17] ruby4.0-timeout: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-timeout.yaml | 55 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 ruby4.0-timeout.yaml diff --git a/ruby4.0-timeout.yaml b/ruby4.0-timeout.yaml new file mode 100644 index 00000000000..60517502cd9 --- /dev/null +++ b/ruby4.0-timeout.yaml @@ -0,0 +1,55 @@ +package: + name: ruby4.0-timeout + version: "0.6.0" + epoch: 0 + description: Auto-terminate potentially long-running operations in Ruby. + copyright: + - license: Ruby + - license: BSD-2-Clause + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: ab79dfff47092008ce08520763c846eba3a3a5f1 + repository: https://github.com/ruby/timeout + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: timeout + +update: + enabled: true + github: + identifier: ruby/timeout + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + pipeline: + - uses: test/tw/gem-check From 014e3f453b8d71cc038b8ed6e61a9d1050b3399b Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 06/17] ruby4.0-timers: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-timers.yaml | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 ruby4.0-timers.yaml diff --git a/ruby4.0-timers.yaml b/ruby4.0-timers.yaml new file mode 100644 index 00000000000..a80bbadfb8e --- /dev/null +++ b/ruby4.0-timers.yaml @@ -0,0 +1,75 @@ +package: + name: ruby4.0-timers + version: "4.4.0" + epoch: 0 + description: Pure Ruby one-shot and periodic timers. + copyright: + - license: MIT + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: timers + +pipeline: + - uses: git-checkout + with: + expected-commit: 23bccc713a244a339500318616fae79d9922a78f + repository: https://github.com/socketry/timers + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +update: + enabled: true + github: + identifier: socketry/timers + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + environment: + contents: + packages: + - build-base + - ruby-${{vars.rubyMM}}-dev + - ruby${{vars.rubyMM}}-bundler + pipeline: + - runs: | + # Ensure our installed gem is importable + ruby -e "require 'timers'" + - uses: git-checkout + with: + expected-commit: 23bccc713a244a339500318616fae79d9922a78f + repository: https://github.com/socketry/timers + tag: v${{package.version}} + - runs: | + # Run upstream tests to find incompatibilities + bundle install + bundle exec bake test From baade6a550b27f4cb3ecb5d481d304a4ea9769dc Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 07/17] ruby4.0-traces: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-traces.yaml | 85 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 ruby4.0-traces.yaml diff --git a/ruby4.0-traces.yaml b/ruby4.0-traces.yaml new file mode 100644 index 00000000000..840a5da9311 --- /dev/null +++ b/ruby4.0-traces.yaml @@ -0,0 +1,85 @@ +package: + name: ruby4.0-traces + version: "0.18.2" + epoch: 0 + description: Application instrumentation and tracing. + copyright: + - license: MIT + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: traces + +pipeline: + - uses: git-checkout + with: + expected-commit: b1718472d27f8aa57d88a1d66bd39a5dcfd4e534 + repository: https://github.com/socketry/traces + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +test: + pipeline: + - name: Validate import + runs: ruby -e "require 'traces'" + - name: Basic example + runs: | + cat > example.rb < 'bar' + } + + Traces.trace('my_method', attributes: attributes) do + super + end + end + end + + MyClass.new.my_method + EOF + ruby example.rb + +update: + enabled: true + github: + identifier: socketry/traces + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM From bbc8e2b6107f4446761a54c95c6bce4c47d7ade2 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 08/17] ruby4.0-treetop: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-treetop.yaml | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 ruby4.0-treetop.yaml diff --git a/ruby4.0-treetop.yaml b/ruby4.0-treetop.yaml new file mode 100644 index 00000000000..02fd38040fc --- /dev/null +++ b/ruby4.0-treetop.yaml @@ -0,0 +1,62 @@ +# Generated from https://github.com/cjheath/treetop +package: + name: ruby4.0-treetop + version: "1.6.14" + epoch: 0 + description: A Parsing Expression Grammar (PEG) Parser generator DSL for Ruby + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-polyglot + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 25bd9f65ef0eb47be7d7e7374cfcfee751df7842 + repository: https://github.com/cjheath/treetop + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: treetop + +update: + enabled: true + github: + identifier: cjheath/treetop + strip-prefix: v + use-tag: true + +test: + pipeline: + # AUTOGENERATED + - runs: | + tt --version + tt --help + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM From 603527dbf5b8df42bcd35993ae6ccf93fd1cbdf7 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 09/17] ruby4.0-tzinfo-data: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-tzinfo-data.yaml | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 ruby4.0-tzinfo-data.yaml diff --git a/ruby4.0-tzinfo-data.yaml b/ruby4.0-tzinfo-data.yaml new file mode 100644 index 00000000000..3f0183e94be --- /dev/null +++ b/ruby4.0-tzinfo-data.yaml @@ -0,0 +1,63 @@ +package: + name: ruby4.0-tzinfo-data + version: "1.2025.3" + epoch: 0 + description: TZInfo::Data contains data from the IANA Time Zone database packaged as Ruby modules for use with TZInfo. + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-tzinfo + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: tzinfo-data + +pipeline: + - uses: git-checkout + with: + expected-commit: 984750ce9786584ec0cc7948dc41b601cda66ac4 + repository: https://github.com/tzinfo/tzinfo-data + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +update: + enabled: true + github: + identifier: tzinfo/tzinfo-data + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + pipeline: + - uses: test/tw/gem-check + with: + require: | + tzinfo/data + tzinfo/data/tzdataparser + tzinfo/data/version From 4b8211b6837613d8f2c2d3ba7751b98a7073d7ca Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 10/17] ruby4.0-tzinfo: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-tzinfo.yaml | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 ruby4.0-tzinfo.yaml diff --git a/ruby4.0-tzinfo.yaml b/ruby4.0-tzinfo.yaml new file mode 100644 index 00000000000..eb59530a9d0 --- /dev/null +++ b/ruby4.0-tzinfo.yaml @@ -0,0 +1,58 @@ +package: + name: ruby4.0-tzinfo + version: 2.0.6 + epoch: 0 + description: TZInfo provides access to time zone data and allows times to be converted using time zone rules. + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-concurrent-ruby + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: tzinfo + +pipeline: + - uses: git-checkout + with: + expected-commit: d5893c99bbcd842af86023f02a84fac1659b3031 + repository: https://github.com/tzinfo/tzinfo + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +update: + enabled: true + github: + identifier: tzinfo/tzinfo + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + pipeline: + - uses: test/tw/gem-check From a9b1bffe985eab38f8e6739f9145a762883458ba Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 11/17] ruby4.0-uri: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-uri.yaml | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 ruby4.0-uri.yaml diff --git a/ruby4.0-uri.yaml b/ruby4.0-uri.yaml new file mode 100644 index 00000000000..2eb36a1c521 --- /dev/null +++ b/ruby4.0-uri.yaml @@ -0,0 +1,56 @@ +package: + name: ruby4.0-uri + version: "1.1.1" + epoch: 0 + description: "URI is a module providing classes to handle Uniform Resource Identifiers" + copyright: + - license: BSD-2-Clause OR Ruby + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/ruby/uri + tag: v${{package.version}} + expected-commit: f1b05c89ab38667e7564896f994d4d6cfbc67149 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: uri + +test: + pipeline: + - runs: ruby -e "require 'uri'" + - runs: | + ruby -e 'require "uri"; uri = URI("https://wolfi.dev"); raise "Failed to parse URI" unless uri.host == "wolfi.dev" && uri.scheme == "https"' + +update: + enabled: true + github: + identifier: ruby/uri + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM From b36c31f8ce0c0c996facf9f980e0ebc4c8e17d4b Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 12/17] ruby4.0-validate_email: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-validate_email.yaml | 59 +++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 ruby4.0-validate_email.yaml diff --git a/ruby4.0-validate_email.yaml b/ruby4.0-validate_email.yaml new file mode 100644 index 00000000000..7c9815811e6 --- /dev/null +++ b/ruby4.0-validate_email.yaml @@ -0,0 +1,59 @@ +package: + name: ruby4.0-validate_email + version: 0.1.6 + epoch: 0 + description: Library for validating email addresses in Rails 3 models. + dependencies: + runtime: + - ruby${{vars.rubyMM}}-activemodel + - ruby${{vars.rubyMM}}-mail + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/perfectline/validates_email + tag: v${{package.version}} + expected-commit: 25a5efcd7b4daa6445d3be9e8ba103b174ba9e4b + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: validate_email + +update: + enabled: true + github: + identifier: perfectline/validates_email + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + pipeline: + - uses: test/tw/gem-check From 2a6a6673138b221c756a7cff8f9f5ee4933758d8 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 13/17] ruby4.0-validate_url: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-validate_url.yaml | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 ruby4.0-validate_url.yaml diff --git a/ruby4.0-validate_url.yaml b/ruby4.0-validate_url.yaml new file mode 100644 index 00000000000..d3bcfdc338e --- /dev/null +++ b/ruby4.0-validate_url.yaml @@ -0,0 +1,58 @@ +package: + name: ruby4.0-validate_url + version: 1.0.15 + epoch: 0 + description: Library for validating urls in Rails. + dependencies: + runtime: + - ruby${{vars.rubyMM}}-activemodel + - ruby${{vars.rubyMM}}-public_suffix + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + # This is a workaround as validate_url stopped tagging releases + # after their 1.0.5 release. It is adapted from our git-checkout + # pipeline as of 2023-07-24. + - uses: fetch + with: + # This commit is the 1.0.15 release + uri: https://github.com/perfectline/validates_url/archive/9c8a33558bba162fcc8c23732ba5b6e47fceaf86.tar.gz + expected-sha512: 3e5af128a911c5eb7c7c8b128f8834000aa540105c4ba5d4b6ff30ae7c11038c1e7ad73afc3c03e28260b4167954967a3db4f73fb8a4dc083b95b5cce6767572 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: validate_url + +update: + enabled: false + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + pipeline: + - uses: test/tw/gem-check From dbee3afb2e2e6f1e68b79d9b123e01892a321e5a Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 14/17] ruby4.0-version_gem: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-version_gem.yaml | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 ruby4.0-version_gem.yaml diff --git a/ruby4.0-version_gem.yaml b/ruby4.0-version_gem.yaml new file mode 100644 index 00000000000..08aa7412111 --- /dev/null +++ b/ruby4.0-version_gem.yaml @@ -0,0 +1,56 @@ +package: + name: ruby4.0-version_gem + version: "1.1.9" + epoch: 0 + description: Versions are good. Versions are cool. Versions will win. + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: a5d93f50d06af9ded2b1afeafeccf0cb74cf196b + tag: v${{package.version}} + repository: https://gitlab.com/oauth-xx/version_gem + + - runs: sed -i '/signing_key/d' ${{vars.gem}}.gemspec + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: version_gem + +update: + enabled: true + git: + strip-prefix: v + tag-filter-prefix: v + +test: + pipeline: + - runs: ruby -e "require 'version_gem'" + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM From 1b1f59e48d1396be604fbb177aab9c66cd7f90ce Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 15/17] ruby4.0-webfinger: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-webfinger.yaml | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 ruby4.0-webfinger.yaml diff --git a/ruby4.0-webfinger.yaml b/ruby4.0-webfinger.yaml new file mode 100644 index 00000000000..cfa9abb21ce --- /dev/null +++ b/ruby4.0-webfinger.yaml @@ -0,0 +1,59 @@ +package: + name: ruby4.0-webfinger + version: 2.1.2 + epoch: 0 + description: Ruby WebFinger client library + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-activesupport + - ruby${{vars.rubyMM}}-faraday + - ruby${{vars.rubyMM}}-faraday-follow_redirects + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/nov/webfinger + tag: v${{package.version}} + expected-commit: a79f140bcd5a0ac2140eefed5316e572625a0563 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: webfinger + +update: + enabled: true + github: + identifier: nov/webfinger + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + pipeline: + - uses: test/tw/gem-check From 297d996e71fd9381f83660a09d6b8beeca66e2c3 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 16/17] ruby4.0-webrick: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-webrick.yaml | 92 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 ruby4.0-webrick.yaml diff --git a/ruby4.0-webrick.yaml b/ruby4.0-webrick.yaml new file mode 100644 index 00000000000..07237deec0c --- /dev/null +++ b/ruby4.0-webrick.yaml @@ -0,0 +1,92 @@ +package: + name: ruby4.0-webrick + version: "1.9.2" + epoch: 0 + description: WEBrick is an HTTP server toolkit that can be configured as an HTTPS server, a proxy server, and a virtual-host server. + copyright: + - license: Ruby + - license: BSD-2-Clause + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: webrick + +pipeline: + - uses: git-checkout + with: + expected-commit: b1684cecf9eb87cb2ae20fd52fbb80cf3e859c8a + repository: https://github.com/ruby/webrick + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +update: + enabled: true + github: + identifier: ruby/webrick + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + pipeline: + - uses: test/tw/gem-check + with: + require: | + webrick + webrick/accesslog + webrick/cgi + webrick/compat + webrick/config + webrick/cookie + webrick/htmlutils + webrick/httpauth + webrick/httpproxy + webrick/httprequest + webrick/httpresponse + webrick/https + webrick/httpserver + webrick/httpservlet + webrick/httpstatus + webrick/httputils + webrick/httpversion + webrick/log + webrick/server + webrick/ssl + webrick/utils + webrick/version + webrick/httpauth/basicauth + webrick/httpauth/digestauth + webrick/httpauth/htdigest + webrick/httpauth/htgroup + webrick/httpauth/htpasswd + webrick/httpauth/userdb + webrick/httpservlet/abstract + webrick/httpservlet/cgihandler + webrick/httpservlet/erbhandler + webrick/httpservlet/prochandler From 311f8dcfdc82bb31e53a6f49239263d60ec0c42d Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 8 Dec 2025 15:04:54 -0500 Subject: [PATCH 17/17] ruby4.0-yajl-ruby: ruby4.0-*: New packages Changes: - Ruby 4.0 incorporated the following gems: `benchmark`, `logger` and `reline`. This means that we don't need to create separate packages for them. - Several of our Ruby module packages had a hardcoded `rubyMM` variable set to 3.4. They now use `var-transforms` to derive the Ruby version from the package name. - ruby4.0-octokit: Cherry-pick fix to bump octokit requirement - ruby4.0-jruby-openssl: Remove. Upstream said on jruby/jruby-openssl#337 that it doesn't make sense to ship this module for Ruby as it is a JRuby specific project. There are no recent reverse deps for jruby-openssl either, so let's remove it. - ruby4.0-rails-8.1: Add `ruby${{vars.rubyMM}}-psych` and `pkgconf` to test dependencies. Test by installing `sidekiq` instead of `bcrypt` (the latter fails to build with Ruby 4.0). Signed-off-by: Sergio Durigan Junior --- ruby4.0-yajl-ruby.yaml | 112 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 ruby4.0-yajl-ruby.yaml diff --git a/ruby4.0-yajl-ruby.yaml b/ruby4.0-yajl-ruby.yaml new file mode 100644 index 00000000000..8076650bda0 --- /dev/null +++ b/ruby4.0-yajl-ruby.yaml @@ -0,0 +1,112 @@ +#nolint:valid-pipeline-git-checkout-commit,valid-pipeline-git-checkout-tag +package: + name: ruby4.0-yajl-ruby + version: 1.4.3 + epoch: 0 + description: ruby C bindings for Yajl library + copyright: + - license: MIT + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: yajl-ruby + # The latest releases of yajl-ruby were released on rubygems.org but a tag + # was not created in the repo itself. https://github.com/brianmario/yajl-ruby + # + # This commit matches the 1.4.3 release on rubygems.org so it's used to check + # the repository out and build the 1.4.3 version of yajl-ruby + # https://github.com/brianmario/yajl-ruby/issues/216 + commit: 63760720e58d8cb818d59ae6c4f3d96760cd7854 + +pipeline: + # This package _also_ makes use of `git ls-files` in it's gemspec so the git + # repo must be checked out in order for the gem to build with all files. + - uses: git-checkout + with: + branch: master + destination: ${{vars.gem}} + repository: https://github.com/brianmario/yajl-ruby + depth: -1 + + - working-directory: ${{vars.gem}} + pipeline: + # NOTE: See the vars.commit comment + - runs: git checkout ${{vars.commit}} + - uses: ruby/build + with: + gem: ${{vars.gem}} + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + - uses: ruby/clean + +update: + enabled: true + manual: true # update fails while we are using a commit rather than tag + github: + identifier: brianmario/yajl-ruby + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - uses: test/tw/gem-check + with: + require: | + yajl + yajl/json_gem + yajl/json_gem/encoding + yajl/json_gem/parsing + yajl/version + - name: Verify library loading + runs: | + ruby -e "require 'yajl'; puts 'Successfully loaded yajl-ruby library'" + - name: Basic JSON parsing and encoding test + runs: | + ruby <<-EOF + require 'yajl' + + # Test parsing JSON + json_string = '{"test": "value", "numbers": [1, 2, 3]}' + parsed = Yajl::Parser.parse(json_string) + + # Verify parsing worked correctly + raise "Parsing failed: expected 'value', got '\#{parsed['test']}'" unless parsed['test'] == 'value' + raise "Array parsing failed" unless parsed['numbers'].is_a?(Array) && parsed['numbers'] == [1, 2, 3] + puts "JSON parsing test passed!" + + # Test encoding + hash = {"hello" => "world", "array" => [1, 2, "three"]} + encoded = Yajl::Encoder.encode(hash) + + # Verify we can parse what we encoded + decoded = Yajl::Parser.parse(encoded) + raise "Round-trip encoding test failed" unless decoded == hash + puts "JSON encoding test passed!" + + puts "All yajl-ruby tests passed successfully!" + EOF + - uses: test/tw/ldd-check