You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Identify all Ruby codebases which need updating to Ruby 3.1 or higher
Identify all consumers of ruby codebases
Document "Rube Goldberg" machine for
Pact Ruby Reference Core as referenced here in the dependency graph of doom
Pact Rust Reference Core
Update to at least, Ruby 3.1, preferably Ruby 3.2 across all affected repos
Update all affected repos
Test all affected repos
Why?
Users of our pact-ruby-standalone project, have been stuck on a packaged Ruby 2.4 run-time due to the build system traveling-ruby, being out-of-maintainence. It has been revived by your very own Devo Avo, into the 21st century with
Update to Ruby 3.1.2 & 3.2.2
Support for Arm64 Darwin
Support for Aarch64 Linux
Support for x86 and x64 windows
What happened?
pact-ruby-standlaone 2.0.0 was released
Issues identified by users / maintainers
Requirement to install libyaml-dev for debian based users
Error when writing pact files for pact-go-v1 where users are asked to pin the version of the standalone, but provided a script which returns the latest.
Root cause?
An error in pact_mock-service was reproducible in CI, when using Ruby 3.2.2
Downgrading to Ruby 3.1.2 resolved the issue.
What are we doing about it?
Set pact-ruby-standalone2.0.0 release to pre-release rather than latest to avoid breaking existing users scripts
Updated pact-ruby-standaloneinstall.sh script to allow users to fix to particular tag when downloading, over its previous behaviour of using latest
Updating all ruby gems to be tested from 2.7 through to 3.2 in CI across
macOS / windows / linux
x86_64 versions
macOS / linux
arm64 versions
Identifying the root cause of the error above, stopping us moving to 3.2 and looking to help resolve
Releasing pact-ruby-standalone with ruby 3.1.2
Releasing homebrew-pact-ruby-standalone with versioned revisions so you can switch between or pin in your CI
But aren't we moving to the rust core?
Yes! But we understand not all languages are there right now, and we don't have 100% feature parity in the pact-ruby-standalone package compared to the Rust reference core. There is actually very little, with potentially the only limitation being the pact_broker-client functionality.
Happy to be shown otherwise! If anyone is interested in build out CLI tools in Rust, we have some examples you can follow, if anyone wanted to make a Rust based implementation of the pact_broker-client. Whilst we know it has value, the core maintainers are busy delivering other features, and fixes to users, and therefore it isn't something we are likely to pick up soon, but we are always happy to guide.
Aim
Why?
What happened?
libyaml-dev
for debian based userspact-go-v1
where users are asked to pin the version of the standalone, but provided a script which returns the latest.Root cause?
pact_mock-service
was reproducible in CI, when using Ruby3.2.2
3.1.2
resolved the issue.What are we doing about it?
pact-ruby-standalone
2.0.0
release topre-release
rather thanlatest
to avoid breaking existing users scriptspact-ruby-standalone
install.sh
script to allow users to fix to particular tag when downloading, over its previous behaviour of usinglatest
2.7
through to3.2
in CI across3.2
and looking to help resolve3.1.2
homebrew-pact-ruby-standalone
with versioned revisions so you can switch between or pin in your CIBut aren't we moving to the rust core?
Yes! But we understand not all languages are there right now, and we don't have 100% feature parity in the
pact-ruby-standalone
package compared to the Rust reference core. There is actually very little, with potentially the only limitation being thepact_broker-client
functionality.Happy to be shown otherwise! If anyone is interested in build out CLI tools in Rust, we have some examples you can follow, if anyone wanted to make a Rust based implementation of the
pact_broker-client
. Whilst we know it has value, the core maintainers are busy delivering other features, and fixes to users, and therefore it isn't something we are likely to pick up soon, but we are always happy to guide.Related issues
Repositories affected and associated PR's
Dependency chain releasing instructions
pact-support gem
pact ruby standalone package
Ruby Goldberg Machine
Ruby Standalone Consumers Goldberg Machine
Rust Goldberg machine
Rust FFI Consumers Goldberg machine
Java Goldberg machine
Pact Ruby Standalone Consumers
Versions
Tested using
Test runs
The text was updated successfully, but these errors were encountered: