Enhancements to Acode Plugin installer
Is it possible to add support for plugin dependencies?
Clearly explain it in detail
Like an array of plugins in plugin.json to be Installed along with the plugin. Maybe something like
{
"dependencies": [
"bajrangcoder.acodex", "sebastianjnuwu.acode.eruda"
]
}
I am willing to assist in implementing this
Like an array of plugins in
plugin.jsonto be Installed along with the plugin. Maybe something like{ "dependencies": [ "bajrangcoder.acodex", "sebastianjnuwu.acode.eruda" ] }
Ok
I am willing to assist in implementing this
Contributions are welcomed ☺️, feel free to open pr
I am willing to assist in implementing this
Contributions are welcomed ☺️, feel free to open pr
I had already talked about this, the system is similar to that of vscode, the .acode folder has the settings and dependencies and acode recognizes itself when the project folder is open if not with the default
I tried to do it, but I had some problems regarding recognizing the file and downloading the plugins. The paid plugins gave an error when downloading since they have a different API logic.
Currently when updating Plugins the installer does not delete the previous installation of the plugin rather it installs the update over the current installation. There is a problem of redundant files. Suppose this is the current installation
.
├── assets
│ ├── 0.svg
│ ├── 1.svg
│ └── 2.svg
├── icon.png
├── main.js
├── plugin.json
└── readme.md
and this is the update
.
├── assets
│ ├── 3.svg
│ ├── 4.svg
│ └── 5.svg
├── icon.png
├── main.js
├── plugin.json
└── readme.md
after updating this will be the current installation
.
├── assets
│ ├── 0.svg
│ ├── 1.svg
│ ├── 2.svg
│ ├── 3.svg
│ ├── 4.svg
│ └── 5.svg
├── icon.png
├── main.js
├── plugin.json
└── readme.md
I suggest using a combination of id and version as the plugin folder name
`${plugin.id}-${plugin.version}`
instead of just id
Nice, I haven't noticed this.
I suggest using a combination of id and version as the plugin folder name
I think it will be good to remove the previous folder and then add the new update one , as the the id and version combination will make different instances of same plugin.
If you have any better idea then please share
Nice, I haven't noticed this.
I suggest using a combination of id and version as the plugin folder name
I think it will be good to remove the previous folder and then add the new update one , as the the id and version combination will make different instances of same plugin.
If you have any better idea then please share
Removing the previous folder and then installing the update will introduce some latency when updating a plugin, while this might go unnoticed for plugins with few files for plugins with close to a thousand files it will be noticed. We can keep a mapping of plugin IDs to their folders.
Actually that latency will be visible in other approaches too. I found a new way: "Checksum-Based Update (Detect Changes Before Overwriting)" this will only call few fs calls based on update (which will be efficient)
What about obsolete files? How do we detect them?
We can detect it: By comparing the files present in the current plugin installation with the files in the update package. If any file exists in the current installation but does not exist in the update package, it is considered obsolete and can be safely deleted.
We can detect it: By comparing the files present in the current plugin installation with the files in the update package. If any file exists in the current installation but does not exist in the update package, it is considered obsolete and can be safely deleted.
Yes this is better, because some plugins assume the plugin folder to be it's id
I will begin working to implement this
Currently Acode ignores the following fields in the plugin manifest file and uses static values instead
-
main.jsin place ofmain -
icon.pngin place oficon -
readme.mdin place ofreadmeSetting the value of any of the fields to a value other than the static values results in an error.
Currently Acode ignores the following fields in the plugin manifest file and uses static values instead
main.jsin place ofmainicon.pngin place oficonreadme.mdin place ofreadmeSetting the value of any of the fields to a value other than the static values results in an error.
Yes, I planned to fix it but I forgot
I can help in implementing the fixes
I can help in implementing the fixes
I can help in implementing the fixes
Open a pr