-
Notifications
You must be signed in to change notification settings - Fork 130
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
[Feature]: deploy vs config push can delete WIP extensions not in main branch #3343
Comments
Hi @hsdonkin, Shopify apps now feature unified deployment of extensions and app configuration. This ensures that any dependencies between app configuration and extensions are versioned and released together. For staging and development, we'd recommend using a separate copy of your app in the Partner Dashboard, which you can release independently. Learn more about releasing to different apps from the CLI in the App Configuration documentation. |
@isaacroldan here's a usecase for when this would actually be needed - I don't use the Remix CLI and have separate folders for extensions and the actual app ref: @kinngh/shopify-app-js. What happens here is if I just want to push my config to Shopify, I loose all my extensions wether in dev and prod (with dev and prod being independent apps in my partner dashboard). If there's a way to just push the config up, that'd be really great since not everyone wants to be locked into Remix^ |
Hi @kinngh, this has nothing to do with Remix, you can still use the framework and folder structure of your preference. The only difference is that now during By default the CLI looks for extensions in I'm curious to know more about your current setup, where did you you had your toml file before this CLI change? can you share more about your project folder structure? |
|
@hsdonkin / @kinngh I have the same issue. It's entirely plausible that a developer works on a feature named feature_1 and introduces a UI Extension with certain access scopes. In parallel, another feature named feature_2 is worked on with a new (separate) UI Extension with different access scopes. There should be a way that we can work with one development app that:
In other words, there needs to be a cleaner or automated way to sync app scopes to the ones defined within SolutionBring back |
Thanks for getting back to me @isaacroldan !
Yeah this is what's kind of borking up our development flow, and might need some soul searching in Shopify app development in general. There's not really a practical way to separate prod / staging / development environments without creating whole new apps. Our current DX:
|
Thank you everyone for your feedback, i'm passing it internally so that it is considered in the next iterations of the platform. @hsdonkin The CLI supports having multiple toml files, you can have one for production called Each person in the team might modify only the staging or personal toml, but never the production one. Use If you delete an extension in a branch that's using a custom dev toml, it will only affect that linked app and not any other, so it's safe. Since each person uses its own development app with a custom toml, everyone can work at the same time with different tunnels. Just remember to use different names for each app so they are easy to identify in the store if you have multiple installed. I think this should solve all the issues you mention right? let me know if it doesn't or you have any question. |
I believe another scenario that isn't taken into consideration is every time a url update happens that creates a new release, which means in dev apps the entire release is polluted with meaningless releases that are just URL updates for when you swap out your tunnel URL and no development has been done on the extension side. For production apps this makes sense, but pollutes dev instances. |
@isaacroldan This is viable, but still has a couple issues! Our pain points still include re-re-requesting API scopes for each development app though, instead of being able to have a development environment within a single app. For subscriptions and customer APIs, there's a whole scopes request process, so it's not easy to bring on a new developer. We tried creating a new development app, but had some problems:
We're making the best of it, but not looking forward to adding a third developer to the project |
This issue seems inactive. If it's still relevant, please add a comment saying so. Otherwise, take no action. P.S. You can learn more about why we stale issues here. |
Bumping this because it's still a really relevant issue for us 😞 and because of this our theme app extensions have become malformed, and our app is connected to deleted extensions |
@isaacroldan anyway to reenable the shopify app config push command? We don't want to have to push the entire app and its extensions each time a change has to be made in config. Our extension functions for example use Rust, and it's well known that compiling Rust takes a lot of time, I can't even imagine how much time is taking for people who also use the Shopify app template. In our case we just want to opt in for the new auth flow, but there's no button in the admin dashboard to do this. |
I'm afraid this is not possible, the system is designed to deploy everything as a single version. @hsdonkin We are working on improving the matching logic between local and remote extensions. Can't promise any dates though. You should be able to reset the current connection by removing the |
I'll close this issue since there are no updates and the original message has been addressed. If you have any other problem with the CLI please open a new issue 🙏 |
What area(s) will this request affect?
App, Extension
What type of change do you want to see?
Substantial change to existing feature
Overview
We have a project with a WIP theme extension in a feature branch. I need to update our access scopes, but can't use
config push
anymore, due to CLI changes.When I run
deploy
, I get the message:Motivation
I don't want to run a full deployment and delete our WIP extension, but I do need to update the access scopes...
The text was updated successfully, but these errors were encountered: