GraphiteEditor / GraphiteEditor/Graphite

Release desktop builds for direct download with an installer and self-updater

オープン
#2,539 コメント 0 件 リアクション 2 件 担当者 0 名 GitHub で見る
Architecture Desktop Infrastructure
主要言語
Rust
スター
27.2k
フォーク
1.3k
平均マージ
20時間 5分
マージ済み PR(30日)
57

説明

Our goal is to have Graphite update just as easily as apps like Chrome, Firefox, VS Code, and Discord.

### Windows

For `.msi` installers, we should probably use the open source installer generator, [Inno Setup](https://jrsoftware.org/isinfo.php), which is also notably used by VS Code and Git for Windows. And then probably roll our own auto-updater, which might use Inno Setup to install updates with the [`/SILENT`](https://jrsoftware.org/ishelp/index.php?topic=setupcmdline) flag. Some background research [here](https://www.reddit.com/r/csharp/comments/1oyxjkq/is_my_inno_setup_selfupgrade_check_logic/) and [here](https://stackoverflow.com/questions/53073973/how-to-automatically-update-an-application-installed-with-inno-setup). We can reference the 2.5k lines of Rust code in [Inno Updater](https://github.com/microsoft/inno-updater) written by Microsoft for updating VS Code. There is also this recent and very detailed [explanation](https://github.com/microsoft/vscode/issues/249239) about the flow and recent robustness improvements Microsoft made to it.

### Mac

TODO: Investigate how to create a `.dmg` installer, including custom background graphics to make the drag-into-Applications-folder process clear. We will probably need to roll our own auto-updater for this platform as well, hopefully with some code reuse. But [Squirrel](https://github.com/Squirrel/Squirrel.Mac), used by Electorn and VS Code, or [Sparkle](https://sparkle-project.org/), could be other options if they aren't complex to integrate in our Rust codebase and give enough flexibility so we can do our own update checks and UI. Investigation will be required to figure out how to self-update the contents of an app package.

### Linux

TODO: Distribute the [ELF](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) file and dependencies in a `.zip`? Is there any other sort of self-unpacking installer besides a ZIP we can use instead? Can we roll an auto-updater for this too? This would be in addition to distribution through common package managers: #584.

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

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

調査の方向性

ここで説明されている Windows、Mac、Linux の配布要件を、Inno Setup、Inno Updater、Squirrel、Sparkle を含めて比較することから始め、#584 にある既存のパッケージマネージャーのコンテキストを確認してください。各デスクトッププラットフォームについて、プロジェクトに直接ダウンロードによる配布と、インストーラーまたは自己更新機能の計画が実装されていれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
desktop, release
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

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

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