27

This issue is only related to App Source apps because of AS0002 and AS0004 rules.




The issue is already described here : https://github.com/microsoft/AL/issues/5818




To summarize (app A and B are App Source apps):


1. App A can declare an enum.


2. App B can take a dependency to app A and use the enum as the type a table field


3. App A can mark the enum as ObsoleteState = Pending and then remove the enum in a future version


  The reason can also be because app B wants to remove its dependency to app A at some point.


4. App B is now in a dead end: the field cannot be removed (because of AS0002) or its datatype cannot be changed (because of AS0004).




My suggestion is not to prevent apps from removing enums. I strongly think that at some point and with the correct obsolescence path, any change should be allowed.




My suggestions are:


  • Either at some point AS0002 must be relaxed (if the field is already marked as ObsoleteState = Removed for instance) (In my opinion, it is not the safer solution)
  • Either AS0004 must be relaxed to allow switching from one enum to another enum (if the field is marked as ObsoleteState = Pending or Removed for instance).



The current reason since dependent extensions may break marked on the documentation page is not relevant as many AppSourceCop rules already allow to break dependent extensions IF the right obsolescence process is applied.


Category: Development
STATUS DETAILS
New