65

With every major release, there comes a period where sometimes we need to publish apps on the store in two different versions: one which uses events and features only present in the new major, and one which is still compatible with the old major.


This is because customers have 60+ days in order to plan their upgrade to the new major, so for example, we have customers on SaaS environments both on BC21.x and on BC22.y.


What happens if we add new objects or new public entities to our app, in both versions, AFTER we have uploaded a BC22 compatible app?


The BC21 app gets validated against the "NEXT" version, which to AppSource is the first available version of the BC22 app.


Of course, the initial version of the BC22 app didn't contain the new objects / procedures / whatever, so we get a validation error because of the "breaking changes" that the first version for BC22 has when compared to the latest version of BC21.


Note that upgrades work flawlessly, and the error is only during the validation process.


We as an ISV think that the latest version for BC21 should be validated against the latest version for BC22.


Microsoft doesn't agree, and suggested that the new objects / etc. on the BC21 app should be introduced as obsolete, in order not to raise validation errors.


We think marking them as obsolete would be confusing to developers that customise our apps.


The alternative is not to publish versions for BC21 altogether. We wouldn't want this, as the BC21 version for OnPrem would still be developed in parallel to the BC22 one, and what if we need to publish a fix also for SaaS?


Please validate apps against the latest available version, since it will be the one that will be installed after major/minor upgrades starting from this CU!

Category: Development
STATUS DETAILS
Completed
Ideas Administrator

Thank you for this suggestion! Since early December 2023 we have validated AppSource app hotfixes against the latest version on the next targeted major/minor Business Central

Comments

B

This is how it should be implemented and not the current way.

Currently it is unnecessarily restrictive and prevents proper maintenance of older versions.

Category: Development

B

If 23.1.0.0 was broken and needed to be hotfixed (lets call it 23.1.1.0),

you don't want any new installs / upgrades to use 23.1.0.0.


This can be enforced in AppSource and if that's the case, it should also apply to the validation pipelines.

Why should the upgrade validation be against a version that no one can install / upgrade to?


Now if you need to backport the same hotfix from 23.1.1.0 to 23.0.x.x, you currently can't, because 23.0.x.x is (and will always be) validating against 23.1.0.0, a release that might have been corrupt but you have no control over, because it's stuck as the version the validation pipeline uses.


The only workaround for us is to always mark everything new as Obsolete-Pending, risking actual breaking changes, because we can't differentiate actual warnings from workaround-based warnings anymore. It also adds unnecessary noise to backports and I doubt this is where MS wants AppSource submissions to turn to.


I honestly think this is just an oversight / bug, rather than an idea / feature request - at least I hope the problem is clear.

Category: Development

B

https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-hotfixing-appsource-app


Example:


- On BC22 we have an app with Ver 22.01

- On BC23 we publish a new version 23.00 (just code changes no objects adds, no breaking changes)

- On BC23 then we publish a new version 23.01 with objects adds

- On BC22 we want to publish an hotfix Ver 22.02 with an hotfix.


Against what version this app is validated ? CURRENTLY AGAINST Ver 23 We are asking that to validating against the latest instead .

 

( validating against the first of the next major is wrong and that is what was causing to block publishing hot fixes on previous ver)

Category: Development