-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dependency concept for extensions #664
Comments
Good issue. Since extensions already have a |
I agree that we should take advantage of semver and the implications it has (and possibly the dependency syntax from If we are feeling particularly inspired to do so, maybe we can say |
So I think the minimum version looks clear:
Now about max version:
Open questions:
*Means they could check if adaptation is needed. Be aware that this person might or might not be available for further adaptation over time. |
Probably we could add a check for a similar version in |
We are in the process of adding extension dependencies to manifest.json in terms of extension names (which might or might not be different then package names). For the moment it is just an empty list, but we need to use this both to determine which extensions to download and install automatically (e.g., if I want to install extension "car" and it depends on extension "tires", we need to automatically install "tires" first) and to determine the start up order of extensions (e.g., from the previous example, start extension "tires" before extension "car" so that all of "car"'s dependencies are live before "car" activates). |
User Story
Description
Work on a dependency / compatibility concept for extensions. How should different versions of extensions work together
1. Compatibility with the platform
Looking at Thunderbird as an example: They have a minimum and maximum compatible version, using the asterisk as a wildcard. Is this what we need here as well? Or can we make sure there is only a minimum version (mostly) ever needed? And if not: how can we make sure to keep the platform and extensions compatible over time?
.
2. Compatibility between extensions
As an example thinking about a small extension that would do some little tweaking to another (let's call it the base) extension.
This would require a certain minimal version of the base extension (e.g. where this functionality was first introduced). If the base extension changes, the extension depending on it might no longer work. Depending on availability or intention there might be
Doing a real change or only updating metadata in the marketplace might depend on available people to fix it.
A change in the base extension might obsolete the need for this extension. That's why "fix" is not always the best solution, but could also be (b) permanently.
One might think this is over-engineering because extension developers will anyhow keep always updating extensions along with the platform / the extension they depend on. Hopefully this is often true. But as discussed before this however will not always be the case and sometimes not even helpful.
Question: Do we need (2.) a model of compatible versions between extensions and does it have different requirements than the extensions depending on a certain platform version?
The text was updated successfully, but these errors were encountered: