Pin Modules to Releases

Today we noticed a pretty crucial behavior that seems wrong to me and impacted business operations. We rely on releases to work so we can develop safely without breaking live apps. We also rely on modules. I had expected the pin in the module to be respected, but actually apps embedding the module pull the latest underlying instance. This means if you're developing and under the impression that pinning latest is a safe way to build you are actually modifying live apps people are using. Here's a video of the issue: Loom | Free Screen & Video Recording Software

I'm curious how you all expect modules and releases to work together? I would strongly say they should get pinned just in the same way apps are (so functionally they work like an iframe would) otherwise you have a false illusion of safety when developing apps.

3 Likes

+1 on this matter, we just encountered the same issue. Application will always use the latest changes in modules regardless of the release cycle (published version)

Thanks for the reports @Anil and @philippe-boyd-maxa. We have a fix in place internally that is going through QA right now. We will post again here once the fix has been released.

1 Like

any news on the fix; still in QA on your end?

Hey Philippe!

The current status on this is that the new behavior is available but behind a feature flag until we build out a migration path to be certain that it won't impact existing apps. If you'd like to have this enabled for your org please write in to the intercom chat to confirm your identity and which subdomain or instance of retool you would want it enabled on:

Here is a brief description of the change that would occur if we turned on the flag.

  • Flag on: your apps will immediately start loading the published release, not the latest version, if a module currently has a published release
  • Flag off (current behavior) your apps will load the latest save
3 Likes

I was very surprised that I could no longer access my module's Releases tab today (I haven't checked in at least a month), and that my changes were going into production immediately! Maybe they always went into production immediately, and creating versioned releases of my module was only for show? :grimacing:

I'll try to get that feature flag turned on for my org, too.

Hey @geometric!

Happy to help here! This is correct, releases in Modules until recently were not working. We did however just recently add this functionality behind a feature flag. I'd be happy to toggle them on for your org if you'd like!

Thanks, Chris. I've already worked with support to get it turned on, and I believe it's working nicely.

Awesome, great to hear! :slight_smile:

Hi Chris, is it available or on-prem deployments?

@**philippe-boyd-maxa **— I believe so, this would also be behind a feature flag. I'd be happy to toggle this on for your org as well. If you'd like for us to toggle this on for your org, would you mind messaging us through the support chat?

Hi @Chris-Thompson,

We have enabled the feature flag for our organization, but I am facing a small issue. Whenever I make an update to the module without publishing it, I am unable to find a way to test it at the application level without publishing the module to the live version.

Could you please guide me on how I can test my modules now?

Thank you.

Hello @heynoway!

Unfortunately, this isn't supported at the moment :confused: We've gotten a couple of requests for changing that functionality since the workaround is a pretty big lift. You can track them here and here.

In the meantime, the only way to test a module in an app before publishing a new release is to duplicate it and import the copy into your app for testing or if you want apps to use different versions of the module.