-
Notifications
You must be signed in to change notification settings - Fork 864
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
Build and Publishing Process #1263
Comments
On fixing macOS buildDue to severity of the issue I'd say its ok to use branch version to fix this. Note: use harcoded commit to ensure our build remains deterministic and future changes to that PR do not break our build: - "electron-builder": "^22.1.0",
+ "electron-builder": "https://github.com/electron-userland/electron-builder/tarball/db7cec39e9d370c750c6ac1a11cae4756f2d04fc/electron-builder.tar.gz", On Replacing electron-builder with electron-packager / custom solutionI think if we plan to change existing setup, then we need to aim at self-hosted solution and full dogfooding from the start. Doing it half-way does not seem to be worth the time, as the issue at hand (1) can be fixed with the above. I see some electron-packager servers for self-hosting are pretty simple, eg. Nuts. Looks like its mostly path conventions. I am thinking in the lines of:
The hard requirement here is to dogfood as much IPFS we can. With the above we would not only remove awkward third parties from the picture, but create a template for other Electron apps to follow (could be a blogpost or a separate repo with scripts and instructions). |
Electron Builder uses a build process that outputs the built package to Two solutions:
It is a bit more complicated than what it seems. |
Update: macOS fix was merged. Waiting for release. |
@hacdias @lidel Do you have recommendations for where to take this now? For going the web3 native route, we could probably publish on valist and then handle auto-updating from there. |
If we want to change anything, then my recommendation would be to harden supply chain by doing content addressing end-to-end:
The "native way" for IPFS Desktop would be to do updates over IPFS (+IPNS), and not a third-party blockchain marketplace. Complexity that comes with ValistValist was proposed in #2269 and iirc we did not follow up as it was not a good match for our needs. All it does from our point of view is delegated publishing and distribution via their own blockchain-based app store. It does not provide any drop-in JS SDK solution for standalone autoupdate of Electron app, and does not allow for passing precomputed CID for publishing. This means it is not trustless: we need to trust Valist supply chain is not malicious, because they take our binaries and do the chunking on their side to produce CID. All this means we don't improve much, really:
|
Thanks for pinging me, @SgtPooki! The Station is using |
There is an history of problems with Electron Builder, the package we're now using to build and deploy IPFS Desktop's binaries to GitHub Releases and also manage our auto-update mechanism.
Currently, there are two issues opened related to our build mechanism and auto-update:
The build for macOS is failing (Can't start IPFS Desktop 0.10 on macOS #1244). A quick fix for this is just using the branch from where the fix comes from (Revert "fix(appx): App sandbox not enabled (ITMS-90296) (#4244)" (#4390) electron-userland/electron-builder#4414) while the fix is not released.A suggestion that would remove the need for Electron Builder and, at the same time, allowing to keep with GitHub Releases (or not), is using Electron's own packager, which requires a bit more work, but it's the official way and workable.
electron-packager
repository.For updates, we could use
updater.electronjs.org
with GitHub Releases to avoid the need for Electron Builder's auto-update too: https://electronjs.org/docs/tutorial/updates#updating-applications./cc @autonome @lidel
The text was updated successfully, but these errors were encountered: