From f9e32c04693ed0179b8080ec183c2afff27d2be1 Mon Sep 17 00:00:00 2001 From: Justin Vreeland Date: Thu, 12 Dec 2024 15:13:33 -0800 Subject: [PATCH] ruby 3.4: gems batch 2 (#36450) Copied ruby3.3 files to 3.4 sed'd the version, removed sed patch for the key that've been integrated into the pipeline. Also re add console test. --- ruby3.4-addressable.yaml | 69 ++++++++++ ruby3.4-aws-sigv4.yaml | 99 ++++++++++++++ ruby3.4-chronic_duration.yaml | 97 ++++++++++++++ .../numerizer-dependency.patch | 13 ++ ruby3.4-concurrent-ruby.yaml | 124 ++++++++++++++++++ ruby3.4-console.yaml | 16 ++- ruby3.4-elasticsearch-api.yaml | 83 ++++++++++++ ruby3.4-faraday-net_http.yaml | 76 +++++++++++ ruby3.4-faraday.yaml | 105 +++++++++++++++ ruby3.4-ffi.yaml | 66 ++++++++++ ruby3.4-http-cookie.yaml | 95 ++++++++++++++ ruby3.4-jruby-openssl.yaml | 60 +++++++++ ruby3.4-jsonpath.yaml | 78 +++++++++++ ruby3.4-manticore.yaml | 59 +++++++++ ruby3.4-mime-types.yaml | 121 +++++++++++++++++ ruby3.4-mustermann.yaml | 59 +++++++++ ruby3.4-net-http-persistent.yaml | 53 ++++++++ ruby3.4-protocol-http1.yaml | 82 ++++++++++++ ruby3.4-protocol-http2.yaml | 87 ++++++++++++ ruby3.4-pry.yaml | 63 +++++++++ ruby3.4-psych.yaml | 60 +++++++++ ruby3.4-puma.yaml | 65 +++++++++ ruby3.4-rack-protection.yaml | 59 +++++++++ ruby3.4-redis-client.yaml | 55 ++++++++ ruby3.4-reline.yaml | 59 +++++++++ ruby3.4-rspec-core.yaml | 52 ++++++++ ruby3.4-rspec-expectations.yaml | 44 +++++++ ruby3.4-rspec-mocks.yaml | 44 +++++++ ruby3.4-serverengine.yaml | 58 ++++++++ ruby3.4-snaky_hash.yaml | 52 ++++++++ ruby3.4-treetop.yaml | 62 +++++++++ 31 files changed, 2114 insertions(+), 1 deletion(-) create mode 100644 ruby3.4-addressable.yaml create mode 100644 ruby3.4-aws-sigv4.yaml create mode 100644 ruby3.4-chronic_duration.yaml create mode 100644 ruby3.4-chronic_duration/numerizer-dependency.patch create mode 100644 ruby3.4-concurrent-ruby.yaml create mode 100644 ruby3.4-elasticsearch-api.yaml create mode 100644 ruby3.4-faraday-net_http.yaml create mode 100644 ruby3.4-faraday.yaml create mode 100644 ruby3.4-ffi.yaml create mode 100644 ruby3.4-http-cookie.yaml create mode 100644 ruby3.4-jruby-openssl.yaml create mode 100644 ruby3.4-jsonpath.yaml create mode 100644 ruby3.4-manticore.yaml create mode 100644 ruby3.4-mime-types.yaml create mode 100644 ruby3.4-mustermann.yaml create mode 100644 ruby3.4-net-http-persistent.yaml create mode 100644 ruby3.4-protocol-http1.yaml create mode 100644 ruby3.4-protocol-http2.yaml create mode 100644 ruby3.4-pry.yaml create mode 100644 ruby3.4-psych.yaml create mode 100644 ruby3.4-puma.yaml create mode 100644 ruby3.4-rack-protection.yaml create mode 100644 ruby3.4-redis-client.yaml create mode 100644 ruby3.4-reline.yaml create mode 100644 ruby3.4-rspec-core.yaml create mode 100644 ruby3.4-rspec-expectations.yaml create mode 100644 ruby3.4-rspec-mocks.yaml create mode 100644 ruby3.4-serverengine.yaml create mode 100644 ruby3.4-snaky_hash.yaml create mode 100644 ruby3.4-treetop.yaml diff --git a/ruby3.4-addressable.yaml b/ruby3.4-addressable.yaml new file mode 100644 index 00000000000..8b7612d91ca --- /dev/null +++ b/ruby3.4-addressable.yaml @@ -0,0 +1,69 @@ +package: + name: ruby3.4-addressable + version: 2.8.7 + epoch: 0 + description: Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates. + copyright: + - license: Apache-2.0 + dependencies: + runtime: + - ruby${{vars.rubyMM}}-public_suffix + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: addressable + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/sporkmonger/addressable + tag: addressable-${{package.version}} + expected-commit: 7930ece6e4ae266e67fc927f2e44e39f97fd5f22 + + - 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 'addressable'" + - name: Parse URI + runs: | + cat < /tmp/test.rb + require 'addressable/uri' + uri = Addressable::URI.parse("https://edu.chainguard.dev/open-source/wolfi/overview/") + uri.scheme + uri.host + uri.path + uri.normalize + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: sporkmonger/addressable + strip-prefix: addressable- + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-aws-sigv4.yaml b/ruby3.4-aws-sigv4.yaml new file mode 100644 index 00000000000..6b51cacfcc0 --- /dev/null +++ b/ruby3.4-aws-sigv4.yaml @@ -0,0 +1,99 @@ +#nolint:valid-pipeline-git-checkout-tag +package: + name: ruby3.4-aws-sigv4 + version: 1.10.1 + epoch: 0 + description: Amazon Web Services Signature Version 4 signing library. Generates sigv4 signature for HTTP requests. + copyright: + - license: Apache-2.0 + dependencies: + runtime: + - ruby${{vars.rubyMM}}-aws-eventstream + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + - zlib-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 86cccb96ed7a0ee71cd33847151b4219d30b1571 + repository: https://github.com/aws/aws-sdk-ruby + branch: version-3 + depth: -1 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + dir: gems/${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + dir: gems/${{vars.gem}} + + - uses: ruby/clean + +vars: + gem: aws-sigv4 + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby <<-EOF + require 'aws-sigv4' + require 'test/unit' + include Test::Unit::Assertions + + # Test basic signer creation + signer = Aws::Sigv4::Signer.new( + service: 'service', + region: 'us-east-1', + access_key_id: 'akid', + secret_access_key: 'secret' + ) + assert_kind_of Aws::Sigv4::Signer, signer + puts "Signer creation test passed" + + # Test basic signature generation + signature = signer.sign_request( + http_method: 'GET', + url: 'https://service.us-east-1.amazonaws.com', + headers: { + 'host' => 'service.us-east-1.amazonaws.com' + } + ) + assert_kind_of String, signature.string_to_sign + puts "Signature string generation test passed" + + # Test canonical request generation + assert signature.canonical_request.include?('GET') + assert signature.canonical_request.include?('host:service.us-east-1.amazonaws.com') + puts "Canonical request test passed" + + puts "All tests passed!" + EOF + +update: + enabled: false + manual: true # the library we fetch uses a different version then the package version + release-monitor: + identifier: 174496 + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-chronic_duration.yaml b/ruby3.4-chronic_duration.yaml new file mode 100644 index 00000000000..7ddc519ba63 --- /dev/null +++ b/ruby3.4-chronic_duration.yaml @@ -0,0 +1,97 @@ +# Generated from https://github.com/hpoydar/chronic_duration +package: + name: ruby3.4-chronic_duration + version: 0.10.6 + epoch: 0 + description: A simple Ruby natural language parser for elapsed time. (For example, 4 hours and 30 minutes, 6 minutes 4 seconds, 3 days, etc.) Returns all results in seconds. Will return an integer unless you get tricky and need a float. (4 minutes and 13.47 seconds, for example.) The reverse can also be performed via the output method. + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-numerizer + +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/hpoydar/chronic_duration + tag: v${{package.version}} + expected-commit: 55f992d6715a0920fefb5c4051e9eff40f948a21 + + # Upstream pin to an eol version of `numerizer` as a runtime dependency. This + # results in runtime failures when we attempt to use our (newer) version. + # This patch removes upstream pinning to a particular version at runtime. + # + # There hasn't been any updates for quite some time upstream, so there doesn't + # look to be any other reason for the pinning. + - uses: patch + with: + patches: numerizer-dependency.patch + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: chronic_duration + +test: + pipeline: + - runs: | + ruby -e "require 'chronic_duration'; puts 'ChronicDuration loaded successfully!'" + - runs: | + ruby <<-EOF + require 'chronic_duration' + + # Test case 1: Parsing a simple duration + result = ChronicDuration.parse('4 hours and 30 minutes') + if result != 16200 + raise 'Assertion failed: Expected 16200, got ' + result.to_s + end + puts 'Test case 1 passed: Simple duration parsing' + + # Test case 2: Parsing a duration with seconds + result = ChronicDuration.parse('3 minutes and 20 seconds') + if result != 200 + raise 'Assertion failed: Expected 200, got ' + result.to_s + end + puts 'Test case 2 passed: Duration with seconds parsing' + + # Test case 3: Invalid input + result = ChronicDuration.parse('invalid input') + if result != nil + raise 'Assertion failed: Expected nil for invalid input, got ' + result.to_s + end + puts 'Test case 3 passed: Handling invalid input' + + puts 'All test cases passed!' + EOF + +update: + enabled: true + github: + identifier: hpoydar/chronic_duration + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-chronic_duration/numerizer-dependency.patch b/ruby3.4-chronic_duration/numerizer-dependency.patch new file mode 100644 index 00000000000..d70cb7ccfaa --- /dev/null +++ b/ruby3.4-chronic_duration/numerizer-dependency.patch @@ -0,0 +1,13 @@ +diff --git a/chronic_duration.gemspec b/chronic_duration.gemspec +index c94711a..abd5fcc 100644 +--- a/chronic_duration.gemspec ++++ b/chronic_duration.gemspec +@@ -19,7 +19,7 @@ Gem::Specification.new do |gem| + gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) + gem.require_paths = ["lib"] + +- gem.add_runtime_dependency "numerizer", "~> 0.1.1" ++ gem.add_runtime_dependency "numerizer" + + gem.add_development_dependency "rake", "~> 10.0.3" + gem.add_development_dependency "rspec", "~> 2.12.0" diff --git a/ruby3.4-concurrent-ruby.yaml b/ruby3.4-concurrent-ruby.yaml new file mode 100644 index 00000000000..58d945be6b3 --- /dev/null +++ b/ruby3.4-concurrent-ruby.yaml @@ -0,0 +1,124 @@ +package: + name: ruby3.4-concurrent-ruby + version: 1.3.4 + epoch: 0 + description: Modern concurrency tools including agents, futures, promises, thread pools, actors, supervisors, and more. Inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency patterns. + copyright: + - license: MIT + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - jruby-9.4 + - openjdk-11 + - openjdk-11-default-jvm + - ruby${{vars.rubyMM}}-bundler + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + environment: + JRUBY_HOME: /usr/share/jruby/ + +vars: + gem: concurrent-ruby + +pipeline: + # This package 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: + expected-commit: 044020f44b36930b863b930f3ee8fa1e9f750469 + repository: https://github.com/ruby-concurrency/concurrent-ruby.git + tag: v${{package.version}} + + - runs: | + bundle install + bundle exec rake compile + bundle exec rake package + + - uses: ruby/install + with: + dir: ./pkg + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +subpackages: + - name: ${{package.name}}-ext + description: Concurrent ruby C extensions + pipeline: + - uses: ruby/install + with: + dir: ./pkg + gem: ${{vars.gem}}-ext + version: ${{package.version}} + - uses: ruby/clean + + - name: ${{package.name}}-edge + description: Concurrent ruby edge functionality + pipeline: + # This is ugly but concurrent-ruby publishes an edge gem at a different + # version than the main gem and melange does not support setting cross + # pipeline variables + - runs: | + EDGE_VERSION=$(ruby -e "require './lib/concurrent-ruby-edge/concurrent/edge/version'; puts Concurrent::EDGE_VERSION") + TARGET_DIR_BIN="${{targets.contextdir}}/usr/bin" + TARGET_DIR_INSTALL="${{targets.contextdir}}$(ruby -e 'puts Gem.default_dir')/" + + mkdir -p "${TARGET_DIR_BIN}" + mkdir -p "${TARGET_DIR_INSTALL}" + + GEM="./pkg/${{vars.gem}}-edge-${EDGE_VERSION}.gem" + gem install ${GEM} \ + --install-dir ${TARGET_DIR_INSTALL} \ + --bindir ${TARGET_DIR_BIN} \ + --version ${EDGE_VERSION} \ + --ignore-dependencies \ + --no-document \ + --verbose \ + --local + - uses: ruby/clean + +test: + environment: + environment: + HOME: /tmp/test + contents: + packages: + - ruby${{vars.rubyMM}}-bundler + # Install the subpackages for testing + - ruby${{vars.rubyMM}}-concurrent-ruby-ext + - ruby${{vars.rubyMM}}-concurrent-ruby-edge + pipeline: + - runs: mkdir -p $HOME + - uses: git-checkout + with: + expected-commit: 044020f44b36930b863b930f3ee8fa1e9f750469 + repository: https://github.com/ruby-concurrency/concurrent-ruby.git + tag: v${{package.version}} + - runs: | + export JRUBY_HOME=/usr/share/jruby/ + bundle install + + export NO_PATH=true + bundle exec rake spec:ci + +update: + enabled: true + github: + identifier: ruby-concurrency/concurrent-ruby + strip-prefix: v + tag-filter-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-console.yaml b/ruby3.4-console.yaml index e43ecca2b1a..7ae743a783b 100644 --- a/ruby3.4-console.yaml +++ b/ruby3.4-console.yaml @@ -46,7 +46,21 @@ pipeline: test: pipeline: - - runs: ruby -e "require 'console'" + - runs: | + ruby -e "require 'console'; puts 'Console library loaded successfully!'" + - runs: | + ruby <<-EOF + require 'console' + + # Create a logger instance + logger = Console.logger + + # Log a single message + logger.info "Test log message" + + # Verify it doesn't raise errors + puts "Console basic logging verified!" + EOF update: enabled: true diff --git a/ruby3.4-elasticsearch-api.yaml b/ruby3.4-elasticsearch-api.yaml new file mode 100644 index 00000000000..92ddd24d7c2 --- /dev/null +++ b/ruby3.4-elasticsearch-api.yaml @@ -0,0 +1,83 @@ +package: + name: ruby3.4-elasticsearch-api + version: 8.16.0 + epoch: 0 + description: | + Ruby API for Elasticsearch. See the `elasticsearch` gem for full integration. + copyright: + - license: Apache-2.0 + dependencies: + runtime: + - ruby${{vars.rubyMM}}-multi_json + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: elasticsearch-api + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/elastic/elasticsearch-ruby.git + tag: v${{package.version}} + expected-commit: 2acbce702ecdc3c7f8e8116e81a76a836f75c6f0 + + - working-directory: ${{vars.gem}} + pipeline: + - 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 'elasticsearch/api'; puts 'Elasticsearch API library loaded successfully!'" + - runs: | + ruby <<-EOF + require 'elasticsearch/api' + + # Check if the module Elasticsearch::API exists + unless defined?(Elasticsearch::API) + raise 'Elasticsearch::API module is not defined!' + end + + # Mocking a client with basic method inclusion for testing + class MockClient + include Elasticsearch::API + end + + client = MockClient.new + + # Verify that a basic API method exists + unless client.respond_to?(:info) + raise 'The client does not respond to the `info` method!' + end + + puts 'Elasticsearch API library basic functionality verified!' + EOF + +update: + enabled: true + github: + identifier: elastic/elasticsearch-ruby + strip-prefix: v + use-tag: true + tag-filter: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-faraday-net_http.yaml b/ruby3.4-faraday-net_http.yaml new file mode 100644 index 00000000000..38a4ab388a7 --- /dev/null +++ b/ruby3.4-faraday-net_http.yaml @@ -0,0 +1,76 @@ +package: + name: ruby3.4-faraday-net_http + version: 3.4.0 + epoch: 1 + description: Faraday adapter for Net::HTTP + copyright: + - license: MIT + dependencies: + runtime: + - ruby3.4-net-http + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: f36ed44a18b64fdc883c050e3bd56b23ea0d2bc6 + repository: https://github.com/lostisland/faraday-net_http + 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: faraday-net_http + +test: + environment: + contents: + packages: + - ruby3.4-faraday + pipeline: + # Users do not import this package directly, see the following for a deeper + # explanation: https://github.com/lostisland/faraday-net_http/issues/25 + - name: Basic usage + runs: | + cat < /tmp/test.rb + require 'faraday' + + Faraday.default_adapter = :net_http + conn = Faraday.new(url: 'https://edu.chainguard.dev/open-source/wolfi/overview/') do |f| + f.adapter :net_http + end + + response = conn.get('/') + print response.status + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: lostisland/faraday-net_http + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-faraday.yaml b/ruby3.4-faraday.yaml new file mode 100644 index 00000000000..40374ac8752 --- /dev/null +++ b/ruby3.4-faraday.yaml @@ -0,0 +1,105 @@ +package: + name: ruby3.4-faraday + version: 2.12.2 + epoch: 0 + description: HTTP/REST API client library. + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-faraday-net_http + - ruby${{vars.rubyMM}}-ruby2_keywords + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: a9cf00425e3abc99b78952af44deb2912a65a882 + repository: https://github.com/lostisland/faraday + 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: faraday + +test: + environment: + contents: + packages: + - ruby${{vars.rubyMM}}-faraday-net_http + - ruby${{vars.rubyMM}}-net-http + pipeline: + - name: Verify library import + runs: ruby -e "require 'faraday'" + - name: Basic usage + runs: | + cat < /tmp/basic_usage_test.rb + require 'faraday' + response = Faraday.get("https://edu.chainguard.dev/open-source/wolfi/overview/") + if response.status == 200 + puts "Basic usage test passed! Status: \#{response.status}" + else + raise "Basic usage test failed. Unexpected status: \#{response.status}" + end + EOF + ruby /tmp/basic_usage_test.rb + - name: Functional test with middleware + runs: | + cat < /tmp/functional_test_middleware.rb + require 'faraday' + require 'json' + + # Configure Faraday connection with a middleware + conn = Faraday.new(url: "https://httpbin.org") do |f| + f.request :url_encoded + f.adapter :net_http + end + + # Perform a POST request with some data + response = conn.post("/post") do |req| + req.headers['Content-Type'] = 'application/json' + req.body = { test_key: 'test_value' }.to_json + end + + # Parse the JSON response + parsed_body = JSON.parse(response.body) + + # Validate the response + if response.status == 200 && parsed_body["json"]["test_key"] == "test_value" + puts "Functional middleware test passed!" + else + raise "Functional middleware test failed." + end + EOF + ruby /tmp/functional_test_middleware.rb + +update: + enabled: true + github: + identifier: lostisland/faraday + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-ffi.yaml b/ruby3.4-ffi.yaml new file mode 100644 index 00000000000..f3317419381 --- /dev/null +++ b/ruby3.4-ffi.yaml @@ -0,0 +1,66 @@ +package: + name: ruby3.4-ffi + version: 1.17.0 + epoch: 0 + description: Ruby FFI + copyright: + - license: BSD-3-Clause AND MIT + +environment: + contents: + packages: + - autoconf + - automake + - build-base + - busybox + - ca-certificates-bundle + - libffi-dev + - libtool + - openssf-compiler-options + - ruby${{vars.rubyMM}}-bundler + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: ffi + +pipeline: + - uses: git-checkout + with: + expected-commit: ecfb225096ae76ba2a5e8115f046bd0ac23095e6 + repository: https://github.com/ffi/ffi.git + tag: v${{package.version}} + + - runs: | + git submodule update --init --recursive + # The generated files are required to package the gem + cd ext/ffi_c/libffi/ && autoreconf -i + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + opts: -- --enable-system-libffi + + - uses: ruby/clean + +test: + pipeline: + - runs: | + ruby -e "require 'ffi'" + +update: + enabled: true + github: + identifier: ffi/ffi + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-http-cookie.yaml b/ruby3.4-http-cookie.yaml new file mode 100644 index 00000000000..97364fbb1e2 --- /dev/null +++ b/ruby3.4-http-cookie.yaml @@ -0,0 +1,95 @@ +# Generated from https://github.com/sparklemotion/http-cookie +package: + name: ruby3.4-http-cookie + version: 1.0.8 + epoch: 0 + description: HTTP::Cookie is a Ruby library to handle HTTP Cookies based on RFC 6265. It has with security, standards compliance and compatibility in mind, to behave just the same as today's major web browsers. It has builtin support for the legacy cookies.txt and the latest cookies.sqlite formats of Mozilla Firefox, and its modular API makes it easy to add support for a new backend store. + copyright: + - license: MIT + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + - ruby${{vars.rubyMM}}-domain_name + +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/sparklemotion/http-cookie.git + tag: v${{package.version}} + expected-commit: 467b84fedfd0b4b933a8c5732c8492b1538a527b + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: http-cookie + +test: + pipeline: + - runs: ruby -e "require 'http/cookie'" + - name: Simple test + runs: | + cat < /tmp/test.rb + require 'http/cookie' + + # Smoke test for http-cookie + def smoke_test_http_cookie + begin + # Create a cookie jar + jar = HTTP::CookieJar.new + + # Set a cookie + cookie = HTTP::Cookie.new( + name: 'test_cookie', + value: 'test_value', + domain: 'example.com', + path: '/' + ) + jar.add(cookie) + + # Retrieve the cookie + retrieved_cookie = jar.cookies('http://example.com').find { |c| c.name == 'test_cookie' } + + # Validate the cookie + if retrieved_cookie && retrieved_cookie.value == 'test_value' + puts "Smoke test passed: Cookie set and retrieved successfully." + else + puts "Smoke test failed: Cookie retrieval mismatch." + end + rescue => e + puts "Smoke test failed: Exception occurred - #{e.message}" + end + end + smoke_test_http_cookie + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: sparklemotion/http-cookie + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-jruby-openssl.yaml b/ruby3.4-jruby-openssl.yaml new file mode 100644 index 00000000000..ed4c3a31939 --- /dev/null +++ b/ruby3.4-jruby-openssl.yaml @@ -0,0 +1,60 @@ +# Generated from https://github.com/jruby/jruby-openssl +package: + name: ruby3.4-jruby-openssl + version: 0.15.2 + epoch: 0 + description: JRuby-OpenSSL is an add-on gem for JRuby that emulates the Ruby OpenSSL native library. + copyright: + - license: GPL-2.0-or-later AND EPL-1.0 AND LGPL-2.1-or-later + dependencies: + runtime: + - ruby${{vars.rubyMM}}-bouncy-castle-java + - openjdk-11-default-jvm + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 29cedb9d3a0374a2d3d2adc88b34deb119112967 + repository: https://github.com/jruby/jruby-openssl + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + # Output file name has `java` suffix. + gem-file: ${{vars.gem}}-${{package.version}}-java.gem + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: jruby-openssl + +update: + enabled: true + # There are some non-semantic tags that break our update block. + ignore-regex-patterns: + - .*\.cr* + github: + identifier: jruby/jruby-openssl + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-jsonpath.yaml b/ruby3.4-jsonpath.yaml new file mode 100644 index 00000000000..71bc5d16ed8 --- /dev/null +++ b/ruby3.4-jsonpath.yaml @@ -0,0 +1,78 @@ +package: + name: ruby3.4-jsonpath + version: 1.1.5 + epoch: 0 + description: Ruby implementation of http://goessner.net/articles/JsonPath/. + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-multi_json + +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/joshbuddy/jsonpath + tag: v${{package.version}} + expected-commit: 725f1873a164955a129e70cd92417414f89efe26 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: jsonpath + +test: + pipeline: + - runs: ruby -e "require 'jsonpath'" + - name: Simple test + runs: | + cat < /tmp/test.rb + require 'jsonpath' + json = <<-HERE_DOC + {"store": + {"bicycle": + {"price":19.95, "color":"red"}, + "book":[ + {"price":8.95, "category":"reference", "title":"Sayings of the Century", "author":"Nigel Rees"}, + {"price":12.99, "category":"fiction", "title":"Sword of Honour", "author":"Evelyn Waugh"}, + {"price":8.99, "category":"fiction", "isbn":"0-553-21311-3", "title":"Moby Dick", "author":"Herman Melville","color":"blue"}, + {"price":22.99, "category":"fiction", "isbn":"0-395-19395-8", "title":"The Lord of the Rings", "author":"Tolkien"} + ] + } + } + HERE_DOC + path = JsonPath.new('$..price') + path.on(json) + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: joshbuddy/jsonpath + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-manticore.yaml b/ruby3.4-manticore.yaml new file mode 100644 index 00000000000..3a3aba25f87 --- /dev/null +++ b/ruby3.4-manticore.yaml @@ -0,0 +1,59 @@ +# Generated from https://github.com/cheald/manticore +package: + name: ruby3.4-manticore + version: 0.9.1 + epoch: 0 + description: Manticore is an HTTP client built on the Apache HttpCore components + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-openssl_pkcs8_pure + +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/cheald/manticore + tag: v${{package.version}} + expected-commit: acc25cac2999f4658a77a0f39f60ddbca8fe14a4 + + - runs: | + sed -i 's/exists?/exist?/g' manticore.gemspec + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + # Output file name has `java` suffix. + gem-file: ${{vars.gem}}-${{package.version}}-java.gem + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: manticore + +update: + enabled: true + github: + identifier: cheald/manticore + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-mime-types.yaml b/ruby3.4-mime-types.yaml new file mode 100644 index 00000000000..ddda75c6a44 --- /dev/null +++ b/ruby3.4-mime-types.yaml @@ -0,0 +1,121 @@ +package: + name: ruby3.4-mime-types + version: 3.6.0 + epoch: 0 + description: Ruby MIME type registry library + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-mime-types-data + +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/mime-types/ruby-mime-types.git + tag: v${{package.version}} + expected-commit: 5dc1b9117e53cef93b5b46c19fbb4dd00bf80bab + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: mime-types + +test: + pipeline: + - runs: | + ruby -e "require 'mime/types'" + - name: Simple test + runs: | + cat < /tmp/test.rb + require 'mime/types' + + plaintext = MIME::Types['text/plain'] # => [ text/plain ] + text = plaintext.first + puts text.media_type # => 'text' + puts text.sub_type # => 'plain' + + puts text.extensions.join(' ') # => 'txt asc c cc h hh cpp hpp dat hlp' + puts text.preferred_extension # => 'txt' + puts text.friendly # => 'Text Document' + puts text.i18n_key # => 'text.plain' + + puts text.encoding # => quoted-printable + puts text.default_encoding # => quoted-printable + puts text.binary? # => false + puts text.ascii? # => true + puts text.obsolete? # => false + puts text.registered? # => true + puts text.provisional? # => false + puts text.complete? # => true + + puts text # => 'text/plain' + + puts text == 'text/plain' # => true + puts 'text/plain' == text # => true + puts text == 'text/x-plain' # => false + puts 'text/x-plain' == text # => false + + puts MIME::Type.simplified('x-appl/x-zip') # => 'x-appl/x-zip' + puts MIME::Type.i18n_key('x-appl/x-zip') # => 'x-appl.x-zip' + + puts text.like?('text/x-plain') # => true + puts text.like?(MIME::Type.new('x-text/x-plain')) # => true + + puts text.xrefs.inspect # => { "rfc" => [ "rfc2046", "rfc3676", "rfc5147" ] } + puts text.xref_urls # => [ "http://www.iana.org/go/rfc2046", + # "http://www.iana.org/go/rfc3676", + # "http://www.iana.org/go/rfc5147" ] + + xtext = MIME::Type.new('x-text/x-plain') + puts xtext.media_type # => 'text' + puts xtext.raw_media_type # => 'x-text' + puts xtext.sub_type # => 'plain' + puts xtext.raw_sub_type # => 'x-plain' + puts xtext.complete? # => false + + puts MIME::Types.any? { |type| type.content_type == 'text/plain' } # => true + puts MIME::Types.all?(&:registered?) # => false + + # Various string representations of MIME types + qcelp = MIME::Types['audio/QCELP'].first # => audio/QCELP + puts qcelp.content_type # => 'audio/QCELP' + puts qcelp.simplified # => 'audio/qcelp' + + xwingz = MIME::Types['application/x-Wingz'].first # => application/x-Wingz + puts xwingz.content_type # => 'application/x-Wingz' + puts xwingz.simplified # => 'application/x-wingz' + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: mime-types/ruby-mime-types + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-mustermann.yaml b/ruby3.4-mustermann.yaml new file mode 100644 index 00000000000..58d8565ba8a --- /dev/null +++ b/ruby3.4-mustermann.yaml @@ -0,0 +1,59 @@ +# Generated from https://github.com/sinatra/mustermann +package: + name: ruby3.4-mustermann + version: 3.0.3 + epoch: 0 + description: A library implementing patterns that behave like regular expressions. + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-ruby2_keywords + - ruby${{vars.rubyMM}}-rack-2.2 + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 49c80d8370f7997edf98db8aa2c9cf20dd4cde06 + tag: v${{package.version}} + repository: https://github.com/sinatra/mustermann + + - uses: ruby/build + with: + gem: ${{vars.gem}} + dir: mustermann + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + dir: mustermann + + - uses: ruby/clean + +vars: + gem: mustermann + +update: + enabled: true + github: + identifier: sinatra/mustermann + strip-prefix: v + tag-filter-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-net-http-persistent.yaml b/ruby3.4-net-http-persistent.yaml new file mode 100644 index 00000000000..ba8b7a12685 --- /dev/null +++ b/ruby3.4-net-http-persistent.yaml @@ -0,0 +1,53 @@ +package: + name: ruby3.4-net-http-persistent + version: 4.0.2 + epoch: 0 + description: Manages persistent connections using Net::HTTP including a thread pool for connecting to multiple hosts. + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-connection_pool + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 1fb915ff6e700a06d711ebf0217b2f12f559f33c + repository: https://github.com/drbrain/net-http-persistent + 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: net-http-persistent + +update: + enabled: true + github: + identifier: drbrain/net-http-persistent + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-protocol-http1.yaml b/ruby3.4-protocol-http1.yaml new file mode 100644 index 00000000000..16923a05bd5 --- /dev/null +++ b/ruby3.4-protocol-http1.yaml @@ -0,0 +1,82 @@ +package: + name: ruby3.4-protocol-http1 + version: 0.28.1 + epoch: 0 + description: A low level implementation of the HTTP/1 protocol. + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-protocol-http + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: protocol-http1 + +pipeline: + - uses: git-checkout + with: + expected-commit: db96687509548e54f28ff3ebcb156bf4c70d4e4d + repository: https://github.com/socketry/protocol-http1 + 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/protocol-http1 + strip-prefix: v + use-tag: true + +test: + pipeline: + - runs: ruby -e "require 'protocol/http1'" + - name: Simple HTTP1 test + runs: | + cat < /tmp/test.rb + require 'protocol/http1' + require 'stringio' + + # Create a string that simulates a basic HTTP request + request = "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" + + # Open the string as if it were a stream + stream = StringIO.new(request) + + # Create an HTTP1 connection using the stream + connection = Protocol::HTTP1::Connection.new(stream) + + # Read and parse the request, returns an array of request components + request = connection.read_request + + # Extract and print the authority (host) from the request + authority = request[0] + puts authority # Expected: "example.com" + EOF + ruby /tmp/test.rb + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-protocol-http2.yaml b/ruby3.4-protocol-http2.yaml new file mode 100644 index 00000000000..59f12178033 --- /dev/null +++ b/ruby3.4-protocol-http2.yaml @@ -0,0 +1,87 @@ +package: + name: ruby3.4-protocol-http2 + version: 0.22.0 + epoch: 0 + description: A low level implementation of the HTTP/2 protocol. + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-protocol-hpack + - ruby${{vars.rubyMM}}-protocol-http + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: protocol-http2 + +pipeline: + - uses: git-checkout + with: + expected-commit: b0fc66030483c5e457e3b7e9e1476ff002a356ad + repository: https://github.com/socketry/protocol-http2 + 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/protocol-http2 + 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}}-protocol-hpack + - ruby${{vars.rubyMM}}-protocol-http + pipeline: + - name: Basic require test + runs: | + ruby -e "require 'protocol/http2'; puts 'HTTP/2 protocol library loaded successfully!'" + - name: Test frame handling + runs: | + ruby <<-EOF + require 'protocol/http2' + require 'stringio' + + # Create a data frame with actual payload + payload = "Hello, HTTP/2" + frame = Protocol::HTTP2::DataFrame.new + frame.pack(payload) + + # Create buffer for writing + buffer = StringIO.new + frame.write(buffer) + + raise "Frame encoding failed" if buffer.string.empty? + raise "Invalid frame length" unless frame.length == payload.length + + puts "Frame handling test passed!" + EOF diff --git a/ruby3.4-pry.yaml b/ruby3.4-pry.yaml new file mode 100644 index 00000000000..d474173d9e8 --- /dev/null +++ b/ruby3.4-pry.yaml @@ -0,0 +1,63 @@ +# Generated from https://github.com/pry/pry +package: + name: ruby3.4-pry + version: 0.15.0 + epoch: 0 + description: A runtime developer console and IRB alternative with powerful introspection capabilities + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-coderay + - ruby${{vars.rubyMM}}-method_source + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 52d1489b8912c208366730004c65bb05cabf2e2a + repository: https://github.com/pry/pry + 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: pry + +update: + enabled: true + github: + identifier: pry/pry + strip-prefix: v + use-tag: true + +test: + pipeline: + # AUTOGENERATED + - runs: | + pry --version + pry --help + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-psych.yaml b/ruby3.4-psych.yaml new file mode 100644 index 00000000000..2523a230df2 --- /dev/null +++ b/ruby3.4-psych.yaml @@ -0,0 +1,60 @@ +# Generated from https://github.com/ruby/psych +package: + name: ruby3.4-psych + version: 5.2.1 + epoch: 0 + description: Psych is a YAML parser and emitter. + copyright: + - license: MIT + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + - ruby${{vars.rubyMM}}-stringio + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + - yaml-dev + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/ruby/psych.git + tag: v${{package.version}} + expected-commit: 7c81f7db53cf2dbed9cf7a441867af62453c0011 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: psych + +test: + pipeline: + - runs: ruby -e "require 'psych'" + +update: + enabled: true + github: + identifier: ruby/psych + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-puma.yaml b/ruby3.4-puma.yaml new file mode 100644 index 00000000000..3c2e25fb562 --- /dev/null +++ b/ruby3.4-puma.yaml @@ -0,0 +1,65 @@ +# Generated from https://github.com/puma/puma +package: + name: ruby3.4-puma + version: 6.5.0 + epoch: 0 + description: Puma is a simple, fast, threaded, and highly parallel HTTP 1.1 server for Ruby/Rack applications. Puma is intended for use in both development and production environments. It's great for highly parallel Ruby implementations such as Rubinius and JRuby as well as as providing process worker support to support CRuby well. + copyright: + - license: BSD-3-Clause + dependencies: + runtime: + - ruby${{vars.rubyMM}}-nio4r + - 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: 9e98151258b5ce80fa50e88d06827c0122011e7d + repository: https://github.com/puma/puma + 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: puma + +update: + enabled: true + github: + identifier: puma/puma + strip-prefix: v + use-tag: true + +test: + pipeline: + # AUTOGENERATED + - runs: | + puma --version + pumactl --version + puma --help + pumactl --help + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-rack-protection.yaml b/ruby3.4-rack-protection.yaml new file mode 100644 index 00000000000..ad8aff70321 --- /dev/null +++ b/ruby3.4-rack-protection.yaml @@ -0,0 +1,59 @@ +# Generated from https://github.com/sinatra/sinatra/tree/main/rack-protection +package: + name: ruby3.4-rack-protection + version: 4.1.1 + epoch: 0 + description: Protect against typical web attacks, works with all Rack apps, including Rails + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-rack-2.2 + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 7b50a1bbb5324838908dfaa00ec53ad322673a29 + repository: https://github.com/sinatra/sinatra + tag: v${{package.version}} + + - uses: ruby/unlock-spec + + - uses: ruby/build + with: + gem: ${{vars.gem}} + dir: rack-protection + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + dir: rack-protection + + - uses: ruby/clean + +vars: + gem: rack-protection + +update: + enabled: true + github: + identifier: sinatra/sinatra + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-redis-client.yaml b/ruby3.4-redis-client.yaml new file mode 100644 index 00000000000..313148199a6 --- /dev/null +++ b/ruby3.4-redis-client.yaml @@ -0,0 +1,55 @@ +# Generated from https://github.com/redis-rb/redis-client +package: + name: ruby3.4-redis-client + version: 0.22.2 + epoch: 0 + description: Simple low-level client for Redis 6+ + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-connection_pool + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 6d55f61cac62af91aebbd5a1d00eae7a8d940b9e + repository: https://github.com/redis-rb/redis-client + 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: redis-client + +update: + enabled: true + github: + identifier: redis-rb/redis-client + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-reline.yaml b/ruby3.4-reline.yaml new file mode 100644 index 00000000000..f87e20d79fa --- /dev/null +++ b/ruby3.4-reline.yaml @@ -0,0 +1,59 @@ +# Generated from https://github.com/ruby/reline +package: + name: ruby3.4-reline + version: 0.5.12 + epoch: 0 + description: Alternative GNU Readline or Editline implementation by pure Ruby. + copyright: + - license: Ruby + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + - ruby${{vars.rubyMM}}-io-console + +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/reline.git + tag: v${{package.version}} + expected-commit: d4f6741e7eb942b5bf71b9c318492a4a79625c74 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: reline + +test: + pipeline: + - runs: ruby -e "require 'reline'" + +update: + enabled: true + github: + identifier: ruby/reline + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-rspec-core.yaml b/ruby3.4-rspec-core.yaml new file mode 100644 index 00000000000..e2d8170220f --- /dev/null +++ b/ruby3.4-rspec-core.yaml @@ -0,0 +1,52 @@ +# Generated from https://github.com/rspec/rspec-core +package: + name: ruby3.4-rspec-core + version: 3.13.2 + epoch: 0 + description: BDD for Ruby. RSpec runner and example groups. + copyright: + - license: MIT + dependencies: + runtime: + - ruby3.4-rspec-support + +environment: + contents: + packages: + - bash + - build-base + - busybox + - ca-certificates-bundle + - coreutils + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + - ruby3.4-bundler + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/rspec/rspec-core.git + expected-commit: 8f019adecf42f469861ed5ac912d55f7200cce81 + tag: v${{package.version}} + + - runs: | + # Require for the build Too many deps to consider vendoring + bundle install + rake spec || true + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + opts: -n ${{targets.destdir}}/usr/bin + + - uses: ruby/clean + +vars: + gem: rspec-core + rubyMM: "3.4" diff --git a/ruby3.4-rspec-expectations.yaml b/ruby3.4-rspec-expectations.yaml new file mode 100644 index 00000000000..dfe41848401 --- /dev/null +++ b/ruby3.4-rspec-expectations.yaml @@ -0,0 +1,44 @@ +# Generated from https://github.com/rspec/rspec-expectations +package: + name: ruby3.4-rspec-expectations + version: 3.13.3 + epoch: 0 + description: rspec-expectations provides a simple, readable API to express expected outcomes of a code example. + copyright: + - license: MIT + dependencies: + runtime: + - ruby3.4-diff-lcs + - ruby3.4-rspec-support + +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/rspec/rspec-expectations.git + expected-commit: 555979f5bae76e83a52f166dd7060daf504c6177 + 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: rspec-expectations + rubyMM: "3.4" diff --git a/ruby3.4-rspec-mocks.yaml b/ruby3.4-rspec-mocks.yaml new file mode 100644 index 00000000000..e0a23dc7d22 --- /dev/null +++ b/ruby3.4-rspec-mocks.yaml @@ -0,0 +1,44 @@ +# Generated from https://github.com/rspec/rspec-mocks +package: + name: ruby3.4-rspec-mocks + version: 3.13.2 + epoch: 0 + description: RSpec's 'test double' framework, with support for stubbing and mocking + copyright: + - license: MIT + dependencies: + runtime: + - ruby3.4-diff-lcs + - ruby3.4-rspec-support + +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/rspec/rspec-mocks.git + tag: v${{package.version}} + expected-commit: 0d6a02313cd5b3cc6f58edcd8b1a8f019cb6a4a0 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: rspec-mocks + rubyMM: "3.4" diff --git a/ruby3.4-serverengine.yaml b/ruby3.4-serverengine.yaml new file mode 100644 index 00000000000..165b051bdc7 --- /dev/null +++ b/ruby3.4-serverengine.yaml @@ -0,0 +1,58 @@ +package: + name: ruby3.4-serverengine + version: 2.4.0 + epoch: 0 + description: A framework to implement robust multiprocess servers like Unicorn + copyright: + - license: Apache-2.0 + dependencies: + runtime: + - ruby${{vars.rubyMM}}-sigdump + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: serverengine + +pipeline: + # This package 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: + destination: ${{vars.gem}} + expected-commit: c93a592bb9642cdb8880fe9366bbee37e5b764cd + repository: https://github.com/fluent/serverengine.git + tag: v${{package.version}} + + - working-directory: ${{vars.gem}} + pipeline: + - 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: fluent/serverengine + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-snaky_hash.yaml b/ruby3.4-snaky_hash.yaml new file mode 100644 index 00000000000..5bcd36048d2 --- /dev/null +++ b/ruby3.4-snaky_hash.yaml @@ -0,0 +1,52 @@ +package: + name: ruby3.4-snaky_hash + version: 2.0.0 + epoch: 0 + description: 'A Hashie::Mash joint to make #snakelife better' + copyright: + - license: MIT + dependencies: + runtime: + - ruby${{vars.rubyMM}}-hashie + - ruby${{vars.rubyMM}}-version_gem + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby${{vars.rubyMM}}-bundler + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: 63628366fa881b8f5de66799e715f28664210a83 + tag: v${{package.version}} + repository: https://gitlab.com/oauth-xx/snaky_hash + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: snaky_hash + +update: + enabled: false + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-treetop.yaml b/ruby3.4-treetop.yaml new file mode 100644 index 00000000000..8f1e3d08dbb --- /dev/null +++ b/ruby3.4-treetop.yaml @@ -0,0 +1,62 @@ +# Generated from https://github.com/cjheath/treetop +package: + name: ruby3.4-treetop + version: 1.6.12 + 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: b6a60e16e80f288dd25d45e372e5249f190f4561 + 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