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

Update Electron and associated dependencies #1771

Merged
merged 2 commits into from
Feb 10, 2020
Merged

Conversation

belcherj
Copy link
Contributor

@belcherj belcherj commented Dec 10, 2019

Fix

This updates the Electron dependencies to the latest. In doing so we need to
have a minimum of Node 12 which is required by Electron 7. We also need to move
the Windows build from AppVeyor to CircleCi.

Test

Test the Electron builds. This is a multiple point update so we should expect something to break.

Review

Only one developer is required to review these changes, but anyone can perform the review.

Release

RELEASE-NOTES.txt was updated with:

  • Update Electron and associated dependencies

@belcherj belcherj self-assigned this Dec 10, 2019
@belcherj belcherj requested a review from nsakaimbo December 11, 2019 16:47
@nsakaimbo
Copy link

Tried to take a closer look at the Windows code-signing failure, which I'm running into locally.

error   P R I 1 9 1 :   0 x 8 0 0 7 0 0 7 e   -   A p p x   m a n i f e s t   n o t   f o u n d   o r   i s   i n v a l i d .   P l e a s e   e n s u r e   w e l l - f o r m e d   m a n i f e s t   f i l e   i s   p r e s e n t .   O r   s p e c i f y   a n   i n d e x   n a m e   w i t h   / i n   s w i t c h

===================

  • The Appx manifest is present in the location passed to makepri.exe
  • What's odd is the error is occurring for me on both develop and the upgrade branch, which is perplexing. Perhaps the borked state is being cached somehow?
  • Inspecting pre- and post- upgrade xml manifests yields the following, but not sure if the differences are material or not.
BEFORE: Publisher='CN="Automattic, Inc.", O="Automattic, Inc.", L=San Francisco, S=California, C=US'
AFTER: Publisher='CN="Automattic, Inc.",O="Automattic, Inc.",L=San Francisco,ST=California,C=US'
BEFORE:  <uap:DefaultTile Wide310x150Logo="assets\Wide310x150Logo.png" />
        
      
    </Application>
  </Applications>
</Package>
      </uap:VisualElements>
      
AFTER: Wide310x150Logo="assets\Wide310x150Logo.png" />
        
      </uap:VisualElements>
      
    </Application>
  </Applications>
</Package>

@belcherj belcherj force-pushed the update/electron branch 2 times, most recently from b151c3e to 3d03790 Compare January 3, 2020 17:08
@belcherj belcherj marked this pull request as ready for review February 4, 2020 21:03
@belcherj belcherj force-pushed the update/electron branch 2 times, most recently from bddeb88 to 750c971 Compare February 4, 2020 21:32
.circleci/config.yml Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
@dmsnell
Copy link
Member

dmsnell commented Feb 6, 2020

Testing

  • Started by removing node_modules, setting node to 12.14.1
  • Ran npm test and all tests passed
  • Ran npm run dev and it failed with Unable to find electron's version number, either install it or specify an explicit version

Are you able to build this locally?

@belcherj
Copy link
Contributor Author

belcherj commented Feb 6, 2020

Windows build

