Best practices for CDN and version management


We are looking into adopting overt-the-air updates of our transactions. (in our case this would be with the lingui-string-exporter and Crowdin OTA JS Client, but that is not relevant for the question.)

The main question is: How do we ensure that older versions of our app can still access their translations?

Say we have version 1.0.0 of our app, and it has many translations. Over time we update the translations, and then version 1.0.1 gets released. In the new version some new strings are added, but also some are removed. Now, what will happen if we publish our new translations?

Will the (removed) transactions for 1.0.0 become unavailable? How can we prevent this? What are the best practices in this situation?

The only option I see at this time would be to create a new Distribution for each new app release (or each new version where source strings are removed). Is that the best practice? Or are there better ways of achieving this?

Grateful for any insight!


Hi @bert.goethals,

In such a case we would recommend creating a new distribution for each release where strings were deleted from Crowdin. The old distributions should remain not released for old app version support.

@Olena I assume you meant: “The old distributions should remain ~not~ released for old app version support.” instead of “The old distributions should remain released for old app version support.”?

Hi @bert.goethals

Sorry for confusing you!

You should not release the old distributions because the release will overwrite previously distributed translations.

Ok, understood @Olena

Then I have a suggestion to follow up on this: An ability to “lock” a distribution. Meaning it can’t be updated anymore, but remains available.

We will have to take into consideration, in adopting this feature, what we would do if a user would ernouiusly hit the “Release” button on a wrong distribution, or worse hit the “Release All” button.

Hi @bert.goethals,

Consulted with our product team and we have created an improvement task on the matter,

Thank you for your feedback :slight_smile: