Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: Breaking changes between 1.92.0 and 2.0.0? #101

Closed
michaelholtermann opened this issue May 2, 2023 · 10 comments
Closed

Question: Breaking changes between 1.92.0 and 2.0.0? #101

michaelholtermann opened this issue May 2, 2023 · 10 comments

Comments

@michaelholtermann
Copy link

Sorry for bothering, but I wonder if there is any breaking change between 1.92.0 and 2.0.0, beside the file names of the release artifacts?

We are developing pact tests in Go, which are executed during CI and rely on pact-ruby-standalone (https://docs.pact.io/implementation_guides/go/readme#installation), so I assume the update won't break our tests or tool chain, but I'd like to be sure.

Thanks a lot!

@YOU54F
Copy link
Member

YOU54F commented May 2, 2023

hey buddy,

me too 😅file name changes, additional platforms and changes to the underlying build system for travelling ruby in order to move from Ruby 2.4 to 3.2.2

hopefully nothing should break but even with all the testing in the world, we won’t truly know until it’s in the hands of the users.

i assume you are using the non beta v1 version of pact go?

@michaelholtermann
Copy link
Author

Hi @YOU54F,

yeah, you are right, of course it's impossible to know all implications beforehand, so please excuse me if my question implied that :-)

Your comment implies that there is no breaking change you are aware of, e.g. some changes to the CLI, which is totally fine, IMHO.

I'm a believer of SemVer and a bit nervous if the major version of some dependency increases. Yes, we are on pact-go v1.7.0, so I guess I should stay with pact-ruby-standalone v1.x?

I can run some tests with pact-go v2-beta if it helps, though.

@YOU54F
Copy link
Member

YOU54F commented May 2, 2023

I'm not sure pact-go v2 beta uses the standalone, although it might do for broker related functionality, if it does help testing is always appreciated

I think with the jump from ruby 2.4 to 3.2.2 and the build system changes for macOS users, which previously used the x86_64 package under rosetta, and for windows users who now have both the 32 and 64 bit versions, it is warranted.

I'd like to honour semver rules, and thought I was doing a decent there with the major bump

@YOU54F
Copy link
Member

YOU54F commented May 2, 2023

It seems linux users (debian based at least) will need libyaml-dev from testing, otherwise they will see this error

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#445

It will be something that probably wants fixing in the packaging system (traveling ruby) but for now that seems to do the trick 👍🏾

@YOU54F
Copy link
Member

YOU54F commented May 5, 2023

Problemo

Not all ruby gems packed in pact-ruby-standalone, are ruby 3.2 compatible, oddly this either hasn't shown up across several test suites and test, but appears to be reproducible in some circumstances

Known errors on initial testing

Immediate remediation

  1. ✅ Merge this change to install script - allowing users to pin version with install script
    1. fix: Update install.sh to allow pinning of version #104
  2. ✅ Set 2.0.0 release to pre-release
    1. https://github.com/pact-foundation/pact-ruby-standalone/releases/tag/v2.0.0
  3. 🚧 homebrew-pact-ruby-standalone requires a revert to pick up 1.92.0 or provide version specific formula
  4. 🚧 applied changes to pact-python should probably be reverted

Longer term resolution

  1. Upgrade all relevant gems to 3.2

List of packed ruby gems

( I think this is the lot, pact-stub-service comes in the verifier)

Upgrade notes

  • Pact-mock-service
    • needs at least fakefs gem updating as throws error on 3.0+

@gregtyler
Copy link

Hello! Is there any timeline on reverting the homebrew package? I've run into this error today and wondering if I need to revert to installing manually if homebrew's going to be out-of-action for a while.

@YOU54F
Copy link
Member

YOU54F commented May 10, 2023

Hello! Is there any timeline on reverting the homebrew package? I've run into this error today and wondering if I need to revert to installing manually if homebrew's going to be out-of-action for a while.

howdy! done @gregtyler. see above PR. you might need to untap/tap it rather than a brew update pact-ruby-standalone but see how you go

@gregtyler
Copy link

gregtyler commented May 10, 2023

Awesome, thanks so much Yousaf! 🌮

@YOU54F
Copy link
Member

YOU54F commented Jun 8, 2023

Hey @gregtyler

Just to let you know I am have released a new version of homebrew-pact-ruby-standalone

if you have any issues, you’ll be able to stick with the v1.x branch with the following command

https://github.com/pact-foundation/homebrew-pact-ruby-standalone#previous-versions

@YOU54F
Copy link
Member

YOU54F commented Jul 28, 2023

2.0.3 seems pretty stable, we've had no more reports.

TL;DR - Breaking changes are the dropping of linux 32-bit and file name changes to the release artefacts (which might affect users scripts)

Thanks for raising @michaelholtermann - am going to close this one off now

@YOU54F YOU54F closed this as completed Jul 28, 2023
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

No branches or pull requests

3 participants