From 6aee55984ff5741c4a2ed6d8bdfc98a39b3ac546 Mon Sep 17 00:00:00 2001 From: Justin Vreeland Date: Wed, 11 Dec 2024 17:12:44 -0800 Subject: [PATCH] ruby 3.4: interpreter & gem batch 1 --- ruby-3.4.yaml | 164 ++++++++++++++++++ ruby3.4-aes_key_wrap.yaml | 83 +++++++++ ruby3.4-attr_required.yaml | 77 ++++++++ ruby3.4-aws-eventstream.yaml | 85 +++++++++ ruby3.4-aws-partitions.yaml | 94 ++++++++++ ruby3.4-benchmark.yaml | 75 ++++++++ ruby3.4-bindata.yaml | 90 ++++++++++ ruby3.4-bouncy-castle-java.yaml | 62 +++++++ .../bouncy-castle-java.gemspec | 27 +++ ruby3.4-bundler.yaml | 82 +++++++++ ruby3.4-charlock_holmes.yaml | 87 ++++++++++ ruby3.4-clamp.yaml | 80 +++++++++ ruby3.4-coderay.yaml | 97 +++++++++++ ruby3.4-connection_pool.yaml | 81 +++++++++ ruby3.4-cool.io.yaml | 92 ++++++++++ ruby3.4-date.yaml | 90 ++++++++++ ruby3.4-deep_merge.yaml | 69 ++++++++ ruby3.4-diff-lcs.yaml | 41 +++++ ruby3.4-domain_name.yaml | 96 ++++++++++ ruby3.4-excon.yaml | 64 +++++++ ruby3.4-fiber-annotation.yaml | 114 ++++++++++++ ruby3.4-fiber-storage.yaml | 135 ++++++++++++++ ruby3.4-filesize.yaml | 89 ++++++++++ ruby3.4-gems.yaml | 80 +++++++++ ruby3.4-hashie.yaml | 88 ++++++++++ ruby3.4-http-accept.yaml | 82 +++++++++ ruby3.4-http-form_data.yaml | 69 ++++++++ ruby3.4-http_parser.rb.yaml | 118 +++++++++++++ ruby3.4-io-console.yaml | 90 ++++++++++ ruby3.4-io-endpoint.yaml | 105 +++++++++++ ruby3.4-io-event.yaml | 84 +++++++++ ruby3.4-io-stream.yaml | 92 ++++++++++ ruby3.4-jar-dependencies.yaml | 80 +++++++++ ruby3.4-jmespath.yaml | 76 ++++++++ ruby3.4-jrjackson.yaml | 78 +++++++++ ruby3.4-json.yaml | 60 +++++++ ruby3.4-jwt.yaml | 51 ++++++ ruby3.4-logger.yaml | 145 ++++++++++++++++ ruby3.4-lru_redux.yaml | 50 ++++++ ruby3.4-method_source.yaml | 52 ++++++ ruby3.4-mime-types-data.yaml | 56 ++++++ ruby3.4-mini_mime.yaml | 51 ++++++ ruby3.4-minitar.yaml | 52 ++++++ ruby3.4-msgpack.yaml | 111 ++++++++++++ ruby3.4-multi_json.yaml | 51 ++++++ ruby3.4-multi_xml.yaml | 52 ++++++ ruby3.4-net-http.yaml | 58 +++++++ ruby3.4-netrc.yaml | 70 ++++++++ ruby3.4-nio4r.yaml | 51 ++++++ ruby3.4-numerizer.yaml | 52 ++++++ ruby3.4-oj.yaml | 54 ++++++ ruby3.4-openssl_pkcs8_pure.yaml | 52 ++++++ ruby3.4-pg.yaml | 69 ++++++++ ruby3.4-polyglot.yaml | 52 ++++++ ruby3.4-polyglot/polyglot.gemspec | 21 +++ ruby3.4-prometheus-client.yaml | 50 ++++++ ruby3.4-protocol-hpack.yaml | 61 +++++++ ruby3.4-protocol-http.yaml | 71 ++++++++ ruby3.4-public_suffix.yaml | 54 ++++++ ruby3.4-quantile.yaml | 50 ++++++ ruby3.4-rack-2.2.yaml | 61 +++++++ ruby3.4-rack.yaml | 50 ++++++ ruby3.4-rake-compiler.yaml | 36 ++++ ruby3.4-recursive-open-struct.yaml | 60 +++++++ ruby3.4-rexml.yaml | 54 ++++++ ruby3.4-rspec-support.yaml | 45 +++++ ruby3.4-ruby2_keywords.yaml | 55 ++++++ ruby3.4-ruby2_keywords/changelog.patch | 12 ++ ruby3.4-rubyzip.yaml | 54 ++++++ ruby3.4-securerandom.yaml | 66 +++++++ ruby3.4-sigdump.yaml | 57 ++++++ ruby3.4-stringio.yaml | 59 +++++++ ruby3.4-strptime.yaml | 57 ++++++ ruby3.4-stud.yaml | 52 ++++++ ruby3.4-thread_safe.yaml | 52 ++++++ ruby3.4-tilt.yaml | 61 +++++++ ruby3.4-timeout.yaml | 51 ++++++ ruby3.4-timers.yaml | 54 ++++++ ruby3.4-traces.yaml | 85 +++++++++ ruby3.4-uri.yaml | 50 ++++++ ruby3.4-version_gem.yaml | 56 ++++++ ruby3.4-webrick.yaml | 54 ++++++ ruby3.4-yajl-ruby.yaml | 66 +++++++ 83 files changed, 5759 insertions(+) create mode 100644 ruby-3.4.yaml create mode 100644 ruby3.4-aes_key_wrap.yaml create mode 100644 ruby3.4-attr_required.yaml create mode 100644 ruby3.4-aws-eventstream.yaml create mode 100644 ruby3.4-aws-partitions.yaml create mode 100644 ruby3.4-benchmark.yaml create mode 100644 ruby3.4-bindata.yaml create mode 100644 ruby3.4-bouncy-castle-java.yaml create mode 100644 ruby3.4-bouncy-castle-java/bouncy-castle-java.gemspec create mode 100644 ruby3.4-bundler.yaml create mode 100644 ruby3.4-charlock_holmes.yaml create mode 100644 ruby3.4-clamp.yaml create mode 100644 ruby3.4-coderay.yaml create mode 100644 ruby3.4-connection_pool.yaml create mode 100644 ruby3.4-cool.io.yaml create mode 100644 ruby3.4-date.yaml create mode 100644 ruby3.4-deep_merge.yaml create mode 100644 ruby3.4-diff-lcs.yaml create mode 100644 ruby3.4-domain_name.yaml create mode 100644 ruby3.4-excon.yaml create mode 100644 ruby3.4-fiber-annotation.yaml create mode 100644 ruby3.4-fiber-storage.yaml create mode 100644 ruby3.4-filesize.yaml create mode 100644 ruby3.4-gems.yaml create mode 100644 ruby3.4-hashie.yaml create mode 100644 ruby3.4-http-accept.yaml create mode 100644 ruby3.4-http-form_data.yaml create mode 100644 ruby3.4-http_parser.rb.yaml create mode 100644 ruby3.4-io-console.yaml create mode 100644 ruby3.4-io-endpoint.yaml create mode 100644 ruby3.4-io-event.yaml create mode 100644 ruby3.4-io-stream.yaml create mode 100644 ruby3.4-jar-dependencies.yaml create mode 100644 ruby3.4-jmespath.yaml create mode 100644 ruby3.4-jrjackson.yaml create mode 100644 ruby3.4-json.yaml create mode 100644 ruby3.4-jwt.yaml create mode 100644 ruby3.4-logger.yaml create mode 100644 ruby3.4-lru_redux.yaml create mode 100644 ruby3.4-method_source.yaml create mode 100644 ruby3.4-mime-types-data.yaml create mode 100644 ruby3.4-mini_mime.yaml create mode 100644 ruby3.4-minitar.yaml create mode 100644 ruby3.4-msgpack.yaml create mode 100644 ruby3.4-multi_json.yaml create mode 100644 ruby3.4-multi_xml.yaml create mode 100644 ruby3.4-net-http.yaml create mode 100644 ruby3.4-netrc.yaml create mode 100644 ruby3.4-nio4r.yaml create mode 100644 ruby3.4-numerizer.yaml create mode 100644 ruby3.4-oj.yaml create mode 100644 ruby3.4-openssl_pkcs8_pure.yaml create mode 100644 ruby3.4-pg.yaml create mode 100644 ruby3.4-polyglot.yaml create mode 100644 ruby3.4-polyglot/polyglot.gemspec create mode 100644 ruby3.4-prometheus-client.yaml create mode 100644 ruby3.4-protocol-hpack.yaml create mode 100644 ruby3.4-protocol-http.yaml create mode 100644 ruby3.4-public_suffix.yaml create mode 100644 ruby3.4-quantile.yaml create mode 100644 ruby3.4-rack-2.2.yaml create mode 100644 ruby3.4-rack.yaml create mode 100644 ruby3.4-rake-compiler.yaml create mode 100644 ruby3.4-recursive-open-struct.yaml create mode 100644 ruby3.4-rexml.yaml create mode 100644 ruby3.4-rspec-support.yaml create mode 100644 ruby3.4-ruby2_keywords.yaml create mode 100644 ruby3.4-ruby2_keywords/changelog.patch create mode 100644 ruby3.4-rubyzip.yaml create mode 100644 ruby3.4-securerandom.yaml create mode 100644 ruby3.4-sigdump.yaml create mode 100644 ruby3.4-stringio.yaml create mode 100644 ruby3.4-strptime.yaml create mode 100644 ruby3.4-stud.yaml create mode 100644 ruby3.4-thread_safe.yaml create mode 100644 ruby3.4-tilt.yaml create mode 100644 ruby3.4-timeout.yaml create mode 100644 ruby3.4-timers.yaml create mode 100644 ruby3.4-traces.yaml create mode 100644 ruby3.4-uri.yaml create mode 100644 ruby3.4-version_gem.yaml create mode 100644 ruby3.4-webrick.yaml create mode 100644 ruby3.4-yajl-ruby.yaml diff --git a/ruby-3.4.yaml b/ruby-3.4.yaml new file mode 100644 index 00000000000..184830590f2 --- /dev/null +++ b/ruby-3.4.yaml @@ -0,0 +1,164 @@ +package: + name: ruby-3.4 + version: 3.4.0 + epoch: 0 + description: "the Ruby programming language" + copyright: + - license: Ruby + - license: BSD-2-Clause + dependencies: + provides: + - ruby=${{package.full-version}} + # These are bundled gems + - ruby3.4-csv + - ruby3.4-base64 + - ruby3.4-drb + runtime: + - glibc + - gmp + - libgcc + - openssl + - yaml + - zlib + +environment: + contents: + packages: + - autoconf + - build-base + - busybox + - coreutils + - gdbm-dev + - glibc-dev + - gmp-dev + - graphviz + - libffi-dev + - libxcrypt-dev + - linux-headers + - openssf-compiler-options + - openssl-dev + - pkgconf + - readline-dev + - ruby-3.3 + - rust + - tk-dev + - yaml-dev + - zlib-dev + +vars: + prefix: /usr + +var-transforms: + - from: ${{package.version}} + match: \. + replace: _ + to: underscore-package-version + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/ruby/ruby + tag: v${{vars.underscore-package-version}}_preview2 + expected-commit: 32c733f57bb91e22972319ee63eac9521d954ebc + + - name: Generate and Configure + runs: | + ./autogen.sh + ./configure \ + --host=${{host.triplet.gnu}} \ + --build=${{host.triplet.gnu}} \ + --target=${{host.triplet.gnu}} \ + --prefix=${{vars.prefix}} \ + --enable-shared \ + --disable-rpath \ + --sysconfdir=/etc \ + --enable-mkmf-verbose \ + --enable-yjit + + - uses: autoconf/make + + # Update and Extract bundled gems + - uses: autoconf/make + with: + opts: update-gems extract-gems + + # Build documentation + - uses: autoconf/make + with: + opts: rdoc capi + + - uses: autoconf/make-install + + - runs: | + # Ignore the patch version of ruby since ruby will install under the + # version of the latest standard library. Should produce the string 3.4.* + RUBYWILD="$(echo ${{package.version}} | cut -d. -f-2).*" + + RUBYDIR=${{targets.destdir}}${{vars.prefix}}/lib/ruby/$RUBYWILD + rm -rf ${RUBYDIR}/bundler + rm -f ${RUBYDIR}/bundler.rb + + GEMDIR=${{targets.destdir}}${{vars.prefix}}/lib/ruby/gems/$RUBYWILD + rm -rf ${GEMDIR}/gems/bundler-* + rm -f ${GEMDIR}/specifications/default/bundler-*.gemspec + + rm -f ${{targets.destdir}}/usr/bin/bundle \ + ${{targets.destdir}}/usr/bin/bundler + + - runs: | + find ${{targets.destdir}} -name 'mkmf.log' -exec rm {} \; + +subpackages: + - name: "ruby-3.4-doc" + description: "ruby documentation" + pipeline: + - uses: split/manpages + - runs: | + mkdir -p "${{targets.subpkgdir}}"/usr/share + mv "${{targets.destdir}}"/usr/share/doc "${{targets.subpkgdir}}"/usr/share/ + mv "${{targets.destdir}}"/usr/share/ri "${{targets.subpkgdir}}"/usr/share/ + + - name: "ruby-3.4-dev" + description: "ruby development headers" + pipeline: + - uses: split/dev + test: + pipeline: + - uses: test/pkgconf + +update: + enabled: true + version-transform: + - match: "_" + replace: . + github: + identifier: ruby/ruby + strip-prefix: v + use-tag: true + tag-filter-prefix: v3_4_ + +test: + pipeline: + - runs: | + ruby --version | grep ${{package.version}} + + cat <> /tmp/hello.rb + puts("Hello Wolfi!") + EOF + + ruby /tmp/hello.rb + erb --version + gem --version + gem --help + irb --version + irb --help + racc --version + rake --version + rake --help + rdbg --version + rdbg --help + rdoc --version + rdoc --help + ri --version + ri --help + ruby --help diff --git a/ruby3.4-aes_key_wrap.yaml b/ruby3.4-aes_key_wrap.yaml new file mode 100644 index 00000000000..f9b8963b4ea --- /dev/null +++ b/ruby3.4-aes_key_wrap.yaml @@ -0,0 +1,83 @@ +package: + name: ruby3.4-aes_key_wrap + version: 1.1.0 + epoch: 0 + description: A Ruby implementation of AES Key Wrap, a.k.a RFC 3394, a.k.a NIST Key Wrap. + 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: 7749c8d6dbc80a1544aea5d0da09b0380cbd9e57 + repository: https://github.com/tomdalling/aes_key_wrap + tag: v${{package.version}} + + - uses: ruby/unlock-spec + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby <<-EOF + require 'aes_key_wrap' + require 'test/unit' + include Test::Unit::Assertions + + # Define KEK, plaintext key, and IV as per documentation + plaintext_key = ['00112233445566778899AABBCCDDEEFF'].pack('H*') # 16-byte binary string + kek = ['000102030405060708090A0B0C0D0E0F'].pack('H*') # 16-byte binary string + iv = ['DEADBEEFC0FFEEEE'].pack("H*") # 8-byte binary string + + # Test wrapping with IV + wrapped_key = AESKeyWrap.wrap(plaintext_key, kek, iv) + assert wrapped_key && wrapped_key.bytesize > 0, "Wrapped key should not be empty" + puts "Wrap test passed" + + # Test unwrapping with IV + unwrapped_key = AESKeyWrap.unwrap(wrapped_key, kek, iv) + assert_equal plaintext_key, unwrapped_key, "Unwrapped key should match the original plaintext key" + puts "Unwrap test passed" + + puts "Basic wrap/unwrap test with explicit IV passed" + EOF + +vars: + gem: aes_key_wrap + +update: + enabled: true + github: + identifier: tomdalling/aes_key_wrap + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-attr_required.yaml b/ruby3.4-attr_required.yaml new file mode 100644 index 00000000000..fbe9e596ace --- /dev/null +++ b/ruby3.4-attr_required.yaml @@ -0,0 +1,77 @@ +package: + name: ruby3.4-attr_required + version: 1.0.2 + epoch: 0 + description: attr_required and attr_optional + 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/nov/attr_required + tag: v${{package.version}} + expected-commit: a48a5f1f83bffff24a58b96c30b8a5cf15c56d8f + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: attr_required + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby <<-EOF + require 'attr_required' + require 'test/unit' + + class SimpleAttrTest < Test::Unit::TestCase + class TestClass + include AttrRequired + attr_required :name + end + + def test_required_attribute + obj = TestClass.new + obj.name = "Alice" + assert_equal "Alice", obj.name + puts "attr_required test passed." + end + end + EOF + +update: + enabled: true + github: + identifier: nov/attr_required + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-aws-eventstream.yaml b/ruby3.4-aws-eventstream.yaml new file mode 100644 index 00000000000..61dea4d7934 --- /dev/null +++ b/ruby3.4-aws-eventstream.yaml @@ -0,0 +1,85 @@ +#nolint:valid-pipeline-git-checkout-tag +package: + name: ruby3.4-aws-eventstream + version: 1.3.0 + epoch: 0 + description: Amazon Web Services event stream library. Decodes and encodes binary stream under `vnd.amazon.event-stream` content-type + 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: 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-eventstream + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby <<-EOF + require 'aws-eventstream' + require 'test/unit' + require 'stringio' + include Test::Unit::Assertions + + # Create and test a simple message + message = Aws::EventStream::Message.new( + headers: {'event-type' => Aws::EventStream::HeaderValue.new(value: 'test', type: 'string')}, + payload: StringIO.new("test_data") + ) + + encoded = Aws::EventStream::Encoder.new.encode(message) + + messages = [] + decoder = Aws::EventStream::Decoder.new + decoder.decode(StringIO.new(encoded)) do |decoded_msg| + messages << decoded_msg + end + + assert_equal "test_data", messages.first.payload.read + 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-aws-partitions.yaml b/ruby3.4-aws-partitions.yaml new file mode 100644 index 00000000000..cd4f3dd2777 --- /dev/null +++ b/ruby3.4-aws-partitions.yaml @@ -0,0 +1,94 @@ +#nolint:valid-pipeline-git-checkout-tag +package: + name: ruby3.4-aws-partitions + version: 1.996.0 + epoch: 0 + description: Provides interfaces to enumerate AWS partitions, regions, and services. + 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: 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-partitions + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby <<-EOF + require 'aws-partitions' + require 'test/unit' + include Test::Unit::Assertions + + # Test partition listing and default aws partition + partitions = Aws::Partitions.partitions + assert partitions.any? + assert_equal 'aws', partitions.first.name + puts "Partition listing test passed" + + # Test region enumeration for aws partition + aws_partition = Aws::Partitions.partitions.find { |p| p.name == 'aws' } + regions = aws_partition.regions + assert regions.any? + assert regions.any? { |r| r.name == 'us-east-1' } + puts "Region enumeration test passed" + + # Test service IDs + service_ids = Aws::Partitions.service_ids + assert service_ids.include?('S3') || service_ids.include?('s3') + assert service_ids.include?('EC2') || service_ids.include?('ec2') + puts "Service ID test passed" + + # Test partition regions + aws_regions = aws_partition.regions.map(&:name) + assert aws_regions.include?('us-east-1'), "AWS partition should include us-east-1" + assert aws_regions.include?('us-west-2'), "AWS partition should include us-west-2" + puts "Partition regions 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-benchmark.yaml b/ruby3.4-benchmark.yaml new file mode 100644 index 00000000000..0fec8d60ddb --- /dev/null +++ b/ruby3.4-benchmark.yaml @@ -0,0 +1,75 @@ +package: + name: ruby3.4-benchmark + version: 0.4.0 + epoch: 0 + description: "A performance benchmarking library for Ruby" + 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/benchmark + tag: v${{package.version}} + expected-commit: a5d77ceae06d69a8b1b06d45760c9590a466707d + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: benchmark + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby <<-EOF + require 'benchmark' + require 'test/unit' + include Test::Unit::Assertions + + class TestBenchmark < Test::Unit::TestCase + def test_measure + result = Benchmark.measure { (1..1000).each { |i| i * 2 } } + + # Verify that the result is a Benchmark::Tms object + assert_instance_of Benchmark::Tms, result, "Result should be a Benchmark::Tms object" + + # Print a success message + puts "Benchmark measure test passed!" + end + end + EOF + +update: + enabled: true + github: + identifier: ruby/benchmark + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-bindata.yaml b/ruby3.4-bindata.yaml new file mode 100644 index 00000000000..ad5ba55d848 --- /dev/null +++ b/ruby3.4-bindata.yaml @@ -0,0 +1,90 @@ +package: + name: ruby3.4-bindata + version: 2.5.0 + epoch: 0 + description: BinData is a declarative way to read and write binary file formats. + copyright: + - 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: + repository: https://github.com/dmendel/bindata + tag: v${{package.version}} + expected-commit: 8244a1c7e7b24617adcd7264e02370663bd03621 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: bindata + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby <<-EOF + require 'bindata' + require 'test/unit' + include Test::Unit::Assertions + + class TestBinData < Test::Unit::TestCase + def test_uint16_read + # Create a binary string + data = "\x01\x02".b + + # Read the binary data as an unsigned 16-bit integer + uint16 = BinData::Uint16be.read(data) + + # Verify the value + assert_equal 258, uint16, "Expected the value to be 258 for binary \\x01\\x02" + puts "BinData Uint16 read test passed!" + end + + def test_uint16_write + # Create a BinData Uint16 object + uint16 = BinData::Uint16be.new(258) + + # Write it to a binary string + binary = uint16.to_binary_s + + # Verify the binary output + assert_equal "\x01\x02".b, binary, "Expected binary output to match \\x01\\x02" + puts "BinData Uint16 write test passed!" + end + end + EOF + +update: + enabled: true + github: + identifier: dmendel/bindata + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-bouncy-castle-java.yaml b/ruby3.4-bouncy-castle-java.yaml new file mode 100644 index 00000000000..0f7d4eebfde --- /dev/null +++ b/ruby3.4-bouncy-castle-java.yaml @@ -0,0 +1,62 @@ +# Generated from http://github.com/jruby/jruby/tree/master/gems/bouncy-castle-java/ +package: + name: ruby3.4-bouncy-castle-java + version: 1.5.0146.1 + epoch: 1 + description: Gem redistribution of "Legion of the Bouncy Castle Java cryptography APIs" jars at http://www.bouncycastle.org/java.html + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - curl + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + environment: + # https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on + BCPROV_VERSION: 1.78 + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/nahi/bouncy-castle-java + tag: ${{package.version}} + expected-commit: 401f0077cac504c62c449b860366f23393345c35 + + - runs: | + # Bouncycastle does not actively maintain on GitHub so we need + # to download the newer versions of dependencies from Maven + cd lib + rm bcprov-jdk15-146.jar + curl -sLO https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk18on/${BCPROV_VERSION}/bcprov-jdk18on-${BCPROV_VERSION}.jar + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: bouncy-castle-java + +update: + enabled: true + github: + identifier: nahi/bouncy-castle-java + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-bouncy-castle-java/bouncy-castle-java.gemspec b/ruby3.4-bouncy-castle-java/bouncy-castle-java.gemspec new file mode 100644 index 00000000000..e2f988d3ddc --- /dev/null +++ b/ruby3.4-bouncy-castle-java/bouncy-castle-java.gemspec @@ -0,0 +1,27 @@ +# bouncy-castle-java.gemspec +Gem::Specification.new do |s| + s.name = 'bouncy-castle-java' + s.version = '1.5.0146.1' + s.author = 'Hiroshi Nakamura' + s.email = 'nahi@ruby-lang.org' + s.homepage = 'http://github.com/nahi/bouncy-castle-java/' + s.summary = 'Gem redistribution of Bouncy Castle jars' + s.description = 'Gem redistribution of "Legion of the Bouncy Castle Java cryptography APIs" jars at http://www.bouncycastle.org/java.html' + s.files = ['README', 'LICENSE.html'] + Dir.glob('lib/**/*') + s.platform = Gem::Platform::RUBY + s.require_path = 'lib' + + s.add_runtime_dependency 'rubygems', '~> 3.0' + # Add any other runtime dependencies here + + s.requirements << 'RubyGems version >= 3.0' + + s.add_development_dependency 'rake', '~> 13.0' + + s.metadata = { + 'source_code_uri' => 'http://github.com/nahi/bouncy-castle-java/', + 'bug_tracker_uri' => 'http://github.com/nahi/bouncy-castle-java/issues' + } + + s.license = 'MIT' # Adjust the license as needed +end diff --git a/ruby3.4-bundler.yaml b/ruby3.4-bundler.yaml new file mode 100644 index 00000000000..0dabb48f1fb --- /dev/null +++ b/ruby3.4-bundler.yaml @@ -0,0 +1,82 @@ +package: + name: ruby3.4-bundler + version: 2.5.23 + epoch: 0 + description: "Manage an application's gem dependencies" + copyright: + - license: MIT + dependencies: + runtime: + - ruby-3.4 + +environment: + contents: + packages: + - bash + - build-base + - busybox + - ca-certificates-bundle + - ruby-3.4 + - ruby-3.4-dev + +vars: + gem: bundler + +pipeline: + - uses: git-checkout + with: + expected-commit: 35f4611265e8f5c6c4eeed9d152be12b3bf29fe1 + repository: https://github.com/rubygems/rubygems + tag: bundler-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 + - name: build-docs-clean + runs: | + export INSTALL_DIR=${{targets.destdir}}/$(ruby -e 'puts Gem.default_dir') + for n in 1 5; do + mkdir -p "${{targets.destdir}}"/usr/share/man/man$n + mv "$INSTALL_DIR"/gems/bundler-${{package.version}}/lib/bundler/man/*.$n "${{targets.destdir}}"/usr/share/man/man$n/ + done + + rm -rf "$INSTALL_DIR"/cache \ + "$INSTALL_DIR"/build_info \ + "$INSTALL_DIR"/doc \ + "$INSTALL_DIR"/gems/bundler-${{package.version}}/man \ + "$INSTALL_DIR"/gems/bundler-${{package.version}}/*.md + +subpackages: + - name: "ruby3.4-bundler-doc" + description: "ruby-bundler documentation" + pipeline: + - uses: split/manpages + +update: + enabled: true + github: + identifier: rubygems/rubygems + strip-prefix: bundler-v + tag-filter: bundler-v + +test: + pipeline: + # AUTOGENERATED + - runs: | + bundle --version + bundler --version + bundle --help + bundler --help + - runs: | + echo "source 'https://rubygems.org'" > Gemfile + echo "gem 'rake'" >> Gemfile + bundle install --path vendor/bundle + bundle list + echo "Bundler test passed!" diff --git a/ruby3.4-charlock_holmes.yaml b/ruby3.4-charlock_holmes.yaml new file mode 100644 index 00000000000..b8c60ae8abb --- /dev/null +++ b/ruby3.4-charlock_holmes.yaml @@ -0,0 +1,87 @@ +# Generated from https://github.com/brianmario/charlock_holmes +package: + name: ruby3.4-charlock_holmes + version: 0.7.9 + epoch: 0 + description: charlock_holmes provides binary and text detection as well as text transcoding using libicu + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - icu-dev + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + - zlib-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: c8d07d3e96a786b39056caf309e3cb24f8f59770 + repository: https://github.com/brianmario/charlock_holmes + tag: v${{package.version}} + + - runs: | + # Unset std, as new ICU requires default stdc++ of 17 or higher + sed -i '/std=c++11/d' ext/charlock_holmes/extconf.rb + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: charlock_holmes + +test: + pipeline: + - runs: | + ruby -e "require 'charlock_holmes'; puts 'Charlock Holmes library loaded successfully!'" + - runs: | + ruby <<-EOF + # encoding: utf-8 + require 'charlock_holmes' + + # Test basic detection capabilities + detector = CharlockHolmes::EncodingDetector.new + + # Test single detection + result = detector.detect("Hello, World!") + raise "Detection failed" unless result.is_a?(Hash) && + result[:type] == :text && + result[:encoding] && + result[:confidence] + puts "Single detection test passed" + + # Test multiple detection + results = detector.detect_all("testing") + raise "Multiple detection failed" unless results.is_a?(Array) && + results.all? { |r| r[:encoding] && r[:confidence] } + puts "Multiple detection test passed" + + puts "All tests passed!" + EOF + +update: + enabled: true + github: + identifier: brianmario/charlock_holmes + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-clamp.yaml b/ruby3.4-clamp.yaml new file mode 100644 index 00000000000..1e30b9f465b --- /dev/null +++ b/ruby3.4-clamp.yaml @@ -0,0 +1,80 @@ +# Generated from https://github.com/mdub/clamp +package: + name: ruby3.4-clamp + version: 1.3.2 + epoch: 0 + description: Clamp provides an object-model for command-line utilities. + 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/mdub/clamp + tag: v${{package.version}} + expected-commit: 9aeed0671163ed949e57f0c28196a8b775a4883c + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: clamp + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby -e "require 'clamp'; puts 'Clamp library loaded successfully!'" + - runs: | + ruby <<-EOF + require 'clamp' + + # Define a simple command for testing + class HelloCommand < Clamp::Command + parameter "NAME", "The name of the person to greet" + def execute + puts "Hello, \#{name}!" + end + end + + # Run the command with the required parameter + begin + HelloCommand.run(["Alice"]) + rescue SystemExit + end + puts "Clamp functionality verified!" + EOF + +update: + enabled: true + github: + identifier: mdub/clamp + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-coderay.yaml b/ruby3.4-coderay.yaml new file mode 100644 index 00000000000..e7f41e0d5de --- /dev/null +++ b/ruby3.4-coderay.yaml @@ -0,0 +1,97 @@ +# Generated from http://github.com/rubychan/coderay +package: + name: ruby3.4-coderay + version: 1.1.3 + epoch: 0 + description: Fast and easy syntax highlighting for selected languages, written in Ruby. Comes with RedCloth integration and LOC counter. + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + environment: + RELEASE: true + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/rubychan/coderay + tag: v${{package.version}} + expected-commit: d30855fe96e33fed39bd5aa7ba6879ba62306860 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: coderay + +update: + enabled: true + github: + identifier: rubychan/coderay + strip-prefix: v + use-tag: true + +test: + pipeline: + # AUTOGENERATED + - runs: | + coderay --version + coderay --help + - runs: | + ruby <<-EOF + require 'coderay' + + # Highlight a simple Ruby code snippet + begin + ruby_code = "def hello; puts 'Hello, world!'; end" + highlighted = CodeRay.scan(ruby_code, :ruby).terminal + if highlighted.include?('def') && highlighted.include?('hello') + puts "Ruby code highlighting succeeded." + else + raise "Ruby code highlighting failed!" + end + rescue => e + puts e.message + raise e + end + EOF + - runs: | + ruby <<-EOF + require 'coderay' + + # Highlight a simple HTML snippet + begin + html_code = "Hello, world!" + highlighted_html = CodeRay.scan(html_code, :html).terminal + if highlighted_html.include?('') && highlighted_html.include?('body') + puts "HTML highlighting succeeded." + else + raise "HTML code highlighting failed!" + end + rescue => e + puts e.message + raise e + end + EOF + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-connection_pool.yaml b/ruby3.4-connection_pool.yaml new file mode 100644 index 00000000000..a8677de79d3 --- /dev/null +++ b/ruby3.4-connection_pool.yaml @@ -0,0 +1,81 @@ +package: + name: ruby3.4-connection_pool + version: 2.4.1 + epoch: 0 + description: Generic connection pool for Ruby + 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: 4cc8a8de14a82a236a29b59146477072a04203c7 + repository: https://github.com/mperham/connection_pool + 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: connection_pool + +test: + pipeline: + # Validate that the gem is installed correctly + - runs: | + ruby -e "require 'connection_pool'; puts 'ConnectionPool loaded successfully!'" + # Test basic functionality of ConnectionPool + - runs: | + ruby <<-EOF + require 'connection_pool' + + # Create a pool of simple objects + pool = ConnectionPool.new(size: 5, timeout: 5) { "ConnectionObject" } + + # Fetch a connection and validate + connection = pool.with { |conn| conn } + raise "Unexpected connection value: \#{connection}" unless connection == "ConnectionObject" + + # Ensure the pool returns objects within expected behavior + results = [] + 5.times do + pool.with { |conn| results << conn } + end + + if results.uniq.size != 1 || results.first != "ConnectionObject" + raise "Pool did not manage connections correctly!" + end + + puts "ConnectionPool functionality verified!" + EOF + +update: + enabled: true + github: + identifier: mperham/connection_pool + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-cool.io.yaml b/ruby3.4-cool.io.yaml new file mode 100644 index 00000000000..2a5ad3a6b62 --- /dev/null +++ b/ruby3.4-cool.io.yaml @@ -0,0 +1,92 @@ +package: + name: ruby3.4-cool.io + version: 1.9.0 + epoch: 0 + description: Cool.io provides a high performance event framework for Ruby which uses the libev C 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: cool.io + +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: 6f85a2a104488e5c7cb128b9a83058d28ba16d37 + repository: https://github.com/tarcieri/cool.io.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 + +test: + pipeline: + - runs: | + ruby -e "require 'cool.io'; puts 'Cool.io library loaded successfully!'" + # Test event loop creation and basic functionality + - runs: | + ruby <<-EOF + require 'cool.io' + + # Create an event loop + loop = Cool.io::Loop.new + raise "Event loop creation failed!" unless loop + + # Verify event loop works without exceptions + puts "Cool.io event loop created successfully!" + EOF + # Test adding a timer to the event loop + - runs: | + ruby <<-EOF + require 'cool.io' + + # Create an event loop + loop = Cool.io::Loop.new + + # Add a timer to the loop + timer = Cool.io::TimerWatcher.new(1, 0) { puts "Timer fired!" } + loop.attach(timer) + + # Run the loop for 1 second + loop.run_once + + # Verify timer functionality + puts "Cool.io timer executed successfully!" + EOF + +update: + enabled: true + github: + identifier: tarcieri/cool.io + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-date.yaml b/ruby3.4-date.yaml new file mode 100644 index 00000000000..97dc52f35a5 --- /dev/null +++ b/ruby3.4-date.yaml @@ -0,0 +1,90 @@ +package: + name: ruby3.4-date + version: 3.4.1 + epoch: 0 + description: A subclass of Object includes Comparable module for handling dates. + 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: a3295ad262773a80ad61526beb500b29e770b817 + repository: https://github.com/ruby/date + 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: date + +test: + pipeline: + - runs: ruby -e "require 'date'; puts 'Date library loaded successfully!'" + # Test Date functionality + - runs: | + ruby <<-EOF + require 'date' + + # Create a specific date + date = Date.new(2024, 11, 21) + raise "Date creation failed!" unless date.year == 2024 && date.month == 11 && date.day == 21 + + # Parse a date string + parsed_date = Date.parse("2024-11-21") + raise "Date parsing failed!" unless parsed_date == date + + # Calculate date difference + today = Date.today + future = today + 10 + raise "Date calculation failed!" unless (future - today) == 10 + + puts "Date library functionality verified successfully!" + EOF + # Test DateTime functionality + - runs: | + ruby <<-EOF + require 'date' + + # Create a specific datetime + datetime = DateTime.new(2024, 11, 21, 14, 30, 0) + raise "DateTime creation failed!" unless datetime.hour == 14 && datetime.minute == 30 + + # Parse a datetime string + parsed_datetime = DateTime.parse("2024-11-21T14:30:00") + raise "DateTime parsing failed!" unless parsed_datetime == datetime + + puts "DateTime library functionality verified successfully!" + EOF + +update: + enabled: true + github: + identifier: ruby/date + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-deep_merge.yaml b/ruby3.4-deep_merge.yaml new file mode 100644 index 00000000000..c6a50fde253 --- /dev/null +++ b/ruby3.4-deep_merge.yaml @@ -0,0 +1,69 @@ +# Generated from https://github.com/danielsdeleo/deep_merge +package: + name: ruby3.4-deep_merge + version: 1.2.2 + epoch: 0 + description: Recursively merge hashes. + 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/danielsdeleo/deep_merge + tag: ${{package.version}} + expected-commit: aab0f7fed5c1e22226efec5d4adaa3e95d198b83 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: deep_merge + +test: + pipeline: + - runs: ruby -e "require 'deep_merge'; puts 'DeepMerge library loaded successfully!'" + - runs: | + ruby <<-EOF + require 'deep_merge' + + # Test merging two hashes + hash1 = { a: 1, b: { c: 2 } } + hash2 = { b: { d: 3 }, e: 4 } + result = hash1.deep_merge(hash2) + + # Validate the result + raise "Merge failed!" unless result[:a] == 1 && result[:b][:c] == 2 && result[:b][:d] == 3 && result[:e] == 4 + + puts "DeepMerge functionality verified successfully!" + EOF + +update: + enabled: true + github: + identifier: danielsdeleo/deep_merge + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-diff-lcs.yaml b/ruby3.4-diff-lcs.yaml new file mode 100644 index 00000000000..8a5dceeca31 --- /dev/null +++ b/ruby3.4-diff-lcs.yaml @@ -0,0 +1,41 @@ +# Generated from https://github.com/halostatue/diff-lcs +package: + name: ruby3.4-diff-lcs + version: 1.5.1 + epoch: 0 + description: Diff::LCS computes the difference between two Enumerable sequences using the + copyright: + - license: MIT + - license: Artistic-2.0 + - license: GPL-2.0-or-later + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: fetch + with: + expected-sha256: 50c1e43e1cae4bf65c139d628688cd80a29fe6c33bda4a66a98e98d3c8c601c2 + uri: https://github.com/halostatue/diff-lcs/archive/refs/tags/v${{package.version}}.tar.gz + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: diff-lcs + rubyMM: "3.4" diff --git a/ruby3.4-domain_name.yaml b/ruby3.4-domain_name.yaml new file mode 100644 index 00000000000..755d8ee0545 --- /dev/null +++ b/ruby3.4-domain_name.yaml @@ -0,0 +1,96 @@ +# Generated from https://github.com/knu/ruby-domain_name +package: + name: ruby3.4-domain_name + version: 0.6.20240107 + epoch: 0 + description: This is a Domain Name manipulation library for Ruby. + copyright: + - license: BSD-2-Clause + - license: BSD-3-Clause + - license: MPL-2.0 + 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: + repository: https://github.com/knu/ruby-domain_name.git + tag: v${{package.version}} + expected-commit: e955d9533e792b3293c560277c15515bfeeb65c9 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: domain_name + +test: + pipeline: + - runs: ruby -e "require 'domain_name'; puts 'DomainName library loaded successfully!'" + - runs: | + ruby <<-EOF + require 'domain_name' + + # Test creating and validating a domain name + domain = DomainName.new("example.com") + puts "Parsed domain: \#{domain}" + raise "Domain parsing failed!" unless domain.to_s == "example.com" + + # Test domain with subdomains + subdomain = DomainName.new("sub.example.com") + puts "Parsed subdomain: \#{subdomain}" + raise "Subdomain parsing failed!" unless subdomain.to_s == "sub.example.com" + + # Test invalid domain handling (if validation exists) + invalid_domain = DomainName.new("invalid_domain") + if invalid_domain.to_s == "invalid_domain" + puts "Warning: Domain validation may not be enforced!" + else + raise "Unexpected behavior for invalid domain!" + end + + # Test equality of domain names + domain1 = DomainName.new("example.com") + domain2 = DomainName.new("example.com") + puts "Domain equality verified for \#{domain1} and \#{domain2}" + raise "Domain equality test failed!" unless domain1 == domain2 + + # Test canonicalization + canonical_domain = DomainName.new("EXAMPLE.com").to_s + puts "Canonicalized domain: \#{canonical_domain}" + raise "Canonicalization failed!" unless canonical_domain == "example.com" + + puts "DomainName functionality fully verified!" + EOF + +update: + enabled: true + github: + identifier: knu/ruby-domain_name + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-excon.yaml b/ruby3.4-excon.yaml new file mode 100644 index 00000000000..eba1cb375e7 --- /dev/null +++ b/ruby3.4-excon.yaml @@ -0,0 +1,64 @@ +# Generated from https://github.com/excon/excon +package: + name: ruby3.4-excon + version: 1.2.2 + epoch: 0 + description: EXtended http(s) CONnections + 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/excon/excon + expected-commit: 0403dc0ffc589884b3ecd6aeed3cf7589fa68086 + 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: excon + +test: + pipeline: + - runs: ruby -e "require 'excon'" + - name: HTTP GET + runs: | + cat < /tmp/test.rb + require 'excon' + response = Excon.get("https://edu.chainguard.dev/open-source/wolfi/overview/") + print response.status + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: excon/excon + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-fiber-annotation.yaml b/ruby3.4-fiber-annotation.yaml new file mode 100644 index 00000000000..b45893bdf75 --- /dev/null +++ b/ruby3.4-fiber-annotation.yaml @@ -0,0 +1,114 @@ +package: + name: ruby3.4-fiber-annotation + version: 0.2.0 + epoch: 0 + description: A mechanism for annotating fibers. + 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/ioquatix/fiber-annotation.git + tag: v${{package.version}} + expected-commit: 6e6ffb3d37dad74577e08e9800790f236b3302b2 + + - 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: fiber-annotation + +test: + pipeline: + - runs: ruby -e "require 'fiber/annotation'" + - name: Simple test + runs: | + gem install rspec + cat < /tmp/test.rb + require 'fiber/annotation' + require 'rspec' + require 'rspec/expectations' + include RSpec::Matchers + + describe Fiber do + context 'with .new' do + it "should be able to annotate a fiber" do + fiber = Fiber.new(annotation: "foo") do + expect(Fiber.current.annotation).to be == "foo" + end + + expect(fiber.annotation).to be == "foo" + expect(Fiber.current.annotation).to be == nil + end + end + + context 'with .annotate' do + it "should annotate the current fiber" do + Fiber.annotate("foo") + expect(Fiber.current.annotation).to be == "foo" + end + + it "should annotate the current fiber with a block" do + Fiber.annotate("foo") do + expect(Fiber.current.annotation).to be == "foo" + end + end + + it "should annotate the current fiber with a block and restore the previous annotation" do + Fiber.annotate("foo") do + Fiber.annotate("bar") do + expect(Fiber.current.annotation).to be == "bar" + end + expect(Fiber.current.annotation).to be == "foo" + end + end + + it "should annotate the current fiber with a block and restore the previous annotation even if an exception is raised" do + Fiber.annotate("foo") do + expect do + Fiber.annotate("bar") do + raise "baz" + end + end.to raise_exception(RuntimeError) + expect(Fiber.current.annotation).to be == "foo" + end + end + end + end + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: ioquatix/fiber-annotation + use-tag: true + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-fiber-storage.yaml b/ruby3.4-fiber-storage.yaml new file mode 100644 index 00000000000..744b24a8aa1 --- /dev/null +++ b/ruby3.4-fiber-storage.yaml @@ -0,0 +1,135 @@ +package: + name: ruby3.4-fiber-storage + version: 1.0.0 + epoch: 0 + description: Provides a compatibility shim for fiber storage. + 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/ioquatix/fiber-storage.git + tag: v${{package.version}} + expected-commit: eac5cfcc07e265d246b7b251e329f579d28ead0b + + - 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: fiber-storage + +test: + pipeline: + - runs: ruby -e "require 'fiber/storage'" + - name: Simple test + runs: | + gem install rspec + cat < /tmp/test.rb + require 'fiber/storage' + require 'rspec' + require 'rspec/expectations' + include RSpec::Matchers + + describe Fiber do + it "should be able to store data" do + Fiber.new(storage: {foo: :bar}) do + expect(Fiber[:foo]).to be == :bar + end.resume + end + + it "can inherit storage into child fibers" do + Fiber.new(storage: {foo: :bar}) do + Fiber.new do + expect(Fiber[:foo]).to be == :bar + end.resume + end.resume + end + + it "can override storage in child fibers" do + Fiber.new(storage: {foo: :bar}) do + Fiber.new(storage: {foo: :baz}) do + expect(Fiber[:foo]).to be == :baz + end.resume + end.resume + end + + it "can inherit storage by copy" do + storage = {foo: :bar} + + Fiber.new(storage: storage) do + Fiber.new(storage: true) do + expect(Fiber[:foo]).to be == :bar + Fiber[:foo] = :baz + end.resume + expect(Fiber[:foo]).to be == :bar + end.resume + end + + it "can assign to storage" do + Fiber.new do + Fiber.current.storage = {foo: :bar} + expect(Fiber[:foo]).to be == :bar + end.resume + end + + it "can set fiber storage" do + value = Fiber.new do + Fiber[:key] = :value + Fiber[:key] + end.resume + + expect(value).to be == :value + end + + it "can't use non-symbol keys" do + expect do + Fiber["key"] = :value + end.to raise_exception(TypeError) + end + + it "can use dynamic keys" do + key = :"#{self.object_id}.key" + value = Fiber.new do + Fiber[key] = :value + Fiber[key] + end.resume + + expect(value).to be == :value + end + end + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: ioquatix/fiber-storage + use-tag: true + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-filesize.yaml b/ruby3.4-filesize.yaml new file mode 100644 index 00000000000..b7d6088ad10 --- /dev/null +++ b/ruby3.4-filesize.yaml @@ -0,0 +1,89 @@ +# Generated from http://github.com/dominikh/filesize +package: + name: ruby3.4-filesize + version: 0.1.1 + epoch: 0 + description: filesize is a small class for handling filesizes with both the SI and binary prefixes, allowing conversion from any size to any other size. + 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/dominikh/filesize + tag: v${{package.version}} + expected-commit: e401692c0dc4f9aa0e3ba316b243e7084ecb9472 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: filesize + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - name: Verify gem installation + runs: | + gem list filesize + - name: Basic functionality test + runs: | + ruby -e ' + begin + require "filesize" + puts "Debug: Loading Filesize class..." + + # Create size object directly with bytes + bytes = Filesize.new(1024) + puts "Debug: Created Filesize object: " + bytes.inspect + + # Convert to KiB (binary kilobytes) since that is the default + kib = bytes.to("KiB") + puts "Debug: Converted to KiB: " + kib.inspect + + size = kib.to_f + puts "Debug: Final float value: " + size.to_s + + # Should be exactly 1.0 since 1024 bytes = 1 KiB + if size == 1.0 + puts "Test passed: 1024 B = 1 KiB" + exit 0 + else + raise "Test failed: Expected 1.0 KiB, got " + size.to_s + end + rescue => e + puts "Test failed with error: " + e.class.to_s + ": " + e.message + puts e.backtrace + exit 1 + end ' + +update: + enabled: false + exclude-reason: unmaintained, latest tag cut in 2018 + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-gems.yaml b/ruby3.4-gems.yaml new file mode 100644 index 00000000000..a3c7d7f513f --- /dev/null +++ b/ruby3.4-gems.yaml @@ -0,0 +1,80 @@ +# Generated from https://github.com/rubygems/gems +package: + name: ruby3.4-gems + version: 1.3.0 + epoch: 0 + description: Ruby wrapper for the RubyGems.org API + 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: 4106516c2530187f56e951d264d23e26559b91ab + repository: https://github.com/rubygems/gems + 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: gems + +test: + pipeline: + - name: Verify library import + runs: ruby -e "require 'gems'" + - name: Basic usage + runs: | + cat < /tmp/test.rb + require 'gems' + print Gems.info 'rails' + EOF + ruby /tmp/test.rb + - name: Basic functionality test + runs: | + ruby -e ' + require "gems" + require "json" + + # Test search functionality + result = Gems.search("rake") + raise "Search failed" unless result.is_a?(Array) && !result.empty? + + # Test version info + versions = Gems.versions("rake") + raise "Version lookup failed" unless versions.is_a?(Array) && !versions.empty? + + puts "Tests passed - got valid responses for search and versions" + ' + +update: + enabled: true + github: + identifier: rubygems/gems + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-hashie.yaml b/ruby3.4-hashie.yaml new file mode 100644 index 00000000000..dfaebfdff35 --- /dev/null +++ b/ruby3.4-hashie.yaml @@ -0,0 +1,88 @@ +# Generated from https://github.com/hashie/hashie +package: + name: ruby3.4-hashie + version: 5.0.0 + epoch: 0 + description: Hashie is a collection of classes and mixins that make hashes more powerful. + 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: 02b528a0e39a869edc786db17dee8dd2aa9a0fd7 + repository: https://github.com/hashie/hashie + 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: hashie + +test: + pipeline: + - name: Verify library import + runs: ruby -e "require 'hashie'" + - name: Basic functionality test + runs: | + ruby -e ' + require "hashie" + + # Test Mash functionality + mash = Hashie::Mash.new + mash.name = "Test" + mash.info = { lang: "Ruby" } + + raise "Basic assignment failed" unless mash.name == "Test" + raise "Nested hash failed" unless mash.info.lang == "Ruby" + + # Test indifferent access + mash[:test_key] = "value" + raise "Indifferent access failed" unless mash["test_key"] == "value" && mash.test_key == "value" + + # Test key deletion + mash.delete(:test_key) + raise "Delete failed" if mash.key?(:test_key) + + # Test default values + mash.default = "not found" + raise "Default value failed" unless mash.missing == "not found" + + # Test merge + other = Hashie::Mash.new(a: 1, b: 2) + merged = mash.merge(other) + raise "Merge failed" unless merged.a == 1 && merged.info.lang == "Ruby" + + puts "All tests passed!" + ' + +update: + enabled: true + github: + identifier: hashie/hashie + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-http-accept.yaml b/ruby3.4-http-accept.yaml new file mode 100644 index 00000000000..9a7d92da469 --- /dev/null +++ b/ruby3.4-http-accept.yaml @@ -0,0 +1,82 @@ +# Generated from https://github.com/ioquatix/http-accept +package: + name: ruby3.4-http-accept + version: 2.2.1 + epoch: 0 + description: Parse Accept and Accept-Language HTTP headers. + 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: + repository: https://github.com/socketry/http-accept.git + tag: v${{package.version}} + expected-commit: fb4fabbf2e95e097147c3580fe061638fc7bcb3f + + - runs: | + sed -i '/signing_key/d' http-accept.gemspec + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: http-accept + +test: + pipeline: + - runs: ruby -e "require 'http/accept'" + - name: Simple test + runs: | + gem install rspec + cat < /tmp/test.rb + require 'http/accept' + + require 'rspec/expectations' + include RSpec::Matchers + + media_types = HTTP::Accept::MediaTypes.parse("text/html;q=0.5, application/json; version=1") + expect(media_types[0].mime_type).to be == "application/json" + expect(media_types[0].parameters).to be == {'version' => '1'} + expect(media_types[1].mime_type).to be == "text/html" + expect(media_types[1].parameters).to be == {'q' => '0.5'} + + languages = HTTP::Accept::Languages.parse("da, en-gb;q=0.8, en;q=0.7") + expect(languages[0].locale).to be == "da" + expect(languages[1].locale).to be == "en-gb" + expect(languages[2].locale).to be == "en" + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: socketry/http-accept + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-http-form_data.yaml b/ruby3.4-http-form_data.yaml new file mode 100644 index 00000000000..433191aec0b --- /dev/null +++ b/ruby3.4-http-form_data.yaml @@ -0,0 +1,69 @@ +package: + name: ruby3.4-http-form_data + version: 2.3.0 + epoch: 0 + description: Utility-belt to build form data request bodies. + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: http-form_data + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/httprb/form_data + tag: v${{package.version}} + expected-commit: f2c7c13882f7a3f6afd5a6beb075223237647ff5 + + - 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 'http/form_data'" + - name: Parse URI + runs: | + touch null.txt + cat < /tmp/test.rb + require 'http/form_data' + form_data = HTTP::FormData.create({ + :username => "Wolfi", + :avatar_file => HTTP::FormData::File.new("null.txt") + }) + raise 'Form data creation failed' unless form_data.is_a?(HTTP::FormData::Multipart) + raise 'Unexpected content type' unless form_data.content_type.start_with?('multipart/form-data') + puts 'All tests passed!' + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: httprb/form_data + 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_parser.rb.yaml b/ruby3.4-http_parser.rb.yaml new file mode 100644 index 00000000000..ff89c65c8b2 --- /dev/null +++ b/ruby3.4-http_parser.rb.yaml @@ -0,0 +1,118 @@ +package: + name: ruby3.4-http_parser.rb + version: 0.8.0 + epoch: 0 + description: Ruby bindings to https://github.com/joyent/http-parser and https://github.com/http-parser/http-parser.java + 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: http_parser.rb + +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. + # + # This package also makes use of git submodules which requires the git repo + - uses: git-checkout + with: + destination: ${{vars.gem}} + expected-commit: 90abe77b061c8b9b76204f53d4c223a2db0c858b + repository: https://github.com/tmm1/http_parser.rb.git + tag: v${{package.version}} + + - working-directory: ${{vars.gem}} + pipeline: + - runs: |- + git submodule init ext/ + git submodule update ext/ + - uses: ruby/build + with: + gem: ${{vars.gem}} + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + - uses: ruby/clean + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - name: Verify gem installation + runs: gem list http_parser.rb + - name: Basic import test + runs: | + ruby <<-EOF + begin + require 'http/parser' + puts "Basic import test passed! HTTP::Parser loaded successfully." + rescue LoadError => e + puts "Basic import test failed: #{e.message}" + exit 1 + end + EOF + - name: Expanded functionality test + runs: | + ruby <<-EOF + require 'http/parser' + + # Create a basic HTTP parser and parse a simple request + begin + parser = HTTP::Parser.new + parsed_headers = {} + + # Define callbacks for parsing events + parser.on_headers_complete = proc do |headers| + parsed_headers.merge!(headers) + puts "Headers parsed successfully!" + end + parser.on_message_complete = proc { puts "Message parsed successfully!" } + + # Feed the parser with a simple HTTP request + request = "GET /path/to/resource HTTP/1.1\r\n" \ + "Host: example.com\r\n" \ + "User-Agent: TestAgent\r\n\r\n" + parser << request + + # Validate parsing results + raise "Unexpected HTTP method" unless parser.http_method == "GET" + raise "Unexpected request URL" unless parser.request_url == "/path/to/resource" + raise "Unexpected HTTP version" unless parser.http_version == [1, 1] + raise "Unexpected Host header" unless parsed_headers["Host"] == "example.com" + raise "Unexpected User-Agent header" unless parsed_headers["User-Agent"] == "TestAgent" + + puts "Expanded functionality test passed with valid results!" + rescue => e + puts "Test failed: #{e.message}" + exit 1 + end + EOF + +update: + enabled: true + github: + identifier: tmm1/http_parser.rb + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-io-console.yaml b/ruby3.4-io-console.yaml new file mode 100644 index 00000000000..50bb55fe5a0 --- /dev/null +++ b/ruby3.4-io-console.yaml @@ -0,0 +1,90 @@ +# Generated from https://github.com/ruby/io-console +package: + name: ruby3.4-io-console + version: 0.8.0 + epoch: 0 + description: add console capabilities to IO instances. + 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 + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/ruby/io-console.git + tag: v${{package.version}} + expected-commit: 467508a0c64aa0dc4ae4f42179442570f52140f0 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: io-console + +test: + pipeline: + - name: Verify gem installation + runs: | + gem list io-console + - name: Test core functionality + runs: | + ruby -e ' + begin + require "io/console" + + # Test basic require works + puts "Loaded io/console successfully" + + # Test core methods + [:tty?, :winsize, :winsize=].each do |method| + unless IO.instance_methods.include?(method) + raise "Missing IO method: #{method}" + end + end + + # Test STDIN responds to console methods + unless STDIN.respond_to?(:tty?) + raise "STDIN missing tty? method" + end + + puts "Core functionality verified" + exit 0 + rescue => e + puts "Test failed: #{e.class}: #{e.message}" + puts e.backtrace + exit 1 + end + ' + +update: + enabled: true + github: + identifier: ruby/io-console + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-io-endpoint.yaml b/ruby3.4-io-endpoint.yaml new file mode 100644 index 00000000000..7055a91028f --- /dev/null +++ b/ruby3.4-io-endpoint.yaml @@ -0,0 +1,105 @@ +package: + name: ruby3.4-io-endpoint + version: 0.14.0 + epoch: 0 + description: A Ruby gem providing endpoint abstractions for network clients and servers. + 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: ecdbd0d2c86730e4bac3637dd9d1a2b2a18d0dca + repository: https://github.com/socketry/io-endpoint + 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: io-endpoint + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + - ruby${{vars.rubyMM}}-async + - ruby${{vars.rubyMM}}-async-io + - ruby${{vars.rubyMM}}-io-stream + pipeline: + - runs: | + ruby <<-EOF + require 'io/endpoint' + require 'async' + require 'async/io' + require 'test/unit' + include Test::Unit::Assertions + class TestIOEndpoint < Test::Unit::TestCase + def test_tcp_endpoint + host = "127.0.0.1" + port = 9292 + # Define a simple TCP endpoint + server_endpoint = Async::IO::Endpoint.tcp(host, port) + # Start Async reactor + Async do |task| + # Server task: listens and responds to connections + server_task = task.async do + server_endpoint.accept do |socket| + socket.write("Hello from TCP server!") + socket.close + end + end + # Delay to ensure server is ready + task.sleep(0.5) + # Client task: connects to the server and reads the response + client_task = task.async do + client_endpoint = Async::IO::Endpoint.tcp(host, port) + client_endpoint.connect do |socket| + message = socket.read + assert_equal "Hello from TCP server!", message, "Expected server greeting message" + puts "Client received correct message" + end + end + # Wait for client task to finish and stop server + client_task.wait + server_task.stop + end + puts "TCP endpoint test passed." + end + end + EOF + +update: + enabled: true + github: + identifier: socketry/io-endpoint + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-io-event.yaml b/ruby3.4-io-event.yaml new file mode 100644 index 00000000000..1bc0ff46c8c --- /dev/null +++ b/ruby3.4-io-event.yaml @@ -0,0 +1,84 @@ +package: + name: ruby3.4-io-event + version: 1.7.1 + epoch: 0 + description: An event loop. + copyright: + - license: MIT + dependencies: + runtime: + - ruby-${{vars.ruby-version}} + +var-transforms: + - from: ${{package.name}} + match: ruby(\d+\.\d+)-.*$ + replace: $1 + to: ruby-version + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.ruby-version}} + - ruby-${{vars.ruby-version}}-dev + +vars: + gem: io-event + +pipeline: + - uses: git-checkout + with: + expected-commit: 50f15b40eac9f534a6e1c7d210255efeed356396 + repository: https://github.com/socketry/io-event + 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/io-event + strip-prefix: v + +test: + environment: + contents: + packages: + - ruby-${{vars.ruby-version}} + pipeline: + - name: Verify Gem Installation + runs: | + # Check that the gem is installed + gem list | grep 'io-event' + if [ $? -ne 0 ]; then + echo "Test failed: io-event gem is not installed." + exit 1 + else + echo "Test passed: io-event gem is installed." + fi + - name: Test Requiring the Gem + runs: | + # Try to require the gem in Ruby + ruby -e "require 'io/event'; puts 'io-event gem loaded successfully'" + if [ $? -ne 0 ]; then + echo "Test failed: Unable to require io-event gem." + exit 1 + else + echo "Test passed: io-event gem can be required." + fi diff --git a/ruby3.4-io-stream.yaml b/ruby3.4-io-stream.yaml new file mode 100644 index 00000000000..178b723c536 --- /dev/null +++ b/ruby3.4-io-stream.yaml @@ -0,0 +1,92 @@ +package: + name: ruby3.4-io-stream + version: 0.6.1 + epoch: 0 + description: A Ruby gem providing stream abstractions for input and output. + 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: 8b0080a120e085e8f22afcd08b51b06cf5cab78c + repository: https://github.com/socketry/io-stream + 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: io-stream + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby <<-EOF + require 'io/stream' + require 'stringio' + require 'test/unit' + include Test::Unit::Assertions + class TestIOStream < Test::Unit::TestCase + def test_write_and_read + # Create a StringIO object and wrap it in IO::Stream + buffer = StringIO.new + stream = IO::Stream::Buffered.new(buffer) + # Write to the stream + stream.write("Hello, Stream!") + stream.flush # Ensure data is written to the buffer + # Reset buffer for reading and read back the data + buffer.rewind + message = buffer.read + # Assert that the message matches what was written + assert_equal "Hello, Stream!", message, "Expected written message to be read back from stream" + puts "Basic write and read test passed." + end + def test_close + buffer = StringIO.new + stream = IO::Stream::Buffered.new(buffer) + # Close the stream and assert it's closed + stream.close + assert stream.closed?, "Expected stream to be closed" + puts "Stream close test passed." + end + end + EOF + +update: + enabled: true + github: + identifier: socketry/io-stream + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-jar-dependencies.yaml b/ruby3.4-jar-dependencies.yaml new file mode 100644 index 00000000000..53eecf2e2af --- /dev/null +++ b/ruby3.4-jar-dependencies.yaml @@ -0,0 +1,80 @@ +# Generated from https://github.com/mkristian/jar-dependencies +package: + name: ruby3.4-jar-dependencies + version: 0.5.0 + epoch: 0 + description: manage jar dependencies for gems and keep track which jar was already loaded using maven artifact coordinates. it warns on version conflicts and loads only ONE jar assuming the first one is compatible to the second one otherwise your project needs to lock down the right version by providing a Jars.lock file. + 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: e35accc9a7608f49a06b6b660e188d6e3f4674b0 + repository: https://github.com/mkristian/jar-dependencies + tag: ${{package.version}} + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: jar-dependencies + +update: + enabled: true + github: + identifier: mkristian/jar-dependencies + use-tag: true + +test: + pipeline: + # AUTOGENERATED + - runs: | + lock_jars --help + - name: Verify gem import + runs: ruby -e "require 'jar_dependencies'; puts 'jar_dependencies loaded successfully!'" + - name: Test basic functionality + runs: | + ruby -e ' + begin + require "jar_dependencies" + + # Test module definition + raise "Missing Jars module" unless defined?(Jars) + + # Test basic methods exist + [:require_jar, :setup, :lock].each do |method| + raise "Missing method: Jars.#{method}" unless Jars.respond_to?(method) + end + + puts "Basic jar-dependencies functionality verified" + exit 0 + rescue => e + puts "Test failed: #{e.message}" + exit 1 + end + ' + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-jmespath.yaml b/ruby3.4-jmespath.yaml new file mode 100644 index 00000000000..abbebf0bb9d --- /dev/null +++ b/ruby3.4-jmespath.yaml @@ -0,0 +1,76 @@ +package: + name: ruby3.4-jmespath + version: 1.6.2 + epoch: 0 + description: Implements JMESPath for Ruby + 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: 8336859844c3ebf053cf9498dcf5f494ee805750 + repository: https://github.com/jmespath/jmespath.rb + 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: jmespath + +test: + pipeline: + - name: Verify gem import + runs: ruby -e "require 'jmespath'; puts 'jmespath loaded successfully!'" + - name: Basic JMESPath evaluation + runs: | + ruby <<-EOF + require 'jmespath' + + # Basic JMESPath expression test + data = { + "foo" => { + "bar" => "value" + } + } + expression = "foo.bar" + result = JMESPath.search(expression, data) + + # Validate the result + if result == "value" + puts "Basic JMESPath evaluation successful!" + else + raise "Expected 'value' but got '\#{result}'" + end + EOF + +update: + enabled: true + github: + identifier: jmespath/jmespath.rb + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-jrjackson.yaml b/ruby3.4-jrjackson.yaml new file mode 100644 index 00000000000..da8abb2054e --- /dev/null +++ b/ruby3.4-jrjackson.yaml @@ -0,0 +1,78 @@ +package: + name: ruby3.4-jrjackson + version: 0.4.20 + epoch: 0 + description: A mostly native JRuby wrapper for the java jackson json processor jar + copyright: + - license: Apache-2.0 + +environment: + contents: + packages: + - build-base + - jruby-9.4 + - jruby-9.4-default-ruby + - openjdk-8-default-jdk # build with JDK 8 since this is the declared version in the upstream Mavenfile + environment: + JAVA_HOME: /usr/lib/jvm/java-1.8-openjdk + +pipeline: + - uses: git-checkout + with: + expected-commit: 8379708e06579d9b76cd3567aed0493e6a60b89b + repository: https://github.com/guyboertje/jrjackson + tag: v${{package.version}} + + - runs: | + bundle install + rake + rake test + + - runs: | + jruby -S gem build ${{vars.gem}}.gemspec + + - 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: jrjackson + +update: + enabled: true + github: + identifier: guyboertje/jrjackson + strip-prefix: v + use-tag: true + +test: + environment: + contents: + packages: + - jruby-9.4 + - openjdk-11-default-jvm + pipeline: + - runs: | + cat < /tmp/test.rb + require 'jrjackson' + + obj = {:key1 => "value1"} + puts obj + + result = JrJackson::Json.dump(obj) + puts result + + puts JrJackson::Json.parse(result) + EOF + + jruby /tmp/test.rb + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-json.yaml b/ruby3.4-json.yaml new file mode 100644 index 00000000000..20002816007 --- /dev/null +++ b/ruby3.4-json.yaml @@ -0,0 +1,60 @@ +# Generated from https://github.com/flori/json +package: + name: ruby3.4-json + version: 2.9.0 + epoch: 0 + description: This is a JSON implementation as a Ruby extension in C. + copyright: + - license: 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/flori/json + tag: v${{package.version}} + expected-commit: 20b501a31d824449148c97385eb064f6f62ba127 + + - runs: | + # Upstream sometimes forgets to update the version in their version.rb file after a release. + sed -i "s/\(VERSION = '\)[^']*/\1${{package.version}}/" lib/json/version.rb + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: json + +test: + pipeline: + - runs: ruby -e "require 'json'" + +update: + enabled: true + github: + identifier: flori/json + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-jwt.yaml b/ruby3.4-jwt.yaml new file mode 100644 index 00000000000..1608ac976f8 --- /dev/null +++ b/ruby3.4-jwt.yaml @@ -0,0 +1,51 @@ +# Generated from https://github.com/jwt/ruby-jwt +package: + name: ruby3.4-jwt + version: 2.9.3 + epoch: 0 + description: A pure ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT) standard. + 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: ae54ded293f09a5081fb8468863d87171e045bd2 + repository: https://github.com/jwt/ruby-jwt + tag: v${{package.version}} + + - uses: ruby/build + with: + gem: ruby-${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: jwt + +update: + enabled: true + github: + identifier: jwt/ruby-jwt + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-logger.yaml b/ruby3.4-logger.yaml new file mode 100644 index 00000000000..1358af4a917 --- /dev/null +++ b/ruby3.4-logger.yaml @@ -0,0 +1,145 @@ +# Generated from https://github.com/ruby/logger +package: + name: ruby3.4-logger + version: 1.6.2 + epoch: 0 + description: Provides a simple logging utility for outputting messages. + 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 + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/ruby/logger + tag: v${{package.version}} + expected-commit: 2d07f086f8aa0bd5923a072ce7bd15e5dd301f16 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: logger + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: ruby -e "require 'logger'" + - name: Test basic logging functionality + runs: | + ruby <<-EOF + require 'logger' + require 'stringio' + + # Use StringIO to capture log output + log_output = StringIO.new + logger = Logger.new(log_output) + + # Test different log levels + logger.level = Logger::INFO + logger.info('Info message') + logger.error('Error message') + logger.debug('Debug message') # Shouldn't appear due to log level + + log_content = log_output.string + + # Verify log level filtering works + raise 'Info message not found' unless log_content.include?('Info message') + raise 'Error message not found' unless log_content.include?('Error message') + raise 'Debug message should not appear' if log_content.include?('Debug message') + + # Test log formatting + raise 'Log entry missing severity' unless log_content.include?('INFO') && log_content.include?('ERROR') + raise 'Log entries should be on separate lines' unless log_content.split("\n").length >= 2 + + puts "Logger functionality tests passed!" + EOF + - name: Test advanced logger features + runs: | + ruby <<-EOF + require 'logger' + require 'stringio' + require 'time' + + # Test custom formatter + log_output = StringIO.new + logger = Logger.new(log_output) + logger.formatter = proc do |severity, datetime, progname, msg| + "#{severity}|#{msg}\n" + end + + logger.info('Custom format test') + raise 'Custom formatter failed' unless log_output.string.include?('INFO|Custom format test') + + # Test progname + logger.progname = 'TestApp' + log_output.truncate(0) + log_output.rewind + + logger.formatter = Logger::Formatter.new + logger.info('Program name test') + raise 'Progname not included' unless log_output.string.include?('TestApp') + + # Test datetime format + logger.datetime_format = '%Y-%m-%d' + log_output.truncate(0) + log_output.rewind + + logger.info('Date format test') + today = Time.now.strftime('%Y-%m-%d') + raise 'Custom datetime format failed' unless log_output.string.include?(today) + + # Test log levels conversion + logger.level = :info + raise 'Symbol log level failed' unless logger.level == Logger::INFO + + logger.level = 'WARN' + raise 'String log level failed' unless logger.level == Logger::WARN + + # Test adding custom levels (supported in newer versions) + begin + Logger.define_singleton_method(:success) { 25 } + Logger.define_method(:success) { |progname, &block| add(Logger.success, nil, progname, &block) } + logger.success('Custom level test') + rescue => e + # Skip if custom levels not supported in this version + end + + puts "Advanced logger features tests passed!" + EOF + +update: + enabled: true + github: + identifier: ruby/logger + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-lru_redux.yaml b/ruby3.4-lru_redux.yaml new file mode 100644 index 00000000000..3619d1ed9f4 --- /dev/null +++ b/ruby3.4-lru_redux.yaml @@ -0,0 +1,50 @@ +package: + name: ruby3.4-lru_redux + version: 1.1.0 + epoch: 0 + description: An efficient, thread safe LRU cache. + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/SamSaffron/lru_redux.git + tag: v${{package.version}} + expected-commit: 47e0c92f494390955ee828e11a357cf682f1ce9f + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: lru_redux + +update: + enabled: true + github: + identifier: SamSaffron/lru_redux + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-method_source.yaml b/ruby3.4-method_source.yaml new file mode 100644 index 00000000000..676db564bbb --- /dev/null +++ b/ruby3.4-method_source.yaml @@ -0,0 +1,52 @@ +# Generated from https://github.com/banister/method_source +package: + name: ruby3.4-method_source + version: 1.1.0 + epoch: 0 + description: retrieve the sourcecode for a method + 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: eef98af83806572d503c8bc624de0efdc0dffc28 + repository: https://github.com/banister/method_source + 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: method_source + +update: + enabled: true + github: + identifier: banister/method_source + 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-data.yaml b/ruby3.4-mime-types-data.yaml new file mode 100644 index 00000000000..d2530ce5e09 --- /dev/null +++ b/ruby3.4-mime-types-data.yaml @@ -0,0 +1,56 @@ +package: + name: ruby3.4-mime-types-data + version: 3.2024.1203 + epoch: 0 + description: MIME Type registry data + 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/mime-types/mime-types-data.git + tag: v${{package.version}} + expected-commit: 4a5993ec84c3f860c37f2e9c297dd378e4e76c2a + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: mime-types-data + +test: + pipeline: + - runs: | + ruby -e "require 'mime-types-data'" + +update: + enabled: true + github: + identifier: mime-types/mime-types-data + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-mini_mime.yaml b/ruby3.4-mini_mime.yaml new file mode 100644 index 00000000000..76b8156a1c1 --- /dev/null +++ b/ruby3.4-mini_mime.yaml @@ -0,0 +1,51 @@ +package: + name: ruby3.4-mini_mime + version: 1.1.5 + epoch: 0 + description: A lightweight mime type lookup toy + 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: ad29352bf7b8fa547ea3058f2e97f3e8496f034a + repository: https://github.com/discourse/mini_mime + 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: mini_mime + +update: + enabled: true + github: + identifier: discourse/mini_mime + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-minitar.yaml b/ruby3.4-minitar.yaml new file mode 100644 index 00000000000..171a529d9c0 --- /dev/null +++ b/ruby3.4-minitar.yaml @@ -0,0 +1,52 @@ +# Generated from https://github.com/halostatue/minitar/ +package: + name: ruby3.4-minitar + version: 1.0.2 + epoch: 0 + description: Minimal pure-ruby support for POSIX tar(1) archives. + copyright: + - 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: 022da9c1313942736b319ce26cf3e1e5d1515bdc + repository: https://github.com/halostatue/minitar + 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: minitar + +update: + enabled: true + github: + identifier: halostatue/minitar + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-msgpack.yaml b/ruby3.4-msgpack.yaml new file mode 100644 index 00000000000..1cabb02474c --- /dev/null +++ b/ruby3.4-msgpack.yaml @@ -0,0 +1,111 @@ +package: + name: ruby3.4-msgpack + version: 1.7.5 + epoch: 0 + description: MessagePack is a binary-based efficient object serialization library. It enables to exchange structured objects between many languages like JSON. But unlike JSON, it is very fast and small. + copyright: + - license: Apache-2.0 + dependencies: + runtime: + - ruby-${{vars.rubyMM}} + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: msgpack + +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: 2a92ffbf0b84904147826f514ed544cc5c19f24d + repository: https://github.com/msgpack/msgpack-ruby.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 + +test: + environment: + contents: + packages: + - ruby-${{vars.rubyMM}} + pipeline: + - runs: | + ruby <<-EOF + require 'msgpack' + require 'test/unit' + include Test::Unit::Assertions + # Test basic integer packing/unpacking + packed = 42.to_msgpack + assert_equal 42, MessagePack.unpack(packed) + puts "Integer serialization test passed" + # Test string packing/unpacking + packed = "hello".to_msgpack + assert_equal "hello", MessagePack.unpack(packed) + puts "String serialization test passed" + # Test array packing/unpacking + data = [1, "abc", true] + packed = data.to_msgpack + assert_equal data, MessagePack.unpack(packed) + puts "Array serialization test passed" + # Test hash packing/unpacking + data = {"name" => "test", "value" => 123} + packed = data.to_msgpack + assert_equal data, MessagePack.unpack(packed) + puts "Hash serialization test passed" + # Test nested structure + nested = { + "array" => [1, 2, 3], + "hash" => {"a" => 1, "b" => 2}, + "mixed" => [{"x" => 1}, [1, 2], "test"] + } + packed = nested.to_msgpack + assert_equal nested, MessagePack.unpack(packed) + puts "Nested structure serialization test passed" + # Test packer/unpacker streaming API + packer = MessagePack::Packer.new + packer.write(1) + packer.write("string") + packer.write([1,2,3]) + data = packer.to_s + unpacker = MessagePack::Unpacker.new + unpacker.feed(data) + results = [] + unpacker.each {|obj| results << obj } + assert_equal [1, "string", [1,2,3]], results + puts "Streaming API test passed" + puts "All tests passed!" + EOF + +update: + enabled: true + github: + identifier: msgpack/msgpack-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-multi_json.yaml b/ruby3.4-multi_json.yaml new file mode 100644 index 00000000000..315c6f39aca --- /dev/null +++ b/ruby3.4-multi_json.yaml @@ -0,0 +1,51 @@ +package: + name: ruby3.4-multi_json + version: 1.15.0 + epoch: 0 + description: A common interface to multiple JSON libraries, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, NSJSONSerialization, gson.rb, JrJackson, and OkJson. + 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/intridea/multi_json + tag: v${{package.version}} + expected-commit: 530a9813e32ca1fc08bc294fa1178796c3d1861a + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: multi_json + +update: + enabled: true + github: + identifier: intridea/multi_json + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-multi_xml.yaml b/ruby3.4-multi_xml.yaml new file mode 100644 index 00000000000..d674df6e3f8 --- /dev/null +++ b/ruby3.4-multi_xml.yaml @@ -0,0 +1,52 @@ +# Generated from https://github.com/sferik/multi_xml +package: + name: ruby3.4-multi_xml + version: 0.7.1 + epoch: 0 + description: Provides swappable XML backends utilizing LibXML, Nokogiri, Ox, or REXML. + 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: a3ed024ac3be31b6f1fdef8221ebd6c31513fa23 + repository: https://github.com/sferik/multi_xml + 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: multi_xml + +update: + enabled: true + github: + identifier: sferik/multi_xml + strip-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.yaml b/ruby3.4-net-http.yaml new file mode 100644 index 00000000000..cc3cf00f0c6 --- /dev/null +++ b/ruby3.4-net-http.yaml @@ -0,0 +1,58 @@ +package: + name: ruby3.4-net-http + version: 0.6.0 + epoch: 0 + description: "A rich library which can be used to build HTTP user-agents for Ruby" + copyright: + - license: BSD-2-Clause OR Ruby + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-3.4 + - ruby-3.4-dev + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/ruby/net-http + tag: v${{package.version}} + expected-commit: 6475fa68ba8483d4651b7a8e4d33f0aea2cf27db + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: net-http + +test: + pipeline: + - name: Verify library import + runs: ruby -e "require 'net/http'" + - name: Basic usage + runs: | + cat < /tmp/test.rb + require "net/http" + uri = URI("https://edu.chainguard.dev/open-source/wolfi/overview/") + Net::HTTP.get(uri) + puts "OK" + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: ruby/net-http + strip-prefix: v diff --git a/ruby3.4-netrc.yaml b/ruby3.4-netrc.yaml new file mode 100644 index 00000000000..213ab5d893e --- /dev/null +++ b/ruby3.4-netrc.yaml @@ -0,0 +1,70 @@ +package: + name: ruby3.4-netrc + version: 0.11.0 + epoch: 0 + description: This library can read and update netrc files, preserving formatting including comments and whitespace. + 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: 6ce9be04800aae0df1b7d44ce195117485de8b6a + repository: https://github.com/heroku/netrc + 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: netrc + +test: + pipeline: + - runs: | + ruby -e "require 'netrc'" + - name: Simple test + runs: | + cat < /tmp/.netrc + machine example.com + login netrc + password test + EOF + chmod 0600 /tmp/.netrc + cat < /tmp/test.rb + require 'netrc' + n = Netrc.read("/tmp/.netrc") + user, pass = n["example.com"] + EOF + ruby /tmp/test.rb + +# heroku uses IP allow list for querying GitHub API +update: + enabled: true + git: + 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-nio4r.yaml b/ruby3.4-nio4r.yaml new file mode 100644 index 00000000000..06c0ea36594 --- /dev/null +++ b/ruby3.4-nio4r.yaml @@ -0,0 +1,51 @@ +# Generated from https://github.com/socketry/nio4r/tree/v2.5.9 +package: + name: ruby3.4-nio4r + version: 2.7.1 + epoch: 0 + description: Cross-platform asynchronous I/O primitives for scalable network clients and servers. Inspired by the Java NIO API, but simplified for ease-of-use. + 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: d8179e72a63d763ba9a84cbfa7a3412e7f100985 + repository: https://github.com/socketry/nio4r + 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: nio4r + +update: + enabled: true + github: + identifier: socketry/nio4r + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-numerizer.yaml b/ruby3.4-numerizer.yaml new file mode 100644 index 00000000000..3235e0cfc00 --- /dev/null +++ b/ruby3.4-numerizer.yaml @@ -0,0 +1,52 @@ +# Generated from http://github.com/jduff/numerizer +package: + name: ruby3.4-numerizer + version: 0.2.0 + epoch: 0 + description: Numerizer is a gem to help with parsing numbers in natural language from strings (ex forty two). It was extracted from the awesome Chronic gem http://github.com/evaryont/chronic. + 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/jduff/numerizer + tag: v${{package.version}} + expected-commit: 83c0eedb5b49053b3e36434c3d640a8291587fd3 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: numerizer + +update: + enabled: true + github: + identifier: jduff/numerizer + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-oj.yaml b/ruby3.4-oj.yaml new file mode 100644 index 00000000000..baf4fa1bd48 --- /dev/null +++ b/ruby3.4-oj.yaml @@ -0,0 +1,54 @@ +package: + name: ruby3.4-oj + version: 3.16.7 + epoch: 0 + description: The fastest JSON parser and object serializer. + 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: oj + +pipeline: + - uses: git-checkout + with: + expected-commit: c70bf4125b546bc7146840b15de36460d42b4dff + repository: https://github.com/ohler55/oj + 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: ohler55/oj + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-openssl_pkcs8_pure.yaml b/ruby3.4-openssl_pkcs8_pure.yaml new file mode 100644 index 00000000000..e9b369b9a70 --- /dev/null +++ b/ruby3.4-openssl_pkcs8_pure.yaml @@ -0,0 +1,52 @@ +# Generated from http://github.com/cielavenir/openssl_pkcs8_pure +package: + name: ruby3.4-openssl_pkcs8_pure + version: 0.0.0.2 + epoch: 0 + description: OpenSSL::PKey::[DSA/RSA/EC]#to_pem_pkcs8 written in Ruby + copyright: + - 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: + repository: https://github.com/cielavenir/openssl_pkcs8_pure + tag: v${{package.version}} + expected-commit: 380967a0e48f3029b80874fd5a3d21e0b33ce7f8 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: openssl_pkcs8_pure + +update: + enabled: true + github: + identifier: cielavenir/openssl_pkcs8_pure + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-pg.yaml b/ruby3.4-pg.yaml new file mode 100644 index 00000000000..2beebae2c61 --- /dev/null +++ b/ruby3.4-pg.yaml @@ -0,0 +1,69 @@ +# Generated from https://github.com/ged/ruby-pg +package: + name: ruby3.4-pg + version: 1.5.9 + epoch: 0 + description: Pg is the Ruby interface to the PostgreSQL RDBMS. It works with PostgreSQL 9.3 and later. + copyright: + - license: BSD-2-Clause + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - libpq + - postgresql-dev + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: git-checkout + with: + expected-commit: afe2f208f7d5eacea1260ce1def10e1fb30b8241 + repository: https://github.com/ged/ruby-pg + 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: pg + +update: + enabled: true + github: + identifier: ged/ruby-pg + strip-prefix: v + use-tag: true + +test: + environment: + contents: + repositories: + - https://packages.wolfi.dev/os + keyring: + - https://packages.wolfi.dev/os/wolfi-signing.rsa.pub + packages: + - shadow + - ruby-${{vars.rubyMM}}-dev + pipeline: + - name: Check pg is install + runs: | + echo "Is pg installed?: $(gem list -i pg)" + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-polyglot.yaml b/ruby3.4-polyglot.yaml new file mode 100644 index 00000000000..aa081e7a7d4 --- /dev/null +++ b/ruby3.4-polyglot.yaml @@ -0,0 +1,52 @@ +# Generated from http://github.com/cjheath/polyglot +package: + name: ruby3.4-polyglot + version: 0.3.5 + epoch: 0 + description: Augment 'require' to load non-ruby file types + 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: 75f4d4d4521f8347a087e852ed81ec867d759854 + repository: https://github.com/cjheath/polyglot + 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: polyglot + +update: + enabled: true + github: + identifier: cjheath/polyglot + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-polyglot/polyglot.gemspec b/ruby3.4-polyglot/polyglot.gemspec new file mode 100644 index 00000000000..d061eef005e --- /dev/null +++ b/ruby3.4-polyglot/polyglot.gemspec @@ -0,0 +1,21 @@ +# polyglot.gemspec +lib = File.expand_path('lib', __dir__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require 'polyglot/version' + +Gem::Specification.new do |spec| + spec.name = "polyglot" + spec.version = Polyglot::VERSION::STRING + spec.authors = ["Clifford Heath"] + spec.email = %w[clifford.heath@gmail.com] + spec.summary = %q{Augment 'require' to load non-Ruby file types} + spec.description = %q{The Polyglot library allows a Ruby module to register a loader +for the file type associated with a filename extension, and it +augments 'require' to find and load matching files.} + spec.homepage = "http://github.com/cjheath/polyglot" + spec.license = "MIT" + + spec.files = Dir["lib/**/*", "README.md", "LICENSE.txt"] + spec.require_paths = ["lib"] +end + diff --git a/ruby3.4-prometheus-client.yaml b/ruby3.4-prometheus-client.yaml new file mode 100644 index 00000000000..cb0279265b3 --- /dev/null +++ b/ruby3.4-prometheus-client.yaml @@ -0,0 +1,50 @@ +package: + name: ruby3.4-prometheus-client + version: 4.2.3 + epoch: 0 + description: A suite of instrumentation metric primitivesthat can be exposed through a web services interface. + 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: 5514b2be2a417c5fba02479c7ba78096b7eaf4cf + repository: https://github.com/prometheus/client_ruby + 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: prometheus-client + +update: + enabled: true + github: + identifier: prometheus/client_ruby + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-protocol-hpack.yaml b/ruby3.4-protocol-hpack.yaml new file mode 100644 index 00000000000..647b1bd18b9 --- /dev/null +++ b/ruby3.4-protocol-hpack.yaml @@ -0,0 +1,61 @@ +package: + name: ruby3.4-protocol-hpack + version: 1.5.1 + epoch: 0 + description: A compresssor and decompressor for HTTP 2.0 HPACK. + 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: protocol-hpack + # NOTE: http-hpack is required for the gemspec name. It has since been + # updated to match the standard naming scheme, however it is not in this tag + gemspec: protocol-hpack + +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: e572ccf0d291821915bc9d2d57425c7435b7483b + repository: https://github.com/socketry/http-hpack.git + tag: v${{package.version}} + + - working-directory: ${{vars.gem}} + pipeline: + - uses: ruby/build + with: + # NOTE: See vars.gemspec comment for details + gem: ${{vars.gemspec}} + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + - uses: ruby/clean + +update: + enabled: true + github: + identifier: socketry/http-hpack + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-protocol-http.yaml b/ruby3.4-protocol-http.yaml new file mode 100644 index 00000000000..16a9148fdb6 --- /dev/null +++ b/ruby3.4-protocol-http.yaml @@ -0,0 +1,71 @@ +package: + name: ruby3.4-protocol-http + version: 0.47.1 + epoch: 0 + description: Provides abstractions to handle HTTP protocols. + 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: protocol-http + +pipeline: + - uses: git-checkout + with: + expected-commit: 5dca5815232b65350f7d9f34dbc6bf08bc4afdcc + repository: https://github.com/socketry/protocol-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 + +update: + enabled: true + github: + identifier: socketry/protocol-http + strip-prefix: v + use-tag: true + +test: + pipeline: + - name: Check Gem Installation + runs: | + if gem list | grep -q "${{vars.gem}}"; then + echo "${{vars.gem}} gem installed successfully." + else + echo "${{vars.gem}} gem installation failed!" && exit 1 + fi + - name: Test Functionality + runs: | + ruby -r 'protocol/http' -e ' + request = Protocol::HTTP::Request.new(nil, nil, "GET", "/") + request.headers.add("content-type", "application/json") + puts "Content-Type Header: " + request.headers["content-type"] + ' || (echo "${{vars.gem}} test failed!" && exit 1) + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-public_suffix.yaml b/ruby3.4-public_suffix.yaml new file mode 100644 index 00000000000..fb96260606a --- /dev/null +++ b/ruby3.4-public_suffix.yaml @@ -0,0 +1,54 @@ +package: + name: ruby3.4-public_suffix + version: 6.0.1 + epoch: 0 + description: PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains. + 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/weppos/publicsuffix-ruby + tag: v${{package.version}} + expected-commit: 72b7198c7aaf156436b950108ebc9e5c66c53805 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: public_suffix + +update: + enabled: true + ignore-regex-patterns: + - thesis-naive + github: + identifier: weppos/publicsuffix-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-quantile.yaml b/ruby3.4-quantile.yaml new file mode 100644 index 00000000000..97b77610538 --- /dev/null +++ b/ruby3.4-quantile.yaml @@ -0,0 +1,50 @@ +# Generated from http://github.com/matttproud/ruby_quantile_estimation +package: + name: ruby3.4-quantile + version: 0.2.1 + epoch: 0 + description: Graham Cormode and S. Muthukrishnan's Effective Computation of Biased Quantiles over Data Streams in ICDE’05 + copyright: + - license: Apache-2.0 + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: fetch + with: + expected-sha256: a31b7ae352f41563b42ac5a8bcb67d182c1d1aff03da77cc9e99b7d9da79f371 + uri: https://github.com/matttproud/ruby_quantile_estimation/archive/refs/tags/v${{package.version}}.tar.gz + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: quantile + +update: + enabled: false + github: + identifier: matttproud/ruby_quantile_estimation + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-rack-2.2.yaml b/ruby3.4-rack-2.2.yaml new file mode 100644 index 00000000000..4b41379385e --- /dev/null +++ b/ruby3.4-rack-2.2.yaml @@ -0,0 +1,61 @@ +package: + name: ruby3.4-rack-2.2 + version: 2.2.8.1 + epoch: 0 + description: Rack provides a minimal, modular and adaptable interface for developing web applications in Ruby + copyright: + - license: MIT + dependencies: + provides: + - ruby${{vars.rubyMM}}-rack=${{package.full-version}} + +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/rack/rack + tag: v${{package.version}} + expected-commit: e83001100ad9dd24e1744b13669dcb2736a13ebd + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: rack + +update: + enabled: true + github: + identifier: rack/rack + strip-prefix: v + tag-filter: v2.2. + +test: + pipeline: + # AUTOGENERATED + - runs: | + rackup --version + rackup --help + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-rack.yaml b/ruby3.4-rack.yaml new file mode 100644 index 00000000000..505c108999a --- /dev/null +++ b/ruby3.4-rack.yaml @@ -0,0 +1,50 @@ +package: + name: ruby3.4-rack + version: 3.0.9.1 + epoch: 0 + description: Rack provides a minimal, modular and adaptable interface for developing web applications in Ruby + 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: a4bc5e0f41c750135969ceece8772ab112dc8f17 + repository: https://github.com/rack/rack + 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: rack + +update: + enabled: true + github: + identifier: rack/rack + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-rake-compiler.yaml b/ruby3.4-rake-compiler.yaml new file mode 100644 index 00000000000..c0fc64314ca --- /dev/null +++ b/ruby3.4-rake-compiler.yaml @@ -0,0 +1,36 @@ +# Generated from https://github.com/luislavena/rake-compiler +package: + name: ruby3.4-rake-compiler + version: 1.2.8 + epoch: 0 + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-3.4 + +pipeline: + - uses: fetch + with: + expected-sha256: 7ab940e14dd078f9041f43a2a04939b1328d23214fb480adc2fc310bc2dbe6ff + uri: https://github.com/luislavena/rake-compiler/archive/refs/tags/v${{package.version}}.tar.gz + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: rake-compiler diff --git a/ruby3.4-recursive-open-struct.yaml b/ruby3.4-recursive-open-struct.yaml new file mode 100644 index 00000000000..15b09622fe6 --- /dev/null +++ b/ruby3.4-recursive-open-struct.yaml @@ -0,0 +1,60 @@ +package: + name: ruby3.4-recursive-open-struct + version: 2.0.0 + epoch: 0 + description: OpenStruct subclass that returns nested hash attributes as RecursiveOpenStructs + copyright: + - license: MIT + +environment: + contents: + packages: + - busybox + - ca-certificates-bundle + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +vars: + gem: recursive-open-struct + +pipeline: + - uses: git-checkout + with: + expected-commit: d26b6e88135ec54e44a0b4efd48743469f242b7a + repository: https://github.com/aetherknight/recursive-open-struct + 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: Simple test + runs: | + cat < /tmp/test.rb + require 'recursive-open-struct' + ros = RecursiveOpenStruct.new( { wha: { tagoo: 'siam' } } ) + ros.wha.tagoo + EOF + ruby /tmp/test.rb + +update: + enabled: true + github: + identifier: aetherknight/recursive-open-struct + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-rexml.yaml b/ruby3.4-rexml.yaml new file mode 100644 index 00000000000..e17acc2bc03 --- /dev/null +++ b/ruby3.4-rexml.yaml @@ -0,0 +1,54 @@ +package: + name: ruby3.4-rexml + version: 3.3.9 + epoch: 0 + description: An XML toolkit for Ruby + copyright: + - 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: rexml + +pipeline: + - uses: git-checkout + with: + expected-commit: 38eaa86ac7abe0d31cf49d8df57ad239fdeb80e9 + repository: https://github.com/ruby/rexml + 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/rexml + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-rspec-support.yaml b/ruby3.4-rspec-support.yaml new file mode 100644 index 00000000000..a8cbfe0f7d6 --- /dev/null +++ b/ruby3.4-rspec-support.yaml @@ -0,0 +1,45 @@ +# Generated from https://github.com/rspec/rspec-support +package: + name: ruby3.4-rspec-support + version: 3.13.1 + epoch: 0 + description: Support utilities for RSpec gems + copyright: + - license: MIT + +environment: + contents: + packages: + - build-base + - busybox + - ca-certificates-bundle + - git + - ruby-${{vars.rubyMM}} + - ruby-${{vars.rubyMM}}-dev + +pipeline: + - uses: fetch + with: + expected-sha256: 3bc8bfa7a41ac4780b2570bd91afe1b4f304330de26d9497f90ba7122d342711 + uri: https://github.com/rspec/rspec-support/archive/refs/tags/v${{package.version}}.tar.gz + + - uses: git-checkout + with: + repository: https://github.com/rspec/rspec-support.git + tag: v${{package.version}} + expected-commit: 38e40fec3f2bda7074f76b1f9b4c96be613df6d1 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: rspec-support + rubyMM: "3.4" diff --git a/ruby3.4-ruby2_keywords.yaml b/ruby3.4-ruby2_keywords.yaml new file mode 100644 index 00000000000..b5eb647be72 --- /dev/null +++ b/ruby3.4-ruby2_keywords.yaml @@ -0,0 +1,55 @@ +package: + name: ruby3.4-ruby2_keywords + version: 0.0.5 + epoch: 0 + description: Shim library for Module#ruby2_keywords + 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: + repository: https://github.com/ruby/ruby2_keywords + tag: v${{package.version}} + expected-commit: 92ad9c5c3fff591b8383ada8b93c3da1279d24ad + + - uses: patch + with: + patches: changelog.patch + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: ruby2_keywords + +update: + enabled: true + github: + identifier: ruby/ruby2_keywords + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-ruby2_keywords/changelog.patch b/ruby3.4-ruby2_keywords/changelog.patch new file mode 100644 index 00000000000..f64a6b5b55c --- /dev/null +++ b/ruby3.4-ruby2_keywords/changelog.patch @@ -0,0 +1,12 @@ +diff --git a/ruby2_keywords.gemspec b/ruby2_keywords.gemspec +index e2cd397..773da85 100644 +--- a/ruby2_keywords.gemspec ++++ b/ruby2_keywords.gemspec +@@ -13,7 +13,6 @@ Gem::Specification.new do |s| + s.extra_rdoc_files = [ + "LICENSE", + "README.md", +- "ChangeLog", + *Dir.glob("#{__dir__}/logs/ChangeLog-*[^~]").map {|path| path[(__dir__.size+1)..-1]}, + ] + s.files = [ diff --git a/ruby3.4-rubyzip.yaml b/ruby3.4-rubyzip.yaml new file mode 100644 index 00000000000..f37c50326ee --- /dev/null +++ b/ruby3.4-rubyzip.yaml @@ -0,0 +1,54 @@ +# Generated from https://github.com/rubyzip/rubyzip/tree/v2.3.2 +package: + name: ruby3.4-rubyzip + version: 2.3.2 + epoch: 0 + description: rubyzip is a ruby module for reading and writing zip files + copyright: + - 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: 2f1c1ea400a15ce3edf9b75e742595f0ee6e661d + repository: https://github.com/rubyzip/rubyzip + 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: rubyzip + +update: + enabled: true + ignore-regex-patterns: + - show + github: + identifier: rubyzip/rubyzip + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-securerandom.yaml b/ruby3.4-securerandom.yaml new file mode 100644 index 00000000000..ec3cccd704f --- /dev/null +++ b/ruby3.4-securerandom.yaml @@ -0,0 +1,66 @@ +package: + name: ruby3.4-securerandom + version: 0.4.0 + epoch: 0 + description: Interface for secure random number generator. + 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: + repository: https://github.com/ruby/securerandom + tag: v${{package.version}} + expected-commit: 53f97f31518a4aca129d5cff6b23ae8a2c7d2348 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: securerandom + +update: + enabled: true + github: + identifier: ruby/securerandom + strip-prefix: v + +test: + pipeline: + - runs: ruby -e "require 'securerandom'" + - name: Parse URI + runs: | + cat < /tmp/test.rb + require 'securerandom' + SecureRandom.hex(10) #=> "52750b30ffbc7de3b362" + SecureRandom.base64(10) #=> "EcmTPZwWRAozdA==" + SecureRandom.random_bytes(10) #=> "\016\t{\370g\310pbr\301" + SecureRandom.alphanumeric(10) #=> "S8baxMJnPl" + SecureRandom.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594" + EOF + ruby /tmp/test.rb + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-sigdump.yaml b/ruby3.4-sigdump.yaml new file mode 100644 index 00000000000..4408ebe1dba --- /dev/null +++ b/ruby3.4-sigdump.yaml @@ -0,0 +1,57 @@ +package: + name: ruby3.4-sigdump + version: 0.2.5 + epoch: 0 + description: Setup signal handler which dumps backtrace of running threads and number of allocated objects per class. Require 'sigdump/setup', send SIGCONT, and see /tmp/sigdump-<pid>.log. + 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: sigdump + +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: 5be55405d18b43e70f30fb397376014a88d4b8fd + repository: https://github.com/frsyuki/sigdump.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: frsyuki/sigdump + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-stringio.yaml b/ruby3.4-stringio.yaml new file mode 100644 index 00000000000..c5f6a7b6ecb --- /dev/null +++ b/ruby3.4-stringio.yaml @@ -0,0 +1,59 @@ +# Generated from https://github.com/ruby/stringio +package: + name: ruby3.4-stringio + version: 3.1.2 + epoch: 0 + description: Pseudo `IO` class from/to `String`. + 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 + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/ruby/stringio.git + tag: v${{package.version}} + expected-commit: 7cc9fb1bf54d8fc873094eb36cbf8193e28fe05c + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: stringio + +test: + pipeline: + - runs: ruby -e "require 'stringio'" + +update: + enabled: true + github: + identifier: ruby/stringio + strip-prefix: v + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-strptime.yaml b/ruby3.4-strptime.yaml new file mode 100644 index 00000000000..21761b2d17b --- /dev/null +++ b/ruby3.4-strptime.yaml @@ -0,0 +1,57 @@ +package: + name: ruby3.4-strptime + version: 0.2.5 + epoch: 0 + description: a fast strptime/strftime engine which uses VM. + copyright: + - 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: strptime + +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: 1583aaa510cae4660907b22c8262ab31b1eb1864 + repository: https://github.com/nurse/strptime.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: nurse/strptime + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-stud.yaml b/ruby3.4-stud.yaml new file mode 100644 index 00000000000..ff5519a1441 --- /dev/null +++ b/ruby3.4-stud.yaml @@ -0,0 +1,52 @@ +# Generated from https://github.com/jordansissel/ruby-stud +package: + name: ruby3.4-stud + version: 0.0.23 + epoch: 0 + description: Common software patterns I use frequently. + 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/jordansissel/ruby-stud + tag: v${{package.version}} + expected-commit: 19b1e34f75637c502b150ce203741ce7db1b9d12 + + - uses: ruby/build + with: + gem: ${{vars.gem}} + + - uses: ruby/install + with: + gem: ${{vars.gem}} + version: ${{package.version}} + + - uses: ruby/clean + +vars: + gem: stud + +update: + enabled: true + github: + identifier: jordansissel/ruby-stud + strip-prefix: v + use-tag: true + +var-transforms: + - from: ${{package.name}} + match: ^ruby(\d\.\d+)-.* + replace: $1 + to: rubyMM diff --git a/ruby3.4-thread_safe.yaml b/ruby3.4-thread_safe.yaml new file mode 100644 index 00000000000..435e5e9dcf4 --- /dev/null +++ b/ruby3.4-thread_safe.yaml @@ -0,0 +1,52 @@ +# Generated from https://github.com/ruby-concurrency/thread_safe +package: + name: ruby3.4-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 diff --git a/ruby3.4-tilt.yaml b/ruby3.4-tilt.yaml new file mode 100644 index 00000000000..3da4ccf392d --- /dev/null +++ b/ruby3.4-tilt.yaml @@ -0,0 +1,61 @@ +# Generated from https://github.com/jeremyevans/tilt +package: + name: ruby3.4-tilt + version: 2.4.0 + 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: a237d86a49170aed4aee6d3516e102d8d5cdd3ad + 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 diff --git a/ruby3.4-timeout.yaml b/ruby3.4-timeout.yaml new file mode 100644 index 00000000000..b9cf965bbd2 --- /dev/null +++ b/ruby3.4-timeout.yaml @@ -0,0 +1,51 @@ +package: + name: ruby3.4-timeout + version: 0.4.2 + 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: 2f5252299403e00135b694455fb31a2bded32cd5 + 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 diff --git a/ruby3.4-timers.yaml b/ruby3.4-timers.yaml new file mode 100644 index 00000000000..797f57db214 --- /dev/null +++ b/ruby3.4-timers.yaml @@ -0,0 +1,54 @@ +package: + name: ruby3.4-timers + version: 4.3.5 + 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: e16c2eca80b7dd574a17b3761a185d19676ed907 + 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 diff --git a/ruby3.4-traces.yaml b/ruby3.4-traces.yaml new file mode 100644 index 00000000000..50dd1aa3efe --- /dev/null +++ b/ruby3.4-traces.yaml @@ -0,0 +1,85 @@ +package: + name: ruby3.4-traces + version: 0.14.1 + 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: e15e6c4af451393e0482391a9d278ac5d00cd3aa + 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 diff --git a/ruby3.4-uri.yaml b/ruby3.4-uri.yaml new file mode 100644 index 00000000000..1fb90f62384 --- /dev/null +++ b/ruby3.4-uri.yaml @@ -0,0 +1,50 @@ +package: + name: ruby3.4-uri + version: 1.0.2 + 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-3.4 + - ruby-3.4-dev + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/ruby/uri + tag: v${{package.version}} + expected-commit: e46960a467f2ed398731286ec78b899e1a01655f + + - 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 diff --git a/ruby3.4-version_gem.yaml b/ruby3.4-version_gem.yaml new file mode 100644 index 00000000000..364b5f71bf5 --- /dev/null +++ b/ruby3.4-version_gem.yaml @@ -0,0 +1,56 @@ +package: + name: ruby3.4-version_gem + version: 1.1.4 + 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: 5086ef73754282e1e878539819e76915bce56103 + 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 diff --git a/ruby3.4-webrick.yaml b/ruby3.4-webrick.yaml new file mode 100644 index 00000000000..c236ad10985 --- /dev/null +++ b/ruby3.4-webrick.yaml @@ -0,0 +1,54 @@ +package: + name: ruby3.4-webrick + version: 1.9.1 + 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: 307f24c0e9624e56fdbe8ebbe6df03ee25e9e57b + 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 diff --git a/ruby3.4-yajl-ruby.yaml b/ruby3.4-yajl-ruby.yaml new file mode 100644 index 00000000000..a5de7470f8b --- /dev/null +++ b/ruby3.4-yajl-ruby.yaml @@ -0,0 +1,66 @@ +#nolint:valid-pipeline-git-checkout-commit,valid-pipeline-git-checkout-tag +package: + name: ruby3.4-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 + commit: e8de283a6d64f0902740fd09e858fc3d7d803161 + +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 + + - 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