Versioning strategy for UI packages #4349
Replies: 2 comments 5 replies
-
I personally think this is fine due to following Microsofts untimely UI cutoffs. My only question to you is would you expect backwards compatibility to work by design or by accident? For example if you are about to release CSLA 8.9.9 (random number) but the CSLA.MAUI package was last supported at version 8.4.5. As you're not updating the MAUI package anymore could I expect to use the latest CSLA (while your doing version 8) with the latest CSLA.MAUI? If the answer is this wouldn't be supported then as long as this is documented somewhere I am personally fine with it. |
Beta Was this translation helpful? Give feedback.
-
I'm not surprised by this as it has existed in one way or another for Xamarin and Xamarin Forms long before MAUI became a thing. iOS, Mac Catalyst and Android are all on release cycles Microsoft does not control and require updates to MAUI to happen outside of the normal .Net releases, many of them happening day one of the platform releases. I was surprised when MAUI was first announced being tied to .Net, the .Net release clock could never work. Of course, that didn't last long and now MAUI releases happen off cycle. Apple almost forces you to update your MAUI in order to tie into the latest Xcode version. While downloading an older Xcode version is possible Apple makes is a pain and we will say highly encourages you to update. As a result the current MAUI version is normally tied to the latest Xcode version and when a new version of Xcode is released, so is a new version of MAUI. This is why old .Net versions of MAUI are retired so early, it is a pain to keep updating them in perpetuity to deal with the latest 3rd party SDKs. What do I think this likely means for CSLA.MAUI? Likely that it should be on its own release cycle and a new one out whenever MAUI is updated, independent of when CSLA is released. The version of CSLA it is tied to should depend on the version of .Net selected. i.e. if they are using .Net 8, CSLA.MAUI should require some version of CSLA 8.x, i.e. CSLA Version >= 8.* As you know nuget allows this with floating versions so it should need to have a particular version of CSLA to work, we can just say it needs to be greater or equal to version XYZ. We would then use multi targeting in the nuget packages to have a compiled version of CSLA.MAUI that targets .Net 9.x and that would presumable have a dependency on CSLA 9.x, i.e. CSLA Version >= 9.*. Which I also assume means that until CSLA for .Net 9 is released they should be using MAUI targetting .Net 8. |
Beta Was this translation helpful? Give feedback.
-
I'd like to have a discussion about something that's becoming a bigger problem as time goes on: UI frameworks are no longer necessarily coupled to .NET releases.
For example, MAUI 8 is going out of support in May 2025, long before .NET 8 goes out of support.
Although we're working toward the CSLA 9 release right now, I expect CSLA 8 will be in use - and still get patches - until .NET 10 comes out and makes .NET 8 go away.
That means there's a gap from May-November (probably) during which CSLA 8 releases will not be able to include MAUI packages.
What I've been doing for a long time, is to update all CSLA nuget packages for each CSLA version update.
I think we need some new strategy by which some satellite packages, like MAUI, can be cleanly dropped from the build and releases.
I am interested in any thoughts or ideas, thank you.
Beta Was this translation helpful? Give feedback.
All reactions