Testing

  • Logout
  • Login with wrong password fails
  • Login with correct password
  • Create new note appears in other device
  • Changes to new note sync to other device
  • Changes to new note sync from other device (after debounce delay)
  • New tag immediately syncs to other device
  • New tag immediately syncs from other device
  • Removed tag immediately syncs to other device
  • Removed tag immediately syncs from other device
  • Note publishes with link
  • Note unpublishes
  • Note publish change syncs from other device (visible with dialog open)
  • Markdown setting syncs from other device
  • Preview mode disappears/reappears when receiving remote changes to markdown setting
  • Note pinning syncs immediately from either direction
  • Note pinning works regardless if clicking in list view or from note info
  • Viewing history on one device leaves note unchanged on other device
  • Restoring history immediately syncs note from both directions
  • Restoring history revisions updates pinned status
  • Restoring history revisions updates markdown status
  • Restoring history revisions updates publish status
  • Can view trashed notes by clicking on Trash
  • Can delete note forever from trash screen
  • Can restore note from trash screen
  • Can trash note
  • Can preview markdown with 👁 button
  • Can flip to edit mode with 👁 button
  • Markdown rendered in note list when markdown enabled
  • Markdown syntax unrendered in note list when markdown disabled
  • Can filter by tag when clicking on tag in tag drawer
  • Can search by keyword with tag selected
  • Searching in the search field highlights matches in note list
  • Searching in the search field highlights matches in the note editor
  • Searching in the search field highlights matches in the note editor during preview
  • Clearing the search field immediately updates filtered notes
  • Clicking on different tags or All Notes or Trash immediately updates filtered notes
  • Can search by keyword, filtering debounced
  • Tag auto-completes appear when typing in search field
  • Typing tag: does not result a list of all tags in the autocompleter
  • Typing tag: and something else, like tag:te results in autocomplete results starting with that something else, e.g. test
  • Search field updates with results of tag:test format search string
  • Can toggle sidebar
  • Syncs when introducing sequential surrogate pairs sharing the same high surrogate, e.g. 🅰🅱 to 🅰🅰🅱
  • When disabling network connectivity, changes start counting in unsync'ed changes counter
  • When going back online changes sync and counter resets to All chagnes synced
  • Can change analytics sharing setting
  • Changing Note Display mode immediately updates and reflects in note list
  • With sidebar disabled, toggling Line Length between Narrow and Full removes and adds border around note content appropriately and immediately.
  • Changing Sort Type mode immediately updates and reflects in note list
  • Toggling Sort Order immediately updates and reflects in note list for each sort type
  • For each sort type the pinned notes appear first in the note list
  • Changing Theme immediately updates app for desired color scheme
  • Using the Insert checklist item from the format menu inserts a checklist
  • "Undo" undoes the last edit
  • Typing - [ ] creates a checked checklist item
  • Typing - [ ] created an unchecked checklist item
  • Typing - creates a list
  • Typing tab in a list item underneath another list item indents item
  • Typing shift tab in the same spot unindents the list
  • Changing - to + changes the list item bullet, also for * and (\u2022)
  • All list bullet types render to markdown lists
  • CmdOrCtrl + shift + p toggles preview mode
  • CmdOrCtrl + shift + (k or up) selects next note above current note, stops at top of list
  • CmdOrCtrl + shift + (j or down) selects next note below current note, stops at bottom of list
  • CmdOrCtrl + t toggles tab list
  • CmdOrCtrl + n creates new note
  • CmdOrCtrl + shift + n when in small screen mode navigates to note list

@belcherj
Copy link
Contributor Author

belcherj commented Feb 6, 2020

Linux build

