HelloZeroNet / HelloZeroNet/ZeroNet

Update ZeroBundle while updating from UI

オープン
#2,264 コメント 14 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
18.8k
フォーク
2.3k
PR マージ指標
30日以内にマージされた PR はありません

説明

**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.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。