I'd like to have a solid plan for getting v6 out the door.
In no particular order.
import from v5 config in package.json to v6 config (#653)electronforge.io to actually using the v6 docselectron-forge org _(will this break gitbook?)_tools/sync-readmes.ts when this happens@malept/electron-installer-flatpak 0.10.0, when it's releasedelectron-installer-snap 4, when it's releasedelectron-winstaller 4, when it's releaseds3 due to #479electron-forge NPM packageCONTRIBUTING.md on how to develop on Electron Forge (e.g., install bolt globally)create-electron-app are updated appropriatelyember-electron with upgrading _(this will probably happen post-release)_Figure out what to do with the electron-forge NPM package
npm deprecate all versions of it with a message to move to @electron-forge/cli? Maybe a link to a docs page on how to move and use the importer described above ^^
Do we no longer want to use the electron-forge NPM package?
@malept I don't think so, we could alias it to @electron-forge/cli but I think we should just make people move 馃憤
I don't know, there's something to be said for having install instructions be npx electron-forge init my-electron-app and that's it. But I guess we live in a copy/paste world, and npx @electron-forge/cli init my-electron-app is about the same.
@malept We can have npx create-electron-app and yarn create electron-app for the one-liner no-scope commands
Update templates
From what we've talked about previously, we're going to reduce the templates to just a webpack template (and a parcel template perhaps). We should add guides to the docs for how to create apps for various popular frameworks, e.g. React via create-react-app plus electron-forge init --template=webpack. Alternatively, have docs for creating webpack-based Electron apps in general.
This issue suggests v6 stable release is imminent (??).
The documentation wisely says don't use the Webpack plugin yet...but given you're gearing up for stable release, is it possible to go ahead and work with Webpack?
Thanks so much for your work on "forge" - this is so very helpful.
@philcockfield Those warnings are just disclaimers at this point. A bunch of people are already using the webpack plugin, feel free to dive in
This issue suggests v6 stable release is imminent (??).
I would not characterize it as imminent. This issue is meant as a line in the sand to show progress towards releasing a stable version.
The documentation wisely says don't use the Webpack plugin yet...but given you're gearing up for stable release, is it possible to go ahead and work with Webpack?
What @MarshallOfSound said. There's not much in the way of documentation, so we're not yet comfortable recommending it yet.
Awesome - thanks.
Hey @MarshallOfSound - I know this is pre-release (or pre-docs and all), but I don't suppose you have a sample repo lying around anywhere of a webpack plugin configuration working?
I found this repo of yours https://github.com/MarshallOfSound/electron-forge-plugin-webpack/blob/master/example/react.js
But it's archived, and pretty old. Any hints would be awesome - thanks!
Also, for so I can understand the context of the new release - does @electron-forge/plugin-webpack supersede and make obsolete https://github.com/electron-userland/electron-webpack ?
electron-webpack is a different node module not affiliated with Electron Forge.
Oh! My bad, I thought that was under electron-userland banner.
Don't suppose there is working sample repo anywhere?
Based on https://github.com/search?q=%22electron-forge%22+%22plugin-webpack%22&type=Code there are people who are using that plugin, but I don't know how successful they are.
It'd be nice to have more than 1 webpack (or parcel) template, where at least one acts like electron-compile. My app is still basically a webview into a local app, so I've only been focused on setting up the main process so far. I ended up using node-webpack-externals to basically ignore node_modules and package it as is (otherwise webpack tries to handle node-gyp files and other stuff). I also had to override the ignore to keep node_modules for main.
We don't plan on having more than one template per bundler included by default with Electron Forge v6. And as with the old 5.x templates, they are meant to be minimal starters (like electron-quick-start) and not boilerplates. _(Quite frankly, it seems to be difficult to find someone to have the time to even do a minimal template.)_
That is not to say that a community member can't contribute a third-party template.
Can you make automation of new electron-prebuilt-compile packages also part of this release? electron-forge heavily depends on that package and it's pretty outdated.
Everybody is building apps on an old version of electron w/ security issues because of that. (or they hacked some things together to make it work)
As of Forge v6, electron-prebuilt-compile is no longer a requirement (although it's still somewhat supported through the optional electron-compile plugin). Its automation is specific to that module, though. See https://github.com/electron-userland/electron-prebuilt-compile/issues/55 for the automation of releases there (which I've noticed you've already found).
@malept ah I see, good to hear that. Thanks for the heads up!
I love this project, great job! What's the status of V6?
I've updated the TODOs in the issue summary.
Thanks. Looks close. Nice work!
Nice work
I've had a great experience with electron-forge so far and really looking forward to v6!
Could anyone point me to documentation (couldn't find any) or summarize how a migration might look like? Just hoping to get a rough estimate of effort/time required.
It should mostly be config changes. I wrote a fairly simple importer from v5 to v6 here: https://github.com/electron-userland/electron-forge/blob/v6.0.0-beta.42/packages/api/core/src/util/upgrade-forge-config.ts (it's invoked by running electron-forge import, using v6, on a v5 app).
Obviously, there's also a cost to migrate off of electron-prebuilt-compile (and probably onto webpack), but that can be done in a separate step.
Hi guys, do you have and ETA on this?
We need a more recent version of electron but the current dependency on electron-prebuilt-compile is limiting us (we use webpack so we don't really need it).
Thanks!
The main blocker is resolving bugs with webpack and native modules. We'd be happy to have help with this so we can (finally) release a stable version.
Aside from that, it's pretty stable.
@malept The migration script worked great, thanks for that!
Overall, the move to version 6 (and from electron-compile to webpack) took me around 7 hours. A lot of time was also spent on getting TS up and running with webpack.
Awesome work on v6!
Is v6 stable yet? Or usable?
You can see from the checklist that only minor items remain. Very much usable and production ready in my view.
Feels great to ditch electron-compile!
And are the docs at https://electronforge.io for v6? Because I vividly remember the docs were at https://v6.electronforge.io before
The v6 docs have been moved to the main domain. https://electronforge.io/ is now the docs site
@MarshallOfSound Hi,I cannot download the packages that electron-forge needs to execute the make command on the windows platform. Can the required installation package be downloaded by other means and placed in a certain folder, so that electron-forge can be used. Linux and Mac can use proxychains 4. But the network environment of the window platform under the console is too bad. I can't package it in the window environment now.
May be you can provide some mirror sources for use in China.
An unhandled rejection has occurred inside Forge:
GotError [RequestError]: read ECONNRESET
at ClientRequest.<anonymous> (E:\tools\node_modules\got\source\request-as-event-emitter.js:178:14)
at Object.onceWrapper (events.js:418:26)
at ClientRequest.emit (events.js:323:22)
at ClientRequest.EventEmitter.emit (domain.js:482:12)
at ClientRequest.origin.emit (E:\tools\node_modules\@szmarczak\http-timer\source\index.js:37:11)
at TLSSocket.socketErrorListener (_http_client.js:426:9)
at TLSSocket.emit (events.js:311:20)
at TLSSocket.EventEmitter.emit (domain.js:482:12)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
name: 'RequestError',
code: 'ECONNRESET',
host: 'github.com',
hostname: 'github-production-release-asset-2e65be.s3.amazonaws.com',
method: 'GET',
path: '/9384267/11290e80-469b-11ea-89b8-1b05701b4097?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200308%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200308T080453Z&X-Amz-Expires=300&X-Amz-Signature=27242affaec6bbf634838ca20aa0cb9f2e7b49c3df5c5f1b9d5cfea6ab2b387f&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Delectron-v8.0.0-win32-x64.zip&response-content-type=application%2Foctet-stream',
socketPath: undefined,
protocol: 'https:',
url: 'https://github-production-release-asset-2e65be.s3.amazonaws.com/9384267/11290e80-469b-11ea-89b8-1b05701b4097?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200308%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200308T080453Z&X-Amz-Expires=300&X-Amz-Signature=27242affaec6bbf634838ca20aa0cb9f2e7b49c3df5c5f1b9d5cfea6ab2b387f&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Delectron-v8.0.0-win32-x64.zip&response-content-type=application%2Foctet-stream',
gotOptions: {
path: '/9384267/11290e80-469b-11ea-89b8-1b05701b4097?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200308%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200308T080453Z&X-Amz-Expires=300&X-Amz-Signature=27242affaec6bbf634838ca20aa0cb9f2e7b49c3df5c5f1b9d5cfea6ab2b387f&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Delectron-v8.0.0-win32-x64.zip&response-content-type=application%2Foctet-stream',
protocol: 'https:',
slashes: true,
auth: null,
host: 'github.com',
port: null,
hostname: 'github-production-release-asset-2e65be.s3.amazonaws.com',
hash: '',
search: '?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200308%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200308T080453Z&X-Amz-Expires=300&X-Amz-Signature=27242affaec6bbf634838ca20aa0cb9f2e7b49c3df5c5f1b9d5cfea6ab2b387f&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Delectron-v8.0.0-win32-x64.zip&response-content-type=application%2Foctet-stream',
query: null,
pathname: '/9384267/11290e80-469b-11ea-89b8-1b05701b4097',
href: 'https://github-production-release-asset-2e65be.s3.amazonaws.com/9384267/11290e80-469b-11ea-89b8-1b05701b4097?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200308%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200308T080453Z&X-Amz-Expires=300&X-Amz-Signature=27242affaec6bbf634838ca20aa0cb9f2e7b49c3df5c5f1b9d5cfea6ab2b387f&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Delectron-v8.0.0-win32-x64.zip&response-content-type=application%2Foctet-stream',
retry: {
retries: [Function],
methods: [Set],
statusCodes: [Set],
errorCodes: [Set]
},
headers: {
'user-agent': 'got/9.6.0 (https://github.com/sindresorhus/got)',
'accept-encoding': 'gzip, deflate'
},
hooks: {
beforeRequest: [],
beforeRedirect: [],
beforeRetry: [],
afterResponse: [],
beforeError: [],
init: []
},
decompress: true,
throwHttpErrors: true,
followRedirect: true,
stream: true,
form: false,
json: false,
cache: false,
useElectronNet: false,
method: 'GET'
}
}
Electron Forge was terminated. Location:
{}
error
@printjs this is unrelated to this issue.
Please read the Electron docs about installing Electron with Chinese mirrors: https://www.electronjs.org/docs/tutorial/installation#mirror
I get the impression that with just a little bit of focused attention this release could get out of beta. Is there anything I and others could do to help make this happen?
I get the impression that with just a little bit of focused attention this release could get out of beta. Is there anything I and others could do to help make this happen?
See https://github.com/electron-userland/electron-forge/issues/621#issuecomment-530082551
Could the Snapcraft maker be resolved for a stable v6 version? It's currently impossible to build a snapcraft artefact on a standard version of Ubuntu.
It seems like there may be a PR that might resolve the issue: https://github.com/electron-userland/electron-installer-snap/pull/75
And there are a number of issues open that appear related:
https://github.com/electron-userland/electron-forge/issues/1696
https://github.com/electron-userland/electron-installer-snap/issues/83
I'd be very happy to help however I can, but I'm not sure asking people to run Forge from within a Docker container is ideal, considering snapcraft packages can be built easily when using electron-builder.
When is eta for 6.0.0?
Can I help sponsor this?
@maccman I would be more than happy to have conversations about sponsoring work on Electron Forge. You can either use GitHub Sponsors or I'm on the official Electron Discord server.
Boom - done! Thanks so much mate for working on this.
Is there any chance of releasing a new beta version? The previous beta release was 4 months ago.
In particular, I'm looking for the fix for https://github.com/electron-userland/electron-forge/issues/1377
No pressure; just checking 馃檪
Most helpful comment
I've updated the TODOs in the issue summary.