Testing

  • Logout
  • Login with wrong password fails
  • Login with correct password
  • Create new note appears in other device
  • Changes to new note sync to other device
  • Changes to new note sync from other device (after debounce delay)
  • New tag immediately syncs to other device
  • New tag immediately syncs from other device
  • Removed tag immediately syncs to other device
  • Removed tag immediately syncs from other device
  • Note publishes with link
  • Note unpublishes
  • Note publish change syncs from other device (visible with dialog open)
  • Markdown setting syncs from other device
  • Preview mode disappears/reappears when receiving remote changes to markdown setting
  • Note pinning syncs immediately from either direction
  • Note pinning works regardless if clicking in list view or from note info
  • Viewing history on one device leaves note unchanged on other device
  • Restoring history immediately syncs note from both directions
  • Restoring history revisions updates pinned status
  • Restoring history revisions updates markdown status
  • Restoring history revisions updates publish status
  • Can view trashed notes by clicking on Trash
  • Can delete note forever from trash screen
  • Can restore note from trash screen
  • Can trash note
  • Can preview markdown with 👁 button
  • Can flip to edit mode with 👁 button
  • Markdown rendered in note list when markdown enabled
  • Markdown syntax unrendered in note list when markdown disabled
  • Can filter by tag when clicking on tag in tag drawer
  • Can search by keyword with tag selected
  • Searching in the search field highlights matches in note list
  • Searching in the search field highlights matches in the note editor
  • Searching in the search field highlights matches in the note editor during preview
  • Clearing the search field immediately updates filtered notes
  • Clicking on different tags or All Notes or Trash immediately updates filtered notes
  • Can search by keyword, filtering debounced
  • Tag auto-completes appear when typing in search field
  • Typing tag: does not result a list of all tags in the autocompleter
  • Typing tag: and something else, like tag:te results in autocomplete results starting with that something else, e.g. test
  • Search field updates with results of tag:test format search string
  • Can toggle sidebar
  • Syncs when introducing sequential surrogate pairs sharing the same high surrogate, e.g. 🅰🅱 to 🅰🅰🅱
  • When disabling network connectivity, changes start counting in unsync'ed changes counter
  • When going back online changes sync and counter resets to All chagnes synced
  • Can change analytics sharing setting
  • Changing Note Display mode immediately updates and reflects in note list
  • With sidebar disabled, toggling Line Length between Narrow and Full removes and adds border around note content appropriately and immediately.
  • Changing Sort Type mode immediately updates and reflects in note list
  • Toggling Sort Order immediately updates and reflects in note list for each sort type
  • For each sort type the pinned notes appear first in the note list
  • Changing Theme immediately updates app for desired color scheme
  • Using the Insert checklist item from the format menu inserts a checklist
  • "Undo" undoes the last edit
  • Typing - [ ] creates a checked checklist item
  • Typing - [ ] created an unchecked checklist item
  • Typing - creates a list
  • Typing tab in a list item underneath another list item indents item
  • Typing shift tab in the same spot unindents the list
  • Changing - to + changes the list item bullet, also for * and (\u2022)
  • All list bullet types render to markdown lists
  • CmdOrCtrl + shift + p toggles preview mode
  • CmdOrCtrl + shift + (k or up) selects next note above current note, stops at top of list
  • CmdOrCtrl + shift + (j or down) selects next note below current note, stops at bottom of list
  • CmdOrCtrl + t toggles tab list
  • CmdOrCtrl + n creates new note
  • CmdOrCtrl + shift + n when in small screen mode navigates to note list

@belcherj
Copy link
Contributor Author

belcherj commented Feb 6, 2020

Windows issues

@dmsnell
Copy link
Member

dmsnell commented Feb 6, 2020

Moving from to preview right after making changes on the Windows app losses those changes. Broken in previous version, did update after taking some time.

This should be fixed in develop and a rebase would catch it. It was introduced in the selected note refactor not in this branch

This updates the Electron dependencies to the latest. In doing so we need to
have a minimum of Node 12 which is required by Electron 7. We also need to move
the Windows build from AppVeyor to CircleCi.
@belcherj
Copy link
Contributor Author

belcherj commented Feb 7, 2020

Both checklists complete, no new bugs. I think it is ready to ship!!!

