-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Dealing with plugin dependencies #1345
Comments
How it is done in Debian Debian packages use the following mechanism to create a dependency structure: Each package comes with a depends field. In this field, all dependencies are entered comma separated and optionally with a depending version. All packages are uploaded to a central repository. If a user wants to install a package on a debian system, the installer queries a central repository for depending packages and if the user accepts, installs everything. In its basics, this is also how all the other package systems work. |
While an automatic dependency resolver would be the non-plus-ultra, maybe for a beginning, it would be sufficient enough to visually inform the user, which plugin is related to which other plugin. I recently added a TiddlyMap feature where it is possible to define which edges constitute the hierarchy in a graph. Consequently TiddlyMap calculates the hierarchy and displays it as a graph (felixhayashi/TW5-TiddlyMap#15). Maybe we could use this to have a tiddlywiki dedicated for plugins that
@tobibeer already has a great collection of plugins with their descriptions (of course other great collections exist as well), maybe this could be enhanced by adding a dependency graph? - just an idea |
There is already a |
Hi @pmario,
Why is it called Regardless of that, I am talking about how to actually make use of such fields and how we can achieve a modular structure that is visible to the enduser or is automatically solved when installing a plugin. At the moment all plugins seem exist rather isolated and do not share code... |
imho, shared libraries should be encouraged as much as possible... as well as bringing shared code in the core |
right, this has many benefits
Yes, of course, if the majority of plugins depend on that. If the code is too special, however, I am more in favor of keeping it as a shared library plugin. |
should thus be part of the core repo, like those "core plugins", imho Equivalent to...
...define:
...for jQuery, Vis, FontAwesome, all the things emerging as dependencies, along with those helper utilities that enable this stuff in a TiddlyWiki context, e.g. the extensions mechanism I defined for FontAwesome |
What are the circumstances in which dependencies of a plugin would be processed? The obvious answer is plugin installation and upgrading, but perhaps there's more to it. One possibility is that dragging a link to a plugin with dependencies should include the dependencies in the drag operation (so that a plugin and its dependencies could be installed in one operation). It would be fairly easy for It's worth noting that plugin installation still needs some attention. The present system of dragging the plugin tiddler itself (so that the JSON of the plugin is transferred in the drag and drop event) means that the file containing the link has to contain the entire plugin. That's starting to be a problem - We need to allow plugins to be installed via a new kind of link where only the URL of the plugin is transferred via drag and drop, and the target wiki loads the plugin itself from the provided URL.
@felixhayashi I'm afraid that was a typo on my part. It is currently only used by the plugin switcher mechanism; when a switchable plugin (ie a theme or a language) is selected, any listed dependent plugins are loaded too. |
At the moment I cannot imagine another scenario. I will think about it.
Yes. Going with this solution means that the wiki that offers the plugin also has to include all dependencies as well (which it usually does).
upgrade.html? Didn't know that exists. Great!
That is why I thought to have a plugin tiddlywiki that only contains references. Then the linked site needs to include all dependencies for that plugin which is usually fine (as I said above).
Yes, exactly. This goes in the direction of an ajax mechanism that queries the link and saves the json response in the users wiki.
Oh ok. |
It's the official way to upgrade to new versions: |
@Jermolene .. imo should be labeled "feature request" |
At this point, TiddlyWiki makes it already very easy to write plugins and in fact a whole lot of plugins are already written for TW5 and certainly there are more to come.
Thus, TiddlyWiki needs to organize its plugins more efficiently. Just to give two quick reasons:
Maybe we can discuss some suggestions how we could deal with dependencies?
The text was updated successfully, but these errors were encountered: