Skip to content
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

NSIS Auto-Update #529

Closed
ghost opened this issue Jun 20, 2016 · 125 comments · May be fixed by qcif/data-curator#563
Closed

NSIS Auto-Update #529

ghost opened this issue Jun 20, 2016 · 125 comments · May be fixed by qcif/data-curator#563

Comments

@ghost
Copy link

ghost commented Jun 20, 2016

Creating this issue just to keep track of status, or when it is planned.

@black-snow
Copy link
Contributor

@develar @kunkinkan How's this gonna work? Will it be analogue to Squirrel?

@develar
Copy link
Member

develar commented Jul 22, 2016

@black-snow yes, only feed url will be changed in the user code. Auto-update API impl will be bundled.

@black-snow
Copy link
Contributor

Great. How are things going? Any help needed?

@atypicalprogrammer
Copy link

Will this be better than Squirrel auto-update? I don't like with them that I cannot control the process; I should be able to allow the user to choose whether or not to update to the newest version, instead of forcing it. (And also; better security. Allow me access to the downloaded auto-update so I can for example compare md5 hashes, etc). So a method after downloading the update to verify it.

@black-snow
Copy link
Contributor

@atypicalprogrammer afaik Squirrel does verify checksums.

@atypicalprogrammer
Copy link

@black-snow how do you figure? I'm talking about me providing a txt file with a checksum to compare with a downloaded file. It's a custom function that should be possible to provide better security. Something that is ran before the update itself is installed, simply a function that can cancel the further progression of install. The checksum validation I can add myself.

@develar
Copy link
Member

develar commented Aug 3, 2016

Started to work on this.

First version will support only Bintray:

  • no rate limits (opposite to GitHub) to access latest version and version files. Rate limit free, no need to parse html or http headers, just use Rest API (opposite to GitHub — token requirement is not user-friendly).
  • better security — Bintray reports file sha256/sha1 on version files request. We use it to verify downloaded file (because windows just sucks opposite to macOS — we cannot rely on code sign completely).
  • nsis-auto-updater will be published to NPM, but only to provide flexibility — will be just prebundled on pack.
  • no RELEASES file. Yep!

develar added a commit to develar/electron-builder that referenced this issue Aug 4, 2016
develar added a commit to develar/electron-builder that referenced this issue Aug 4, 2016
develar added a commit to develar/electron-builder that referenced this issue Aug 8, 2016
develar added a commit to develar/electron-builder that referenced this issue Aug 8, 2016
develar added a commit to develar/electron-builder that referenced this issue Aug 9, 2016
@zh99998
Copy link

zh99998 commented Sep 8, 2016

any good news now?

develar added a commit to develar/electron-builder that referenced this issue Sep 9, 2016
develar added a commit to develar/electron-builder that referenced this issue Sep 9, 2016
@develar
Copy link
Member

develar commented Jan 14, 2017

Miracles happens. Serverless macOS auto-update is implemented in the electron-builder 11.3.0 and electron-auto-updater 1.0.0 #1089 (comment)

@rsaccon
Copy link

rsaccon commented Jan 14, 2017

@develar thanks to make the miracle happen ! It is like Santa Claus came for a second round ! I Look forward to rip out my own hackish serverside workarounds.

@develar
Copy link
Member

develar commented Jan 24, 2017

electron-auto-updater renamed to electron-updater

@Timer
Copy link

Timer commented Jan 25, 2017

Does electron-updater work with https://github.com/GitbookIO/nuts?

@jessb321
Copy link

jessb321 commented Jan 25, 2017

@Timer nah you dont need it, its serverless. have a look here
although im not sure if you mean for generic https server

@Timer
Copy link

Timer commented Jan 25, 2017

I'd like to configure nuts to be used as a generic https server if possible -- my repos are private & I still like having my artifacts published on github.

@kevinbuhmann
Copy link
Contributor

@Timer, I have written a node Express server that does that. I can post the code if you want.

@Timer
Copy link

Timer commented Jan 25, 2017

That would be much appreciated @kevinphelps; it would save me quite a bit of time! Thanks! 💯

@develar
Copy link
Member

develar commented Jan 25, 2017