import(
/*
webpackChunkName: 'source-importer',
webpackPrefetch: true,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there an explanation for why we're removing this? I didn't see any webpack version changes or implications from the rest of the PR why this would need to go.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From Slack:

init.ts:204 Unable to load preload script: ~/simplenote-electron/desktop/preload.js

I was unable to reproduce this error but I have seen similar ones before. It seems like this is probably fine to leave in but it's also the only invocation of it in the repository. The directive will preload the script during CPU idle time, meaning that imports start a hair earlier.

All that being said, while I think it's going to be better either leaving this in or taking it out in a separate PR with an explanation for the removal, it seems like such a small enough issue and already that it's an outlier that I don't think we need to block this PR to undo the change.

@dmsnell
Copy link
Member

dmsnell commented Feb 10, 2020

Testing

  • Logout
  • Login with wrong password fails
  • Login with correct password
  • Create new note appears in other device
  • Changes to new note sync to other device
  • Changes to new note sync from other device (after debounce delay)
  • New tag immediately syncs to other device
  • New tag immediately syncs from other device
  • Removed tag immediately syncs to other device
  • Removed tag immediately syncs from other device
  • Note publishes with link
  • Note unpublishes
  • Note publish change syncs from other device (visible with dialog open)
  • Markdown setting syncs from other device
  • Preview mode disappears/reappears when receiving remote changes to markdown setting
  • Note pinning syncs immediately from either direction
  • Note pinning works regardless if clicking in list view or from note info
  • Viewing history on one device leaves note unchanged on other device
  • Restoring history immediately syncs note from both directions ⭕️ (on the web app I saw the revision immediately appear after restoring in Electron but then it also immediately undid the restore. after the restore I have both windows open with different versions of the note. the web app has two new revisions and reloading doesn't change anything. the electron app doesn't show those changes but after a reload it does. I recreated the sequence and made another edit in the web version and although that change appeared in the note list, the note editor didn't receive the update. switching notes and coming back resolved it)
  • Restoring history revisions updates pinned status ⭕️ (also in develop)
  • Restoring history revisions updates markdown status ⭕️ (also in develop)
  • Restoring history revisions updates publish status ⭕️ (also in develop)
  • Can view trashed notes by clicking on Trash
  • Can delete note forever from trash screen
  • Can restore note from trash screen
  • Can trash note
  • Can preview markdown with 👁 button
  • Can flip to edit mode with 👁 button
  • Markdown rendered in note list when markdown enabled
  • Markdown syntax unrendered in note list when markdown disabled
  • Can filter by tag when clicking on tag in tag drawer
  • Can search by keyword with tag selected
  • Searching in the search field highlights matches in note list
  • Searching in the search field highlights matches in the note editor
  • Searching in the search field highlights matches in the note editor during preview ⭕️ (also in develop)
  • Clearing the search field immediately updates filtered notes
  • Clicking on different tags or All Notes or Trash immediately updates filtered notes
  • Can search by keyword, filtering debounced
  • Tag auto-completes appear when typing in search field
  • Typing tag: does not result a list of all tags in the autocompleter
  • Typing tag: and something else, like tag:te results in autocomplete results starting with that something else, e.g. test
  • Search field updates with results of tag:test format search string
  • Can toggle sidebar
  • Syncs when introducing sequential surrogate pairs sharing the same high surrogate, e.g. 🅰🅱 to 🅰🅰🅱
  • When disabling network connectivity, changes start counting in unsync'ed changes counter
  • When going back online changes sync and counter resets to All chagnes synced
  • Can change analytics sharing setting
  • Changing Note Display mode immediately updates and reflects in note list
  • With sidebar disabled, toggling Line Length between Narrow and Full removes and adds border around note content appropriately and immediately.
  • Changing Sort Type mode immediately updates and reflects in note list
  • Toggling Sort Order immediately updates and reflects in note list for each sort type
  • For each sort type the pinned notes appear first in the note list
  • Changing Theme immediately updates app for desired color scheme
  • Using the Insert checklist item from the format menu inserts a checklist
  • "Undo" undoes the last edit
  • Typing - [ ] creates a checked checklist item
  • Typing - [ ] created an unchecked checklist item
  • Typing - creates a list
  • Typing tab in a list item underneath another list item indents item
  • Typing shift tab in the same spot unindents the list
  • Changing - to + changes the list item bullet, also for * and (\u2022)
  • All list bullet types render to markdown lists ⭕️ (\u2022 doesn't render as a list in rendered Markdown, also in develop)
  • CmdOrCtrl + shift + p toggles preview mode
  • CmdOrCtrl + shift + (k or up) selects next note above current note, stops at top of list
  • CmdOrCtrl + shift + (j or down) selects next note below current note, stops at bottom of list
  • CmdOrCtrl + t toggles tab list ⭕️ (also in develop)
  • CmdOrCtrl + n creates new note
  • CmdOrCtrl + shift + n when in small screen mode navigates to note list

@dmsnell
Copy link
Member

dmsnell commented Feb 10, 2020

Restoring history immediately syncs note from both directions

With further testing this appears related to tags more than content

@belcherj belcherj merged commit 1632c11 into develop Feb 10, 2020
@belcherj belcherj deleted the update/electron branch February 10, 2020 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants