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

Breaking change notice for version 10.0.0 GREATLY underrepresented #1103

Closed
matthewlein opened this issue Jan 20, 2023 · 15 comments
Closed

Breaking change notice for version 10.0.0 GREATLY underrepresented #1103

matthewlein opened this issue Jan 20, 2023 · 15 comments
Assignees

Comments

@matthewlein
Copy link

matthewlein commented Jan 20, 2023

Overview/summary

I have been working through an enormous amount of bugs and issues from upgrading past 10.0.0 that the readme didn't come close to preparing me for.

The old activeresource connections between things (like order.transactions) made navigating between data models easy. This is removed in almost every case (but not all like order.customer, which is also confusing). It doesn't error, it just returns nil like every other undefined method. order.asdf should error but it doesn't. There's no way to differential nil values from missing methods.

Many values are now hashes instead of structs— You can't access the values in the same way. For example order.note_attributes is now a hash, so any iteration over them fails.

This has been a REALLY time-consuming and error prone upgrade.

@marclennox
Copy link

#truth

Imagine the development cost being needlessly foisted on companies using this gem for breaking changes that don't add much (if any) value to the consumers.

FWIW, we've decided to just use HTTParty directly to the REST API rather than migrate to v10+ of this gem.

@tim-millar
Copy link

One annoying but undocumented (as far as I can tell) change that we ran into is that you can no longer use rspec's partial test doubles to mock the API classes - perhaps due to calls to the new Context.setup method changing what is being referenced by the class constants.

@marclennox
Copy link

One annoying but undocumented (as far as I can tell) change that we ran into is that you can no longer use rspec's partial test doubles to mock the API classes - perhaps due to calls to the new Context.setup method changing what is being referenced by the class constants.

Yep, we ran into this also... it's part of the reason why we're ditching the gem entirely.

@panckreous
Copy link

FWIW, we've decided to just use HTTParty directly to the REST API rather than migrate to v10+ of this gem.

Ah yes, the friends we make along the way. I thought I was alone in this. What a letdown.

The most disappointing part to me is that multiple issues have been opened about this over time and just... nothing. You'll see shopify devs responding to and working with all the other issues, actively working on other aspects and just... nothing.

(In my head canon I believe they all want to respond and be as helpful as they are with everything else here and throughout the shopify ecosystem, but they're just not allowed to, which happens and is out of their control.)

But ya, to then come back and see oh hey another issue about this is automatically closing without any sort of response or acknowledgement... Again, I don't blame any of the devs and assume theyre all friendly wonderful people but... ya. Ugh.

Maybe it'll get better: the recent commits by @ewalk153 look like a good sign, especially the [first of many?] documentation updates. And with all the work they do with and on the rails codebase, maybe they'll see rails/rails@acf4816 and draw some inspiration from it.

I hope after this issue auto-closes there won't be a need for another one to be opened. If you (yes, you!) got to this issue because the problems all persist and you're trying to get more insight, I definitely recommend bailing on this gem and just accessing the api directly.

A sincere, non-sarcastic thank you to all the shopify devs for all the continual work you all do, and the battles you fight internally on our behalf that we'll never know about.

@github-actions
Copy link

This issue is stale because it has been open for 60 days with no activity. It will be closed if no further action occurs in 14 days.

@github-actions github-actions bot added the Stale label Mar 26, 2023
@Alagaesia93
Copy link

NOT STALE

@marclennox
Copy link

The lack of any response is certainly getting stale.

@github-actions github-actions bot removed the Stale label Mar 30, 2023
@github-actions
Copy link

This issue is stale because it has been open for 60 days with no activity. It will be closed if no further action occurs in 14 days.

@github-actions github-actions bot added the Stale label May 29, 2023
@gsempe
Copy link

gsempe commented May 30, 2023

I believe issues should be marked as stale, only if the last person who contributed is part of the Shopify team.

@github-actions github-actions bot removed the Stale label May 31, 2023
@DenisRupp
Copy link

I am having trouble with the update to version 10 as it has affected all REST and GraphQL requests. The readme is not useful as it does not provide enough information on the breaking changes.

@github-actions
Copy link

This issue is stale because it has been open for 60 days with no activity. It will be closed if no further action occurs in 14 days.

@github-actions github-actions bot added the Stale label Aug 14, 2023
@panckreous
Copy link

not stale

@nelsonwittwer
Copy link
Contributor

Writing an upgrade doc from v9 is on our roadmap for the next 6 week cycle. We agree, we definitely need a better guide for upgrading.

@zzooeeyy
Copy link
Contributor

zzooeeyy commented Sep 26, 2023

Hey all!
We recently made improvements to our documentation for these upgrades as well as the usage for the latest version.
Here are some quick links to our references:

ShopifyAPI

  • Breaking change notice for version 10
    • This includes what's new, a more comprehensive upgrade guide and usage documentation
  • Performing OAuth
    • Step by step guide on how to use ShopifyAPI gem to trigger the OAuth flow
  • Making REST API calls
    • Briefly explains how to call REST in 2 different ways - using the Rest Admin Client or using REST resources.
  • Making GraphQL API calls
    • Making API calls with GraphQL Admin Client
  • Custom Apps
    • Small guide on how to construct a session object to be used for making authenticated API calls for custom apps if you already have an API key.

ShopifyApp

If you're using our ShopifyApp gem, here are more references:

  • Authentication
    • How to use ShopifyApp to authenticate your app on a shop
  • Sessions
    • How to use session storage in ShopifyApp, and use our provided controller concerns to load sessions to make API calls
  • Controller Concerns
    • Further documentation on controller concerns.

We're doing our best to improve the development experience and really appreciate y'all's patience with our response.

Please let us know if there are specific topics you'd like to see more documentation on.

@zzooeeyy
Copy link
Contributor

Closing this ticket now that there are improvements made to the docs. Feel free to open other tickets for specific issues you encounter and we'll try our best to answer your questions. Thanks everyone!

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

9 participants