electron-userland / electron-prebuilt-compile

electron-prebuilt with Babel and React built-in
167 stars 50 forks source link

automated releases #55

Open zeke opened 6 years ago

zeke commented 6 years ago

Let's make it so every time a new version of electron is published, this module updates itself with little or no human intervention.

@paulcbetts what does the current release process look like?

jacobq commented 6 years ago

In the meantime, please release for ~2.0.0-beta.2~ ~2.0.0-beta.3~ ~2.0.0-beta.4~ :pray:

Update: Thanks @paulcbetts for publishing beta.4 yesterday! :heart:

jacobq commented 6 years ago

Though obviously I've never done it, the commit history suggests that the process goes something like this:

  1. Update version & dependencies.electron in package.json to the new version number.
  2. npm install (install dev deps for building the binaries)
  3. (optional) Commit / push
  4. (optional) Tag
  5. npm publish (prepublish hook runs babel -d lib/ src/ then cp ./node_modules/electron/electron.d.ts .)
jacobq commented 6 years ago

Is there any way that I could put a "bounty" on this? I'd be happy to PayPal someone $20 if it would help get this landed.

EDIT: cryptocurrency also OK

spasma commented 5 years ago

@jacobq I've just created a simple update script in my fork @ https://github.com/spasma/electron-prebuilt-compile

In the meantime you can use it by using "electron-prebuilt-compile": "git+https://git@github.com/spasma/electron-prebuilt-compile.git" in your package.json.

I understand you don't want to use it for security reasons, but I'm using it for my own projects currently.. It's currently built for the current latest 4.0.5

jacobq commented 5 years ago

@spasma thanks for the contribution. Actually, I would love to use it, but because of the way my build infrastructure works (uses electron-forge) I cannot easily specify an alternative for this package. electron-forge requires that electron-prebuilt-compile be specified as an "exact version", i.e. not a URL/branch/commitish. In the past I have forked electron-forge to modify this behavior and made my own release, like you did, but it is a pain in the neck and feels so hacky. I would much rather like to help get a real solution implemented upstream / on the main line.

spasma commented 5 years ago

@jacobq I totally agree on that it's too hacky for production.. It should definitely be automated by the devs.. They already have some npm scripts that will make it quite easy as you mentioned before.. I don't understand, electron-forge is also part of the electron-userland group, why is this not part of new electron-forge releases as they heavily depend on this package?

jacobq commented 5 years ago

@zeke and @paulcbetts Is there anything I can do to help get this landed? It looks like we could do this using two complementary bots:

  1. renovatebot or dependabot to automatically make commits when new electron versions come out (since we have electron in package.json's dependencies)
  2. semantic-release to automatically bump version and publish a new release after each update