HelloZeroNet / HelloZeroNet/ZeroNet

Update ZeroBundle while updating from UI

Offen
#2,264 14 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
18.8k
Forks
2.3k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

**Is your feature request related to a problem? Please describe.**

Currently, if you update ZeroNet from UI, the only thing that will change is ZeroNet source code. While this is OK if you use ZeroNet directly from source code, it is not in case if you use ZeroBundle as ZeroBundle files will stay the same.

This creates some problems:

* One is already my DNS plugin with custom dependencies. In case of such a plugin, all users would have to manually update ZeroBundle with new dependencies to use it. Although I fixed this with bundling dependencies along with plugin's code, this isn't the best solution.

* Another problem would be in case if there is some critical bug or security issue with distributed Python version or dependencies bundled in ZeroBundle. In case of this, all users would have to manually update ZeroBundle to fix this bug.

* Additional problem which was already fixed was updating from Python 2. Because ZeroNet 0.7.0 required Python 3, the only way to update it was by manually updating ZeroBundle. If updating would be implemented in a better way, ZeroBundle would change to Python 3 automatically.

**Describe the solution you'd like**

Instead, you should be also updating ZeroBundle files while updating from UI. You should also change how updates work internally.

* On the ZeroUpdate site (or whatever it is called), there should be one JSON file which would contain all metadata about the latest release (version, revision, description, changelog, type of changes, type of update...). ZeroNet should use that file to check if an update is available and also display details, description and changelog to users. It would be good to also store details of all previous releases.

* That site should also host ZIP files which actual update. One of the files should contain classic source code and others should be for ZeroBundle for specific platforms.

* Before updating, ZeroNet should check if a release you want to install (and any release newer than your current release) contains changes to ZeroBundle. If it doesn't, it should simply download source code ZIP file and install it as currently. But if the release contains changes to ZeroBundle (new dependencies, new Python version...), it should also download and install ZeroBundle ZIP file with updated dependencies/Python.

* For additional security, all files should be cryptographically signed. By default, it should only trust official ZeroNet key, but it should be possible to also trust different keys or completely disable verification and change ZeroUpdate site address. This would be useful if you want to create custom ZeroNet installation with your own updated.

One of already built Python packages for updating is [PyUpdater ](https://www.pyupdater.org/). I haven't checked it too much but it also provides a plugin for additional storage locations so it should be possible to store updates on ZeroNet site. But I haven't checked it too much so I don't know if it might be easier to just create update system yourself.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.