<#445 Feat: ARM64 Linux/MacOS Pact Ruby Standalone...
# pact-js-development
g
#445 Feat: ARM64 Linux/MacOS Pact Ruby Standalone Pull request opened by YOU54F Changes to traveling ruby to support additional platforms Details of changes made to travelling ruby PR's to Travelling ruby to update the supported archs • phusion/traveling-ruby#132 • phusion/traveling-ruby#133 Which means we can now support Details of changes made to pact-ruby-standalone • pact-foundation/pact-ruby-standalone#100 • https://github.com/pact-foundation/pact-ruby-standalone/releases/tag/v2.0.0 Details of changes made to pact-js These have been consumed in the pact-js project, and tested cross platform In order to test ARM64 on MacOS, and Linux, I have utilised cirrus-ci, which is free for open-source usage (within reasonable limits) Related Issues • closes #407 • closes #416 • relates to #435 • will be useful to users to move out of pact-js-core into pact-cli as this will increase the final bundle size of • 259mb unpacked https://www.npmjs.com/package/@pact-foundation/pact-core • 401mb unpacked https://www.npmjs.com/package/@you54f/pact-core/v/13.14.0 • relates to #347 • changes can be backported to pact-node branch • changes can include
ia32
for 32-bit windows, for
pact-node
which is ruby backed. We don't currently ship 32 bit versions of pact_ffi, and I don't believe we've had a request yet (it is possible to build for them, but as to how far they will stretch, I am unsure) User facing notes • macOS arm64 (m1/m2) users will no require require installing rosetta • If a user wishes to run in a rosetta enabled shell or session, they will need the appropriate x64 node version (see
.cirrus.yml
for an example of how one can install x64 versions with
nvs
, but
pact-js-core
will determine this and use the appropriate FFI library, and now ruby standalone. • Debain based users will need
libyaml-dev
, otherwise they will see the following error when executing the ruby standalone
Copy code
libyaml-0.so.2: cannot open shared object file: No such file or directory - /tmp/cirrus-ci-build/standalone/linux-arm64-2.0.0/pact/lib/ruby/lib/ruby/3.2.0/aarch64-linux/psych.so
pact-foundation/pact-js-core ✅ All checks have passed 22/22 successful checks