@Timer for your case I suggest amazon s3 — more robust because you don't need to maintain own server / https cert. You can be sure always that it works and uptime 100%. Yes, currently artifacts are not uploaded automatically, but you can file issue / use another tool to publish artifacts.

@Timer
Copy link

Timer commented Jan 25, 2017

@develar perhaps if I run into some free time I could make a small tool to do that -- but I was planning on using heroku anyway which is managed and has https.

I still don't believe the docs are very clear explaining what is required from a generic server... Do I just need to host latest.yml and latest-mac.json at the root of the generic URL I specify with the binaries available at the provided links in those files (e.g. can I have all assets in the same s3 bucket, e.g. s3.amazonaws.com/example/latest-mac.json & s3.amazonaws.com/example/latest-mac-*.zip)?

@develar
Copy link
Member

develar commented Jan 25, 2017

Do I just need to host

Yes. Nothing more. Create any path as you want in the bucket (e.g. test in the bucket develar) and

{
  provider: "generic",
  url: "https://develar.s3.amazonaws.com/test",
}

@Timer
Copy link

Timer commented Jan 26, 2017

Can the link in latest-mac.json be relative or does it have to be absolute?

@develar
Copy link
Member

develar commented Jan 26, 2017

@Timer Squirrel.Mac issue. Electron-builder cannot fix it.

@Timer
Copy link

Timer commented Jan 26, 2017

Neat @develar, thanks for all your help!
I took the time to make a small app that mirrors github releases to S3, and I modify the JSON file for the new URL path. 😄

@andrewjaykeller
Copy link

andrewjaykeller commented Jan 26, 2017

@kevinphelps would love to see the Heroku app you made! My repos are private. Thanks for any and all time!

I modify the JSON file for the new URL path

@Timer are you doing this manually each time you build?

@andrewjaykeller
Copy link

andrewjaykeller commented Jan 26, 2017

@develar is there a way to include release notes with generic s3 bucket?

Feature request #1174

@develar
Copy link
Member

develar commented Jan 26, 2017

@aj-ptw Please file new issue about it.

@kevinbuhmann
Copy link
Contributor

kevinbuhmann commented Jan 26, 2017

@Timer @aj-ptw I extracted my update server code and pushed it this repo: https://github.com/kevinphelps/electron-update-server. Let me know if you have any questions. Sorry if this seems overbuilt, I extracted it from my update/login/api server. It has all the groundwork for adding additional endpoints, though.

@Timer
Copy link

Timer commented Jan 26, 2017

Awesome @kevinphelps 💯!

@aj-ptw I change it automatically -- see https://github.com/Timer/electron-release-s3-sync/blob/master/src/index.js#L97-L105.
If you just want to sync your latest release with s3, you can install electron-release-s3-sync and run it with the appropriate env vars (GH_USER, GH_TOKEN, GH_ORG, GH_REPO, AWS_BUCKET, AWS_BUCKET_URL).
Looks something like this:

e.g.

$ yarn add electron-release-s3-sync --dev
- or -
$ npm i electron-release-s3-sync --save-dev

$ ./node_modules/.bin/electron-release-s3-sync

I also added it to my package.json scripts, "sync": "env-cmd .env electron-release-s3-sync".

@develar
Copy link
Member

develar commented Feb 1, 2017

@sylhero
Copy link

sylhero commented Feb 6, 2017

I'm using "electron": "^1.4.15" "electron-builder": "^12.0.3" and electron-updater": "^1.4.2". I used the
autoUpdater.setFeedURL({ provider: 'generic', url: 'https://s3/release' });
but I don't see the latest.yaml generated unless I config the build.publish. Anyone has the same issue?

@bartekczyz
Copy link

@sylhero I've experienced the same thing, updating electron-builder to 13.x.x ( 13.3.1 in my case ) helped.

@ccorcos
Copy link

ccorcos commented Apr 19, 2017

where do these json and yml files come from?

@black-snow
Copy link
Contributor

@ccorcos which files do you mean? latest.yml?

@ccorcos
Copy link

ccorcos commented Apr 20, 2017

yes: latest.yaml and latest.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.