-
Notifications
You must be signed in to change notification settings - Fork 17.4k
Conversation
General testing
Check for regressions experienced in previous upgradesText Input/KeybindingsSee how to setup keyboard layouts.
UI
Other
|
This comment has been minimized.
This comment has been minimized.
script/package.json
Outdated
"electron-link": "^0.4.2", | ||
"electron-mksnapshot": "^6.0.0", | ||
"electron-packager": "^14.2.1", | ||
"electron-chromedriver": "^9.0.0", | ||
"electron-link": "0.4.1", | ||
"electron-mksnapshot": "^9.0.2", | ||
"electron-packager": "12.2.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not familiar with what these modules do, so I'm not sure if it's important. But this seems to downgrade ⬇️ electron-link
and electron-packager
.
(Thank you for merging my fix!! 🎉)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are most welcome 🙇♂️ I am actually trying to build Atom on CI and locally on Mac (Mac build passes but it's doesn't start, linux fails and windows build/test process seeing some undefined variables), so I merged master in case I missed up anything during resolving conflicts.
As for the above comment about the modules, which ones you are not familiar with electron-link
and electron-packager
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I don't know electron-link
or electron-packager
well.
I read their release notes and I suppose any version should work.
Maybe bump electron-packager
to v14 again? 🤷
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, I think certain things need to be cleared out every build. I am in the habit of doing:
rm -rf ./node_modules script/node_modules apm/node_modules
before every build. This might be unnecessary, but I do think rm -rf script/node_modules
can help.
If that doesn't work, script/clean
usually does.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
electron-packager
is used to create cross-platform executables based on an electron source code.
I haven't explored that much with electron-link
but it helps create the snapshot to boost startup.
Although I don't think that either depends on the electron version, so I will try to bump them to latest.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding performance issues, are you able to shed more light on that?
-
Performance comparison (Atom on electron 5 vs electron 6, other apps that are running on electron 6)
- Atom on Electron 5: Very low idle CPU usage with Electron 5.
- Even on
electron-6.1.12-merge-master
branch with justelectronVersion
changed to5.0.13
inpackage.json
. So only difference is the Electron 5. Low idle CPU with Electron 5.
- Even on
- Atom on electron 6: One CPU core always at 100% if Atom is on screen. Idle CPU usage becomes low after a few moments when Atom is minimized.
- VS Code on Electron 6: Low idle CPU usage.
- Tested: VS Code 1.40 (first version of VS Code with Electron 6) through VS Code 1.43 (first version of VS Code with Electron 7).
- Atom on Electron 5: Very low idle CPU usage with Electron 5.
-
Are you able to trace back the performance issue to a specific process?
- Yes, GPU process.
- Screenshot of htop showing the Atom GPU process with 99.5% CPU usage
-
Are you able to reproduce this on any other OS or setup?
- No. Can only reproduce on my one machine where I have Linux installed. Old Atom CPU, no GPU.
- Atom built from my branch runs well on Windows. Low idle CPU usage on Windows.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if you saw my above comment about shedding light on the performance issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@DeeDeeG thanks for heads-up, I didn't notice the comment.
I guess we can move forward and put a pin on the performance issue, let's see if we can reproduce this on other machines later on (I added it to the upgrade's checklist)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I filed an issue you can pin if you like: #20924
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made a PR for electron-link which bumps acorn. atom/electron-link#26
The old electron-link fails to parse new JavaScript. This happens in #20965 too
…-chromedriver with current electron version
@DeeDeeG I was wondering if you are able to run |
119 passing (15s)
1 failing
1) AtomWindow creating a real window creates a real, properly configured BrowserWindow:
Error: timeout of 10000ms exceeded. Ensure the done() callback is being called in this test. Edit: Here we go: Passing test run (click to expand):$ script/test
No test folder found for package: atom-dark-syntax
No test folder found for package: atom-dark-ui
No test folder found for package: atom-light-syntax
No test folder found for package: atom-light-ui
No test folder found for package: base16-tomorrow-dark-theme
No test folder found for package: base16-tomorrow-light-theme
No test folder found for package: one-dark-syntax
No test folder found for package: one-light-syntax
No test folder found for package: solarized-dark-syntax
No test folder found for package: solarized-light-syntax
No test folder found for package: language-property-list
No test folder found for package: language-rust-bundled
No test folder found for package: language-source
No test folder found for package: language-typescript
Executing core main process tests
․ AtomApplication command-line interface behavior opens a file to a specific line number: 98ms
․ AtomApplication command-line interface behavior opens a file to a specific line number and column: 14ms
․ AtomApplication command-line interface behavior opens a directory with a non-file protocol: 12ms
․ AtomApplication command-line interface behavior truncates trailing whitespace and colons: 11ms
․ AtomApplication command-line interface behavior disregards test and benchmark windows: 34ms
․ AtomApplication command-line interface behavior with no open windows opens an empty window: 10ms
․ AtomApplication command-line interface behavior with no open windows opens a file: 11ms
․ AtomApplication command-line interface behavior with no open windows opens a directory: 10ms
․ AtomApplication command-line interface behavior with no open windows opens a file with --add: 9ms
․ AtomApplication command-line interface behavior with no open windows opens a directory with --add: 9ms
․ AtomApplication command-line interface behavior with no open windows opens a file with --new-window: 16ms
․ AtomApplication command-line interface behavior with no open windows opens a directory with --new-window: 8ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "no" doesn't res ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "no" doesn't restore windows when launched with no arguments: 6ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "no" doesn't res ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "no" doesn't restore windows when launched with paths to open: 5ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "no" doesn't res ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "no" doesn't restore windows when --new-window is provided: 4ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "yes" restores w ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "yes" restores windows when launched with no arguments: 6ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "yes" doesn't re ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "yes" doesn't restore windows when launched with paths to open: 4ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "yes" doesn't re ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "yes" doesn't restore windows when --new-window is provided: 4ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" restore ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" restores windows when launched with no arguments: 7ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" restore ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" restores windows when launched with a project path to open: 12ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" restore ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" restores windows when launched with a file path to open: 9ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" collaps ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" collapses new paths into restored windows when appropriate: 9ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" doesn't ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" doesn't restore windows when --new-window is provided: 5ms
AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" doesn't ․ AtomApplication command-line interface behavior with no open windows with previous window state with core.restorePreviousWindowsOnStart set to "always" doesn't restore windows on open, just launch: 10ms
․ AtomApplication command-line interface behavior with no open windows with unversioned application state reads "initialPaths" as project roots: 13ms
․ AtomApplication command-line interface behavior with no open windows with unversioned application state filters file paths from project root lists: 8ms
․ AtomApplication command-line interface behavior with one empty window opens a new, empty window: 4ms
․ AtomApplication command-line interface behavior with one empty window opens a file: 3ms
․ AtomApplication command-line interface behavior with one empty window opens a directory: 2ms
․ AtomApplication command-line interface behavior with one empty window opens a file with --add: 2ms
․ AtomApplication command-line interface behavior with one empty window opens a directory with --add: 2ms
․ AtomApplication command-line interface behavior with one empty window opens a file with --new-window: 4ms
․ AtomApplication command-line interface behavior with one empty window opens a directory with --new-window: 4ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a new, empty window: 4ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a file within the project root: 3ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a directory that matches the project root: 2ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a file outside the project root: 3ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a directory other than the project root: 5ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a file within the project root with --add: 3ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a directory that matches the project root with --add: 3ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a file outside the project root with --add: 4ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a directory other than the project root with --add: 4ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a file within the project root with --new-window: 5ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a directory that matches the project root with --new-window: 4ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a file outside the project root with --new-window: 3ms
․ AtomApplication command-line interface behavior with one window that has a project root opens a directory other than the project root with --new-window: 4ms
․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a new, empty window: 4ms
․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a file within the project root: 2ms
․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory that matches the project root: 2ms
․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a file outside the project root: 2ms
․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory other than the project root: 3ms
․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a file within the project root with --add: 2ms
AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory that matches the project root with -- ․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory that matches the project root with --add: 3ms
․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a file outside the project root with --add: 3ms
AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory other than the project root with --ad ․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory other than the project root with --add: 3ms
AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a file within the project root with --new-window: ․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a file within the project root with --new-window: 4ms
AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory that matches the project root with -- ․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory that matches the project root with --new-window: 3ms
AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a file outside the project root with --new-window ․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a file outside the project root with --new-window: 4ms
AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory other than the project root with --ne ․ AtomApplication command-line interface behavior with two windows, one with a project root and one empty opens a directory other than the project root with --new-window: 4ms
․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a new, empty window: 5ms
․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a file within the project root: 3ms
․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory that matches the project root: 2ms
․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a file outside the project root: 3ms
․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory other than the project root: 2ms
․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a file within the project root with --add: 2ms
AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory that matches the project root with -- ․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory that matches the project root with --add: 2ms
․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a file outside the project root with --add: 2ms
AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory other than the project root with --ad ․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory other than the project root with --add: 12ms
AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a file within the project root with --new-window: ․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a file within the project root with --new-window: 6ms
AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory that matches the project root with -- ․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory that matches the project root with --new-window: 5ms
AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a file outside the project root with --new-window ․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a file outside the project root with --new-window: 4ms
AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory other than the project root with --ne ․ AtomApplication command-line interface behavior with two windows, one empty and one with a project root opens a directory other than the project root with --new-window: 5ms
․ AtomApplication command-line interface behavior --wait kills the specified pid after a newly-opened window is closed: 14ms
․ AtomApplication command-line interface behavior --wait kills the specified pid after all newly-opened files in an existing window are closed: 11ms
․ AtomApplication command-line interface behavior --wait kills the specified pid after a newly-opened directory in an existing window is closed: 12ms
․ AtomApplication command-line interface behavior atom:// URLs with a package-name host loads the package's urlMain in a new window: 13ms
․ AtomApplication command-line interface behavior atom:// URLs with a package-name host sends a URI message to the most recently focused non-spec window: 17ms
․ AtomApplication command-line interface behavior atom:// URLs with a package-name host creates a new window and sends a URI message to it once it loads: 18ms
AtomApplication command-line interface behavior atom:// URLs with a "core" host sends a URI message to the most recently focused non-spec window that owns the ․ AtomApplication command-line interface behavior atom:// URLs with a "core" host sends a URI message to the most recently focused non-spec window that owns the open locations: 181ms
․ AtomApplication command-line interface behavior atom:// URLs with a "core" host creates a new window and sends a URI message to it once it loads: 72ms
․ AtomApplication existing application re-use creates a new application when no socket is present: 21ms
․ AtomApplication existing application re-use creates a new application for spec windows: 19ms
․ AtomApplication existing application re-use sends a request to an existing application when a socket is present: 117ms
․ AtomApplication IPC handling "open" opens a fixed path by the standard opening rules: 3ms
․ AtomApplication IPC handling "open" without any option open the prompt for selecting a path: 1ms
․ AtomApplication IPC handling "open-chosen-any" opens a file in the sending window: 102ms
․ AtomApplication IPC handling "open-chosen-any" opens a directory by the standard opening rules: 304ms
․ AtomApplication IPC handling "open-chosen-file" opens a file chooser and opens the chosen file in the sending window: 2ms
․ AtomApplication IPC handling "open-chosen-folder" opens a directory chooser and opens the chosen directory: 3ms
․ AtomApplication window state serialization occurs immediately when adding a window: 13ms
․ AtomApplication window state serialization occurs immediately when removing a window: 13ms
․ AtomApplication window state serialization occurs when the window is blurred: 9ms
․ AtomApplication when closing the last window quits the application: 8ms
․ AtomApplication quitting waits until all windows have saved their state before quitting: 11ms
․ AtomApplication quitting prevents a quit if a user cancels when prompted to save: 7ms
․ AtomApplication quitting closes successfully unloaded windows: 11ms
․ AtomWindow creating a real window creates a real, properly configured BrowserWindow: 5638ms
․ AtomWindow launch behavior ignores title bar style settings: 1ms
․ AtomWindow launch behavior opens initial locations: 1ms
․ AtomWindow launch behavior does not open an initial null location: 0ms
․ AtomWindow launch behavior does not open initial locations in spec mode: 1ms
․ AtomWindow launch behavior focuses the webView for specs: 0ms
․ AtomWindow project root tracking knows when it has no roots: 0ms
․ AtomWindow project root tracking is initialized from directories in the initial locationsToOpen: 1ms
․ AtomWindow project root tracking is updated synchronously by openLocations: 1ms
․ AtomWindow project root tracking is updated by setProjectRoots: 1ms
․ AtomWindow project root tracking never reports that it owns the empty path: 1ms
․ AtomWindow project root tracking discovers an exact path match: 1ms
․ AtomWindow project root tracking discovers the path of a file within any project root: 0ms
․ AtomWindow project root tracking reports that it owns nonexistent paths within a project root: 1ms
․ AtomWindow project root tracking never reports that it owns directories within a project root: 1ms
․ AtomWindow project root tracking checks a full list of paths and reports if it owns all of them: 0ms
․ FileRecoveryService doesn't create a recovery file when the file that's being saved doesn't exist yet: 1ms
․ FileRecoveryService when no crash happens during a save creates a recovery file and deletes it after saving: 44ms
FileRecoveryService when no crash happens during a save creates only one recovery file when many windows attempt to save the same file, deleting it when the la ․ FileRecoveryService when no crash happens during a save creates only one recovery file when many windows attempt to save the same file, deleting it when the last one finishes saving it: 34ms
․ FileRecoveryService when a crash happens during a save restores the created recovery file and deletes it: 146ms
FileRecoveryService when a crash happens during a save restores the created recovery file when many windows attempt to save the same file and one of them crash ․ FileRecoveryService when a crash happens during a save restores the created recovery file when many windows attempt to save the same file and one of them crashes: 176ms
․ parseCommandLine when --uri-handler is not passed parses arguments as normal: 1ms
․ parseCommandLine when --uri-handler is passed ignores other arguments and limits to one URL: 1ms
120 passing (9s)
$ git_status_branch
On branch electron-6.1.12-merge-master
Your branch is up to date with 'deedeeg/electron-6.1.12-merge-master'.
|
@DeeDeeG about the time outs, from Hacking on Atom Core You can set Meanwhile, I can get the core tests passing locally and on the CI, but when it executes core render process or bundled packages it times out (because the app fails unexpectedly). You can reproduce this on windows or linux by running |
@lkashef Hmm yeah. I see a big Chrome devtools screen with a console error. It seems like the crash reporter itself experiences an error as well? index.js:129 TypeError: Error processing argument at index 4, conversion failure from null
at CrashReporterRenderer.start (/home/[user]/atom/out/atom-dev-1.50.0-dev-39d2bd480-amd64/resources/electron.asar/common/crash-reporter.js:31)
at module.exports (/home/[user]/atom/src/crash-reporter-start.js:8)
at setupWindow (index.js:155)
at window.onload (index.js:106)
handleSetupError @ index.js:129 |
@DeeDeeG exactly, atom crashes and then it attempt to run the crash reporter but it crashes itself. it looks like something related to the way specs spin up atom (headless). A wild guess (still debugging) but might be related to the snapshot.
Update:I fixed the blocking issues:
Our current blockers are linux performance and electron download/packaging step, hopefully if the tests passed on Mac and Windows and on @DeeDeeG's local linux machine is a good indicator. It seems that electron-packager (the package that downloads electron platform specific binary) is required to be v14+ and between v12 and v14, they have changed their unzipping npm module, which might explain the flakiness. @DeeDeeG if you are able to share the dependencies of electron-packager from package-lock.json after you bootstrap/build on linux, it might be helpful to compare what I have and see if a version bump or downgrade would help us move forward, much appreciated 🙇♂️ |
@lkashef Here is what I have in script/package-lock.json snippet (click to expand) "electron-packager": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-14.2.1.tgz",
"integrity": "sha512-g6y3BVrAOz/iavKD+VMFbehrQcwCWuA3CZvVbmmbQuCfegGA1ytwWn0BNIDDrEdbuz31Fti7mnNHhb5L+3Wq9A==",
"requires": {
"@electron/get": "^1.6.0",
"asar": "^2.0.1",
"cross-zip": "^3.0.0",
"debug": "^4.0.1",
"electron-notarize": "^0.2.0",
"electron-osx-sign": "^0.4.11",
"fs-extra": "^8.1.0",
"galactus": "^0.2.1",
"get-package-info": "^1.0.0",
"junk": "^3.1.0",
"parse-author": "^2.0.0",
"plist": "^3.0.0",
"rcedit": "^2.0.0",
"resolve": "^1.1.6",
"sanitize-filename": "^1.6.0",
"semver": "^6.0.0",
"yargs-parser": "^16.0.0"
},
"dependencies": {
"asar": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/asar/-/asar-2.1.0.tgz",
"integrity": "sha512-d2Ovma+bfqNpvBzY/KU8oPY67ZworixTpkjSx0PCXnQi67c2cXmssaTxpFDUM0ttopXoGx/KRxNg/GDThYbXQA==",
"requires": {
"@types/glob": "^7.1.1",
"chromium-pickle-js": "^0.2.0",
"commander": "^2.20.0",
"cuint": "^0.2.2",
"glob": "^7.1.3",
"minimatch": "^3.0.4",
"mkdirp": "^0.5.1",
"tmp-promise": "^1.0.5"
}
}, |
Thanks @DeeDeeG, I apologize if I wasn't clear, I wanted to check the |
My I think if the If you mean that you need the whole file, I can do that: https://gist.github.com/DeeDeeG/61b72dd8d6bd93f3c6c089ff9105e848 This is the same as what is committed to my branch, though. Same as committed to https://github.com/atom/atom/commits/electron-6.1.12-merge-master, as none of your fixes appear to have altered |
If I am reading this correctly, the CI is "restoring a " Could (temporarily) modify this part of the CI script: https://github.com/atom/atom/blob/bd772b9/script/vsts/platforms/linux.yml#L33-L48 or here: https://github.com/atom/atom/blob/bd772b9/script/vsts/platforms/linux.yml#L60 Either always bootstrap, or disable restoring cache. (Running this once should fix things, and then the change to CI scripts can be reverted.) |
@DeeDeeG in a perfect scenario that's how package-lock.json works, but if one of the dependencies has changed it's dependency or any dependency on the tree for that matter, it could result in a different set of dependencies installed, in that case I suspecting a utility sub sub dependency of electron that downloads/zips the electron platform specific compiler. You are right about the bootstrap/cache steps but since your branch had the correct version to begin with, I didn't think we would need to bust the cache but let me do that, in case the new binary re-download bit, has changed something I didn't foresee. |
@@ -10,10 +10,10 @@ | |||
"coffeelint": "1.15.7", | |||
"colors": "1.1.2", | |||
"donna": "1.0.16", | |||
"electron-chromedriver": "^9.0.0", | |||
"electron-link": "0.4.1", | |||
"electron-chromedriver": "^6.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
electron-chromedriver@6.0.0
won't work because of a test I modified that now requires electron-chromedriver
to be >= 9.0.0. So script/bootstrap
fails.
Those tests are in script/lib/check-chromedriver-version.js
Those tests are kind of silly though, because if we want electron-chromedriver
and electron-mksnapshot
to be >v9, we'll specify them like that in package.json
. Maybe those tests should be deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I resumed working based on your branch, the electron-chromedriver
is v9, and the build is failing only on linux at build stage when downloading electron core.
Actually I like the checks you did, it's an adapted convention to save the next person from pulling their hair out, trying to figure out what went wrong, such failures due to dependencies mismatch, doesn't always show a useful error message, specially with your code for re-downloading binaries, I would rather keep the checks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, thanks for letting me know.
I don't understand why CI failed [edit: on my branch + your added commits]. It might pass if restarted? It works for me locally.
I have to guess it's something odd with the CI environment, not a problem for actual developers on their local machines. As far as I can tell.
Here's another branch to try. I bumped TODO: get them to make a new release so we don't have to use a git dependency in @lkashef, if you get a chance, could you re-run the CI, and/or try this branch (DeeDeeG/electron-6.1.12-bump-electron-packager-from-git)? |
I made a PR for electron-link which bumps acorn. atom/electron-link#26 The old electron-link fails to parse new JavaScript. This happens in #20965 too |
@DeeDeeG They have registered a new version. |
@aminya, thanks for letting me know! Now we don't need to have a github URL dependency in I have uploaded a branch using the new By the way, thank you to whoever ran the CI on my similar branch. It passed: I would expect/hope results to be the same with the new branch/commit I posted in this comment. (Nothing changed at upstream |
Regarding electron-link, I have registered my pull request under
@DeeDeeG Could you make a pull request to master instead like how I am doing it? It is better not to make this electron-bump PR huge if it is independent. Hopefully, someone will merge it. 😁 |
MOVED TO #21079