I just saw that there is a big change in the Vue component coming. The newest version 7.x.x will not be compatible with anything below version 25. As NC 24 will still be actively supported for some time, I am asking how the maintainers should manage this situation.
I thought about publishing different variants of the same version with different settings. So let’s say the new release is 1.2.3, then there are two variants of the 1.2.3 version:
- One variant build for NC 22, 23, and 24 with the ole Vue library
- One variant with the new library for NC version 25.
Once, version 24 is EOL, this problem should have settled. Until then, either no fix for any bug/issue/… below version 25 can be published or the update of the Vue library must not be done.
So, there are in fact two questions here:
- How are other maintainers planning to handle the situation? Are you even aware of the fact?
- Does the app store allow to upload multiple variants of one version and let the user’s server select the appropriate variant?
Dear @christianlupus, thanks for raising this topic.
I would suggest to do the following. It’s how e.g. Contacts, Calendar, Mail and Collectives are maintained.
- “Branch off” your latest Nextcloud 24 compatible release in Git. If the last release was
1.2.3, name the new branch
- In your main branch, bump the app version number in
appinfo/info.xml to a new major version (e.g.
2.0.0) to indicate backwards-incompatible changes. Also, set minimum Nextcloud version to 25.
- Go ahead with the
@nextcloud/vue 7.0.0 migration. Once everything works fine on Nextcloud 25, release
- Whenever you want/need a new release of the Nextcloud 24 version, backport your desired changes to the
stable1 branch and release a new patch release (e.g.
1.2.4 if it’s a bugfix release, or
1.3.0 if it introduces new features.).
I don’t think so. And even if it would be possible, I would strongly advice against doing this. Different releases should have different versions. Why not use semantic versioning and bump the major version when migrating to
We are currently still pre-1.0, so semantic versioning is a little bit different there but I see the general idea.
That means, i will have to update the workflows, we are running in the background to the current situation. Also we will have to install a backport algorithm I suspect.
I will have to think this through once. Thanks for the very fast feedback, @mejo.