Skip to content

Add Ruby 3.3 support.#419

Open
jackdpeterson wants to merge 1 commit intoaws:mainfrom
jackdpeterson:add_ruby_3_3_support
Open

Add Ruby 3.3 support.#419
jackdpeterson wants to merge 1 commit intoaws:mainfrom
jackdpeterson:add_ruby_3_3_support

Conversation

@jackdpeterson
Copy link
Copy Markdown

@jackdpeterson jackdpeterson commented May 6, 2026

Fixes #418

Context: Ubuntu 26.04 ships with Ruby 3.3 as the default Ruby-Full installable and no longer Ruby 3.2.

Follow-up task: The .deb packaging appears to be performed outside of this repository. Requires AWS investigation to cross the finish line.

I confirmed that even without these changes and manually patching the .deb file I get successful code-deployment on Ubuntu 26.04. This just formalizes support and should allow re-builds to work as expected.

I took an opinionated approach here to dependency management (flexible constraints add unpredictability on a library that isn't really being pulled down by anything else but rather packaged to .deb or .rpm's fully baked).

This also fixes some deprecations in zip and variation on PKCS7 that kiro-cli identified when testing.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@jackdpeterson
Copy link
Copy Markdown
Author

Actually, I'm going to squash and re-push this because there are some other dependency issues -- versions are too loose leading to differing behavior depending on which ruby version is being used.

@jackdpeterson jackdpeterson force-pushed the add_ruby_3_3_support branch from 47c5bd2 to 181efa3 Compare May 6, 2026 18:41
- Add Ruby 3.3 support, drop Ruby < 2.7 (align with gemspec >= 2.7.0, < 3.4)
- Update ruby_versions in bin/install and bin/codedeploy-agent to [3.3, 3.2, 3.1, 3.0, 2.7]
- Update GitHub Actions workflow to test matrix across all supported Ruby versions
- Fix minitar: update require path from 'archive/tar/minitar' to 'minitar',
  remove obsolete 'include Archive::Tar'
- Fix rubyzip: replace removed Zip::File::CREATE with create: true,
  handle extract API differences between rubyzip 2.x and 3.x
- Fix PKCS7 test assertions to handle OpenSSL error message variations
  across versions (nested asn1 error vs no start line)
- Pin all dependencies to exact tested versions for deterministic builds
- Add Makefile for local Docker-based testing across all Ruby versions

Validated 449 tests passing with 0 failures across Ruby 2.7, 3.0, 3.1, 3.2, and 3.3.
@jackdpeterson jackdpeterson force-pushed the add_ruby_3_3_support branch from 181efa3 to 6da056b Compare May 6, 2026 18:46
@jackdpeterson
Copy link
Copy Markdown
Author

Validated against ruby 2.7, 3.0, 3.1, 3.2, 3.3 w/ Added Makefile command to validate against current tests. Squashed, ready for review.

I'd also recommend retiring Ruby 2.7 from the compatibility matrix to align with what's shipping in current and previous LTS releases. 2.7 hasn't been shipped by default in most places and no longer receives security updates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CodeDeploy Agent installation fails on Ubuntu 26.04 LTS due to Ruby 3.3 incompatibility

1 participant