Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 34f97dbcffbd032d08abc6f351a95c4a28418cf9
Author: Alex Cui <cuizhihui030925@outlook.com>
Date:   Sat Jun 5 00:52:22 2021 +0800

    Modified files

commit b0f9630623bf843762b4ef4b1c75379fef0e0c39
Merge: 433c0e1 a72614d
Author: Alex Cui <cuizhihui030925@outlook.com>
Date:   Sat Jun 5 00:51:46 2021 +0800

    Merge remote-tracking branch 'remotes/llk/develop' into sync-llk

commit 433c0e16586807f5714a32200730fda8d268c72f
Merge: 546cc5f 18d5dfc
Author: Alex Cui <cuizhihui030925@outlook.com>
Date:   Sat Jun 5 00:15:22 2021 +0800

    Merge branch 'master' into sync-llk

commit a72614d00f5b50dbf99a28ef918734b58c3465a0
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Jun 2 23:40:23 2021 -0700

    3.23.1

commit 0f5cb709a1835aca162a67b4860fa9ace53af70e
Merge: 0bfbe0a 5831e8b
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Jun 2 23:39:16 2021 -0700

    Merge pull request #197 from LLK/csc-gz

    Fix automated builds

commit 5831e8bfa129f89c0964a7df5b9b6e4a54dd502c
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Jun 2 21:38:02 2021 -0700

    update handling of context vars on CircleCI

commit 24d704a0012390238f12442fd7377fcfb1eca04b
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Jun 2 22:21:01 2021 -0700

    update to electron-builder@22.11.5

commit 1c4aa2b7555218f98f9c7efb4d2db54a3773fa0a
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Jun 2 22:43:07 2021 -0700

    use Node 14 on CircleCI

commit 0bfbe0a263c038f346cb530b3282f4b057542be8
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Jun 2 11:14:12 2021 -0700

    3.23.0

commit 4f99e91e51083b69ad3c503d5ab1fb10faa12119
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Jun 2 11:13:25 2021 -0700

    bump scratch-gui to scratch-desktop-v3.23.0

commit cf4d0bea138857dec2489e88c920ce58b6cb4a46
Merge: 0a6aad3 fedb21f
Author: DD Liu <liudi08@gmail.com>
Date:   Tue Jun 1 15:12:03 2021 -0400

    Merge pull request #196 from fsih/updateUploadComment

    Update comment to reflect camera upload feature removal

commit fedb21f39179e85af8cda13e0cb44b78717c1d45
Author: DD Liu <liudi@media.mit.edu>
Date:   Tue Jun 1 13:46:19 2021 -0400

    Update comment

commit 0a6aad3e867059e18d88373cf8718d4654a42e8d
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu May 6 11:50:24 2021 -0700

    3.22.0

commit 2a6893d58eb10aa572cd08dbb1159343a39343e5
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu May 6 11:49:46 2021 -0700

    add release instructions to README.md

commit 1c75d4d2fab98906935f4ec02c83984b61af6537
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu May 6 11:46:31 2021 -0700

    bump scratch-gui to scratch-desktop-v3.22.0

commit 8a3bb14b6261f800ddfa7c73fbae9ba4d509c5d9
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Mar 31 15:38:58 2021 -0700

    3.21.0

commit b16c221bcc2cf9f7566a2e69e8ba52f80ca49e50
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Mar 31 15:38:39 2021 -0700

    bump scratch-gui to scratch-desktop-v3.21.0

commit 419ece9efe8fcc9e109f0d59faf5571466fd4112
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Mar 3 18:48:48 2021 -0800

    3.20.1

commit f5ff9d6a40a3b99d2d4d40fa9434a15e12f21bd1
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Mar 3 18:48:40 2021 -0800

    bump scratch-gui for 3.20.1

commit 712a6a22c1be34bcd4d38bda01bf62125aa287ed
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Mar 2 10:34:15 2021 -0800

    3.20.0

commit 0b882673396fa57c1e4071ed3d425cb32a9f6b4e
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Mar 2 10:34:08 2021 -0800

    bump scratch-gui for 3.20.0

commit e566df37154ae1970a4a3de49c75fb6aa1c346f3
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Jan 28 14:46:53 2021 -0800

    3.19.2

commit 35f9001eec1c77a049ebfa219cff27251d329239
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Jan 28 14:13:21 2021 -0800

    build APPX for both 32-bit and 64-bit

    Previous APPX packages were 32-bit by default. At some point this
    switched to 64-bit by default, but I didn't notice because the APPX
    release was blocked at the time. This change enables both, which seems
    ideal the MS Store will choose the right build for a given client.

commit bcc821d3eaf9bccc1f9b8960119e0c081a309c41
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Jan 28 11:18:05 2021 -0800

    3.19.1

commit 603d92685671653f8c5f0f7e4e790d02e468c25a
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Jan 28 11:17:53 2021 -0800

    Use ${productName} in privacy policy window title

commit 9d5dab22a8641cdd30bdd8f058efa299fae35301
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Jan 26 14:47:04 2021 -0800

    3.19.0

commit de64af99f37b6363bb6c414d881144432b0e3fad
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Jan 26 14:46:53 2021 -0800

    bump scratch-gui for 3.19.0

commit c8c9ae51f4b689f59f27dcc9636ad8a67e4cdbe1
Merge: 0b8ce6c 728d705
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Jan 26 14:25:44 2021 -0800

    Merge pull request #166 from cwillisf/fix-telemetry-modal

    Fix telemetry modal

commit 728d705b1ac6768c47c89a8297cf77c838f7f977
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Jan 26 14:17:22 2021 -0800

    fix merge & rearrange components to satisfy lint

commit 3d0963fbd7687f976d2f8ff984ef4cd1360a9775
Merge: c110b13 0b8ce6c
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Jan 26 12:39:58 2021 -0800

    Merge branch 'develop' into fix-telemetry-modal

commit 0b8ce6cc00413eb4442a3b28ff9b007c59342c41
Merge: d8f289f 7f8d0d7
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Jan 26 12:03:58 2021 -0800

    Merge pull request #171 from cwillisf/privacy-policy

    Show privacy policy inside app

commit 7f8d0d7084c0f960a4ad9da814b27cbdebeb57bc
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Dec 15 15:28:39 2020 -0800

    remove now-unused clearDidOptIn

commit bcc9ff5c1e00b447ab4e7987e8e2e7d65482231a
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Dec 15 15:25:03 2020 -0800

    avoid IPC sendSync in render()

commit c110b13affc12cf6cf9443bda943caa25eb1471a
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Dec 9 14:02:08 2020 -0800

    clarify HOC names and move props to match

    Previously the two HOCs in app.jsx were named according to their place
    in the component structure, which didn't provide any information about
    their functionality or meaning. Now they are named according to the
    components they wrap, which should help with future maintenance in that
    it will guide which props belong in each.

commit 6e840825ccddf1f0d29ef441ff3306fee9643d5f
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Dec 2 14:24:58 2020 -0800

    apply feedback from design team

commit d56a3c58101a92625bd21ab155aae855fdeda823
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Dec 2 14:03:57 2020 -0800

    keep telemetry modal state in sync with main process

commit afb29bfdefa4c811a50112f5a3758e663b5122b4
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Nov 18 15:34:01 2020 -0800

    use openTelemetryModal instead of showTelemetryModal

commit 25072c00463cfaf151334506c81e3548b935abf6
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Nov 17 15:02:47 2020 -0800

    pass about menu items to GUI

commit 6c00bb1539f35745ed582d64e44566f8d4ba2d59
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Nov 17 16:13:18 2020 -0800

    add telemetry reset instructions to README.md

commit 19a47ecde87f7cdfe07d86569cd1f919ffef7e3f
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Nov 17 15:55:30 2020 -0800

    split HOC in two: one inside AppStateHOC, one out

    `ScratchDesktopOuterComponent` is now responsible for
    `showTelemetryModal` which only works if it comes from outside the
    `AppStateHOC` since it's used in the `AppStateHOC` constructor. The
    outer component also handles a few static props, like
    `isScratchDesktop`.

    `ScratchDesktopInnerComponent` handles everything else, most notably
    anything that interacts with the state established by `AppStateHOC`.

commit d8f289f35a8c216f37054932b660eb638daf1fb5
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Oct 28 15:54:01 2020 -0700

    3.18.1

commit bf420cb7647d849763a862f34efb75512515120c
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Oct 28 15:47:58 2020 -0700

    fix fetch script for new library schema

commit 9c3cfef44373eb659699f6016abc650718d7d3d0
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Oct 28 14:47:34 2020 -0700

    3.18.0

commit 421a21cca1e9cc13f11677803768eaffe15f63ce
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Oct 28 14:47:25 2020 -0700

    bump scratch-gui for v3.18.0

commit b053b5ce2ebd8b1f79b23b6b5bd272a1d770fbda
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Fri Oct 16 11:34:36 2020 -0700

    3.17.1

commit 24ddb8aa9c8c36fd6caf78d4d17ff96cec9a4c3c
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Fri Oct 16 11:21:45 2020 -0700

    bump scratch-gui for v3.17.1

commit 4f5a14afeb6089aa0b468a0f92471270e74dae89
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Fri Oct 9 16:50:57 2020 -0700

    3.17.0

commit d455547ef1a7626bc0ac8a26371edca361125d0f
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Fri Oct 9 16:50:23 2020 -0700

    update to scratch-gui#scratch-desktop-v3.17.0

    includes svg-renderer on* hotfix

commit 4fe9e5b703b548cc72d590209001fe71ce2c3001
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Oct 7 18:23:50 2020 -0700

    fix lint: long lines

commit 10b2bae67084351a58b6699714cdb3d4255dbc9e
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Oct 7 18:17:54 2020 -0700

    update privacy policy to October 5, 2020 copy

commit 371bd60a7db615962e973813e9b6195a79fee9a5
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Oct 6 14:34:04 2020 -0700

    move ReactDOM.render() into index.js

    This also means we no longer need to disable eslint's
    "no-unused-expressions" rule for each route in index.js

commit 73819d8eb7ed540c1101c5124b3537a092e1fdb3
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Oct 6 14:34:04 2020 -0700

    view built-in privacy policy from telemetry dialog

commit ca7eeb9b7aebd0e992ea613841ed06368fe97956
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Oct 6 14:34:03 2020 -0700

    add privacy policy link to 'about' dialog

commit fb26baeac10683d01c4fdae565090839caf932fb
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Oct 6 14:34:03 2020 -0700

    app.jsx cleanup

commit 3b1dd4e008e822269e49379863fb72582a5bdedc
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Oct 6 14:34:01 2020 -0700

    open external links in system browser

commit 8fc98e1c37096ddf27e441941fba9a55a7ef11ca
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Oct 6 14:34:01 2020 -0700

    add new window for privacy policy

commit 93a94d82533863bd5f85c23e4cdc2fa6a319e6f8
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Oct 6 14:34:01 2020 -0700

    move About window styling into a CSS file

commit 6b1d93fc93fa66147a7e9d00d5ba6befac8c76af
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Sep 30 09:33:31 2020 -0700

    3.16.1

commit 34db5ceaacd415d99fb7c5d0f164335f55995ed9
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Sep 30 09:32:51 2020 -0700

    during webpack, find modules using require.resolve

    This means the module will be found whether linked (as with `npm link`)
    or not.

commit d3fddbe31766c9869b68d0b084b38453c0bdae59
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Sep 29 15:38:27 2020 -0700

    3.16.0

commit a6ed3adc86b20766fe19c6f4498903105c6b1786
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Sep 29 15:38:18 2020 -0700

    update to scratch-gui#scratch-desktop-v3.16.0

commit b05c2c16024b243413214201c65f398e9a41c545
Merge: 0c5993c 0fa4c4b
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Sep 29 13:56:30 2020 -0700

    Merge pull request #150 from cwillisf/load-project-from-cli-attempt-2

    Support loading project file from command line (attempt 2)

commit 0c5993c8416d9bdd436c71b6c7be344ab4ab914f
Merge: ac69356 8091648
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Sep 24 13:04:41 2020 -0700

    Merge pull request #137 from cwillisf/redo-rename

    Revert "Revert "Merge pull request #131 from cwillisf/rename-to-scratch

commit 809164880337ed722d5fb84195def89851b765d8
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Sep 17 12:07:08 2020 -0700

    use 'Scratch 3' for external product name

    also tweak artifact names to get the "3" part from the version number

commit 7c6e8a97ccbdb8e1df146611ae8e176c28c71810
Merge: 8578d60 ac69356
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Sep 16 16:08:27 2020 -0700

    Merge branch 'develop' into redo-rename

commit ac6935660a94aa381431ee462dedd13f9d476a1a
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Sep 16 16:04:23 2020 -0700

    update README.md for scratch-gui build changes

commit 0fa4c4b2ed88e6e3532ecc3914ecb2e1492af8ab
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Sep 15 14:52:08 2020 -0700

    handle initial project load errors

commit a9933242e0daa417fd9ccb2492b33f83f77d5954
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Sep 15 14:32:36 2020 -0700

    use project state system to load initial project

commit 05e8b26a34d1a749b174660c6b9afef3cd5c6de6
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Fri Sep 4 13:26:34 2020 -0700

    WIP: actually load project from command line

    Doing it this way works for the initial load but overrides later actions
    like File -> New.

commit e2f39580dfe2c9c961f9d93511ef9b851623edf6
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Sep 3 17:01:22 2020 -0700

    make command line args available to render process

commit 25243b0542dd6f13c3ae87814f3b988a9206f840
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Sep 3 16:11:01 2020 -0700

    npm i --save-dev minimist

commit cca18b6d672332034f86805244feee4f47e86c32
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Sep 3 16:55:44 2020 -0700

    fix paths for CopyWebpackPlugin

    These files are no longer listed as dependencies of scratch-desktop so
    we need to reach into scratch-gui to get them. We should find a better
    solution but this will work for now.

commit e0fb2d4c5364bb225b33e2a842c20520b5ca6b8a
Merge: 6d503f2 61fa1d5
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Sep 3 15:37:04 2020 -0700

    Merge pull request #148 from cwillisf/no-package-deps

    remove rebuild-deps script, package-deps.json

commit 61fa1d580b7fceb56b49fd0e64c6b0e11115fe55
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Sep 3 13:04:11 2020 -0700

    rebuild package-lock.json now that scratch-gui PR is merged

commit 307027a8730edce6e9f188893b13c86e9d9b9450
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Sep 1 12:01:53 2020 -0700

    remove rebuild-deps script, package-deps.json

    These are unnecessary if scratch-gui lists its build dependencies in
    `dependencies` instead of `devDependencies`.

commit 6d503f2d9568a30fd9d98b4a3ad675eb2d45b148
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Aug 27 10:54:01 2020 -0700

    3.15.0

commit e872ae7d54ce75c2679d0e3447804049f093f8a0
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Aug 27 10:53:25 2020 -0700

    update scratch-* dependencies

commit 48d151cce8ba608dfedc96313dcca707f8372464
Merge: a9cfad8 e9e3f06
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Aug 27 10:41:09 2020 -0700

    Merge pull request #143 from cwillisf/fix-mas-file-overwrite

    fix MAS file overwrite by deleting existing file

commit e9e3f06289bbfb98cf6b88499069ff8b337d755d
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Mon Aug 24 20:20:37 2020 -0700

    save files more safely (temp then move)

commit 75589099f1d632a3771b24fdc4f6201f70f434a1
Author: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Fri Aug 21 13:58:35 2020 -0700

    fix MAS file overwrite by deleting existing file

    From the code comments:
    If the file exists the browser will first download to a temp file then rename to the userChosenPath.
    The MAS sandbox allows accessing userChosenPath but not the temp file, so overwriting fails on MAS.
    Deleting the file first could be considered risky but works around the sandbox problem.
    Security bookmarks might work to fix the problem but they're only supported by async showSaveDialog.
    Since we need to use showSaveDialogSync (see WARNING below) this workaround might be the best option.

commit a9cfad8df8c32a6a9cda4c0afa6716e844f05c11
Merge: 5773d5b 3244272
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Mon Aug 24 13:33:50 2020 -0700

    Merge pull request #138 from cwillisf/webpack-build-gui

    Use scratch-gui source instead of its build output

commit 5773d5b17c4694e50395a445395f0980cc8a9d41
Merge: 1c18c98 c811ade
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Fri Aug 21 07:40:27 2020 -0700

    Merge pull request #134 from cwillisf/allow-dev-tools-in-release-builds

    allow opening dev tools in release builds

commit 324427226e962a0d35ee35794eecf425b43d1647
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Aug 14 13:48:05 2020 -0700

    reduce webpack output on CI

commit 1c18c98282efd5e9c14ddad8a6419a62145d77b0
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Aug 14 13:13:26 2020 -0700

    3.14.0

commit a26ec04491953ac6c3b5108adebd4e0a73b619c5
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Aug 14 12:01:56 2020 -0700

    print a warning if rebuild-deps changes deps

commit ea650178cd1046dc68fb71402134f92b66ac8fc0
Merge: fa53127 d1195c5
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Thu Aug 13 15:12:37 2020 -0700

    Merge pull request #139 from cwillisf/link-dns-override

    make Scratch Link connections work w/o DNS

commit d1195c53323e99ceed49ad17979f1cea7edf9335
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Aug 12 15:54:13 2020 -0700

    make Scratch Link connections work w/o DNS

    This effectively hardcodes `device-manager.scratch.mit.edu` to
    `127.0.0.1` within Scratch Desktop.

    Note that using "host-rules" instead of "host-resolver-rules" doesn't
    work: it results in ERR_CERT_COMMON_NAME_INVALID because the browser
    expects Scratch Link's certificate to list "127.0.0.1" as its host name.
    Using "host-resolver-rules" means that the IP is used for the connection
    only, and not for certificate validation.

    See here for more details:
    https://www.electronjs.org/docs/api/command-line-switches#--host-rulesrules
    https://www.electronjs.org/docs/api/command-line-switches#--host-resolver-rulesrules

commit 0e1c90afeb7c6d1eb4cf0491a447909e46e67f01
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Aug 11 19:14:39 2020 -0700

    write configs to files in dist/ for debugging purposes

commit f6a336af20da7f974795da27122b8a607f9f726e
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Aug 11 19:01:58 2020 -0700

    update library paths

commit f3b8251408d348577f177626a1489ca326361011
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Aug 11 16:21:14 2020 -0700

    build scratch-gui from source instead of using its build output

commit 78d75dc3cf24d723732f41c810cb60b7b7dffddf
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Aug 11 16:22:13 2020 -0700

    assume direct control of webpack config

    Instead of overriding rules we don't want by matching the test exactly,
    we now explicitly delete rules we don't want before adding any of our
    custom rules.

commit b50870a992971491844e2058a62bab9985e1ce7f
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Aug 10 18:50:14 2020 -0700

    npm run rebuild-deps

commit 6f7f6bb6747b95ba4a94ba6f728af72ab1eba9fc
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Aug 10 18:46:26 2020 -0700

    add script to merge scratch-gui deps

    This is in preparation for having webpack build scratch-gui source
    instead of consuming its build output. This script merges the
    dependencies listed in package-deps.json with those listed in
    scratch-gui's package.json, using the package-deps.json version in case
    of conflict, then writes the result into the `devDependencies` section
    of scratch-desktop's package.json.

commit fa5312721a3bea94655e08302d8fd123e89a4458
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Aug 4 11:04:28 2020 -0700

    3.13.1

commit c811ade1a29f7fe6d6f6fb2987df69a7328d20b9
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jul 30 10:38:43 2020 -0700

    allow opening dev tools in release builds

commit 5ce37f75109740535bf183f647db88b099e1a890
Merge: 8f4cab5 0817fdd
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Aug 4 10:55:46 2020 -0700

    Merge pull request #136 from cwillisf/undo-rename

    Revert "Merge pull request #131 from cwillisf/rename-to-scratch"

commit 8578d603114d37718f7d81fb0061bb7ffe67d202
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Aug 4 10:43:27 2020 -0700

    Revert "Revert "Merge pull request #131 from cwillisf/rename-to-scratch""

    This reverts commit 0817fddce1dbae9aefffab17b3bab959bd95890e.

commit 0817fddce1dbae9aefffab17b3bab959bd95890e
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Aug 4 10:41:32 2020 -0700

    Revert "Merge pull request #131 from cwillisf/rename-to-scratch"

    This reverts commit 71cc32e5bf6278c0c5e133697de235c3c2a7a97f, reversing
    changes made to 43daa269df721b64df8a1f8d2b54598a092f3631.

commit 8f4cab598e6cc5d54fe1fd9692036d2d7732cc03
Merge: e0dd256 b17f1a6
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Mon Aug 3 13:35:45 2020 -0700

    Merge pull request #130 from LLK/circleci

    Add automated CircleCI builds

commit b17f1a6d8ff0a664fa8cc395ab67e3275b14e186
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Aug 3 13:18:40 2020 -0700

    add comments based on code review feedback

commit f49216f1987d97dcdd1a9e5ee6fc9606475ee9d2
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Jul 31 17:47:36 2020 -0700

    work around electron-userland/electron-builder#5016

commit b5b432786a9be1f943fbb96cbd4207cbb4f2d417
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Jul 31 15:10:10 2020 -0700

    replace Code-to-Learn certs with Scratch Foundation certs

commit 686ba5bf0ccd23919bfedc3ca9495eeefd66d6bb
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jul 30 08:40:19 2020 -0700

    3.13.0

commit 7053eed00f64e459fc14fc0b3350ac1c110d4902
Merge: 025ad1b e0dd256
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jul 29 14:30:47 2020 -0700

    Merge branch 'develop' into circleci

commit e0dd256c451425eddba3b7c5729a2b90be6412b8
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jul 29 14:27:02 2020 -0700

    update scratch-gui to #scratch-desktop-v3.13.0

commit 025ad1b7a855a1f660bf3ad5b01405418cf92ea8
Merge: e69d541 71cc32e
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jul 28 15:30:12 2020 -0700

    Merge branch 'develop' into circleci

commit 71cc32e5bf6278c0c5e133697de235c3c2a7a97f
Merge: 43daa26 9716753
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Tue Jul 28 15:24:55 2020 -0700

    Merge pull request #131 from cwillisf/rename-to-scratch

    Rename to "Scratch" / "the Scratch app"

commit e69d5414c65cacc3fcee88828a030abae0de40b1
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jul 27 11:54:03 2020 -0700

    prepare CircleCI config for renaming app

commit 97167537eb99ec6e10ec710d65a9f67705ac9466
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jul 27 11:31:40 2020 -0700

    rename 'Scratch Desktop' to 'Scratch' / 'the Scratch app'

commit 84f0701f410bb4f2cfbba369fc819c851d65ebd8
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jul 23 11:28:59 2020 -0700

    override provisioning profile for mas-dev build

commit b4ce74b00218c826c0cb13fcfd04d3188ba020eb
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jul 13 13:14:15 2020 -0700

    ZIP mas-dev

commit 7c7ddd1e6cd00adb5cfad047dd57072f13af3cfc
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Jul 10 15:53:59 2020 -0700

    build mas-dev on CircleCI

commit 8868556cba5db8e0265aa402ea4e8454ba3f4da0
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Jul 10 14:45:27 2020 -0700

    win: unset context to fix environment size errors

commit a4d8e3de36412446dd0bbb09bdbf7a9cf7e968cd
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Jul 10 14:32:47 2020 -0700

    fix Windows executor settings

commit 472cad21728d14bcf2307d71a40aeb13505ab744
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jun 29 12:23:22 2020 -0700

    fix support for non-signed CI builds

commit 62e23771dbc896fc940a3fa37ce900372766caf4
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Jun 26 09:26:48 2020 -0700

    win: set WIN_CSC_LINK to filename

commit 000bff75ed69f280773aca370883468327dc9456
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Jun 26 09:16:45 2020 -0700

    support notarize with password or keychain

commit 61251d111f24dea91e1c085f3b5361bcdb79ba9c
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Jun 26 08:22:27 2020 -0700

    tell electron-builder not to publish CI builds

commit 104317bff8828d95eeebae69e10264fc10491626
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jun 25 16:13:39 2020 -0700

    build 'dist' for signed, 'distDev' for unsigned

commit ed23e98d24a8878b2b655d83149a6ebc48eac346
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jun 25 16:01:48 2020 -0700

    import provision profile

commit 623050a19d8f961ca6b1febc4ab794be5d4c3926
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jun 25 15:58:45 2020 -0700

    test early during automated builds

commit 0d3f50e790e1ce28bffb90b562b4532c6afc2cbe
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jun 25 15:30:21 2020 -0700

    import code-signing certificates

commit 98efe7610fb04b7272abee6a0761ed3532f11aa8
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jun 24 15:44:46 2020 -0700

    work around electron-userland/electron-builder#4964

commit 9ca7f05bdb98c585e87eb84e2266ef53819cd46c
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jun 24 15:15:25 2020 -0700

    update CircleCI context name

commit d08841382a7b79b3ea2ccab552af00a1245c0ffd
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Apr 3 19:02:26 2020 -0700

    modularize npm scripts, support non-signed builds, ...

commit 8cf475416c10338a5b4553c7f6e71335c6b461f3
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Apr 3 15:27:25 2020 -0700

    work around missing PATH for git-sh-setup on Windows

commit 39dbd197d6644348e3068dd310554bea42c77a44
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Apr 3 14:38:06 2020 -0700

    cache the NPM cache, not node_modules

    The `npm ci` command removes `node_modules` anyway, so there's no point
    in caching it.

commit 245a3ec0d78c1b487cdcba479f1d762e739c47b4
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Apr 3 14:06:28 2020 -0700

    put scratch-gui install into scratch-desktop postinstall

commit 2cfca4c0ffacfa0d3a39b7fc646db1335085c709
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Mar 31 17:28:02 2020 -0700

    reference scratch-gui by branch, not tag

    Let package-lock.json take care of picking an exact commit.

commit 1c7148607cb8913b5d6d18e5da481c7e65ee68ab
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Mar 31 16:52:36 2020 -0700

    add CircleCI build config for macOS

commit ff53e9822a746aa97fa5be56896f2aaf6ce60a44
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jan 13 19:11:56 2020 -0800

    add CircleCI build config for Windows

commit 43daa269df721b64df8a1f8d2b54598a092f3631
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Jul 24 15:58:14 2020 -0700

    fix scratch-gui dependency versions

commit 546cc5fd152a4fc1e8e3084f1081d178f4161f4d
Merge: f9011a2 9762bac
Author: Alex Cui <cuizhihui030925@outlook.com>
Date:   Sat Jun 27 18:37:25 2020 +0800

    Merge remote-tracking branch 'llk/develop'

commit 9762bac510af91ddc022898174d8182eb24fa495
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jun 22 10:46:31 2020 -0700

    3.12.0

commit c33abcba8455af0eea6baf7bbcaaadbf078e7a77
Author: DD Liu <liudi08@gmail.com>
Date:   Tue Jun 9 17:04:00 2020 -0400

    Update CONTRIBUTING.md

commit ba223fef2d2c867cfb0f4b994e9125870df0ea98
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jun 4 00:55:21 2020 -0700

    3.11.1

commit bc8ca72434c6f87e0d430b830361c5d11f9deb28
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jun 3 17:23:53 2020 -0700

    3.11.0

commit 05e6b277930f442d9373a24643ad267890d47807
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jun 3 17:22:23 2020 -0700

    bump scratch-gui dependency

commit c36c5c90f4378a4360096fe6d725605bd656fdb1
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jun 3 16:33:49 2020 -0700

    use 32-bit Electron for NSIS installer

    Use 'nsis:ia32' instead of just 'nsis' for the Windows direct-download
    build. This means we explicitly request a 32-bit build rather than
    allowing electron-builder to default; the default is currently to make a
    64-bit build.
    resolves #114

commit 6d9ab116bb40e564fcefbb87f1955a2e0ab15179
Merge: 0404f9a 8f23ef1
Author: Chris Willis-Ford <7019101+cwillisf@users.noreply.github.com>
Date:   Wed Jun 3 16:09:03 2020 -0700

    Merge pull request #120 from cwillisf/electron-8

    Electron 8 & fix App Store submission

commit 8f23ef1f64e49dd26b45dba6c0cc076ad86f9ac2
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri May 22 16:25:59 2020 -0700

    3.10.4

commit 7192ffe878a0fb3165446095e3efdf4ce3a33eea
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri May 22 16:18:58 2020 -0700

    fix MAS build (!!!)

    apparently the `com.apple.security.app-sandbox` entitlement and the
    `hardenedRuntime: true` setting are mututally exclusive with
    `electron-builder`, so the hardened runtime is now only used by non-MAS
    builds ('mac' but not 'mas' or 'mas-dev')

commit 1bc9f570cd1faf1b0a1399d7a478541bafabf512
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri May 22 16:16:56 2020 -0700

    allow non-notarized mac build for testing

    Skipping notarization isn't strictly wrong, but needs a big warning
    since the build probably won't run on Catalina.

commit 73a2d3e015ffce96c5f227c3f735ba4b449656ab
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri May 22 16:16:22 2020 -0700

    allow reusing render process / fix deprecation warning

commit 3cdcb199bd60e13386031b552f5c4b4ca50f0c76
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri May 22 15:19:28 2020 -0700

    add settings for mas-dev build

commit 229c42469d25693728bd43561ad5152a4029165e
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed May 20 17:05:00 2020 -0700

    use minilog for logging, like scratch-gui

commit 5abc787f1bd9425cd445bd99038fe0e9343131b9
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed May 13 17:19:05 2020 -0700

    3.10.3

commit 53f7c5f57700a4b225dce11d306cdc8db7b8c891
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed May 13 17:32:30 2020 -0700

    swap MAS and DMG build order

commit 89193bc6af0dc7b175b16d6f2e94c4bdadccaffe
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed May 13 17:14:14 2020 -0700

    add entitlements suggested by Electron

    Hopefully these will help solve the crash that Mac App Store reviewers
    are encountering...

commit 5a1526c1e5c2ae7d37c450a85f47a01cdce5d443
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed May 13 14:12:10 2020 -0700

    update all dependencies, resolve npm audit alerts

    minor code changes required for uuid, eslint-config-scratch, and
    uglifyjs-webpack-plugin

commit cd805d1cd406677c8d67006bb7ab44025ed052a7
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon May 11 13:14:56 2020 -0700

    update to electron@^8.2.5

commit 0404f9ac7ea81cb78c8c528cdf1b975c17970398
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Apr 28 15:53:23 2020 -0700

    3.10.2

commit 8a62c4adf1926664ecf3bb9844bf9338a968d5e7
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Apr 28 15:33:45 2020 -0700

    use scratch-gui#scratch-desktop@v3.10.2

commit 8245ffb1de92bb6a17fdeb1c2436930ca9af6a1c
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Mar 30 18:18:31 2020 -0700

    3.10.1

commit 7a813c8779043ab83a5407664828928bb9ecd936
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Mar 30 12:12:34 2020 -0700

    bring back entitlements.mas.inherit.plist

    This seems to be necessary to work around an issue:
    https://github.com/electron/electron-osx-sign/issues/192

commit fdd7a8463f0b50fc9195347e985e481ce6729ec6
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Mar 30 18:09:03 2020 -0700

    fix makeFullUrl for file:// on Windows

commit 33a17879b229f2f439c6f2440f5cee13556ee4c7
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Mar 26 18:10:11 2020 -0700

    3.10.0

commit dd6f9eb91c77654086640358f131ff0274313edf
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Mar 26 18:10:07 2020 -0700

    update scratch-gui to scratch-desktop-v3.10.0

commit a67499c33ea9a38cb26c54d0ed0739882f4eea9e
Merge: 8222b71 7ee12dc
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Mar 18 11:10:48 2020 -0700

    Merge pull request #111 from cwillisf/fix-macos-camera-and-mic

    macOS: request camera & microphone permissions on demand

commit 7ee12dcdd8cc69b419f9ce181252738eed97578d
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Mar 17 18:59:03 2020 -0700

    don't `return await`

commit 6e1bfc33f3d95da60b57bd95d7e3eb9a5ca8af88
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Mar 17 16:15:46 2020 -0700

    only call systemPreferences.askForMediaAccess if it exists

commit 74968704c8ed8bf81f2c650553f0d8a086c61852
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Mar 12 17:17:56 2020 -0700

    improve user experience around mic/camera permission

    - ask for permission when trying to use a feature, not on startup
    - if permission is denied, explain the consequence and provide a hint
      for fixing it

commit b26c0b6bd3c6d1d87bc13b65e3022854bffb5c21
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Mar 12 14:23:35 2020 -0700

    fix npm run dist:dir

commit af73790306711ddc489a8fdb5be8419eecaa3970
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Mar 9 15:45:07 2020 -0700

    macOS: request camera and microphone access

    Note `audio-input` and `camera` were already in `entitlements.plist`

    Supporting changes:
    - Add `allow-jit` entitlement since documentation says it's needed.
    - Only use sandbox for MAS build, not for non-MAS macOS build.
      NOTE: both still use the hardened runtime, as required on Catalina.
    - Remove `entitlements.inherit.plist` since it matches default settings.
    - Add to `electron-builder.yaml` English descriptions for why the app
      requests access to the microphone and camera. I'm not yet sure if
      there's a way to localize these.
    - Minor tweaks in `electron-builder.yaml`.

commit 8222b715a7d177ae4a2744e0e54cc36d96c38a2b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Mar 17 18:54:56 2020 -0700

    fix lint from TitledHOC changes

commit b72aab359bdd53fab68685d6c93109f81cb05d3c
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Feb 28 12:00:02 2020 -0800

    3.9.0

commit 85ce509434b13c49e9c06d4bf8c86b00178dfe7a
Merge: 9981328 d1c47e8
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Feb 5 12:57:18 2020 -0800

    Merge pull request #98 from cwillisf/dark-dev-dont-hang

    work around startup hang in dev on Win10 dark mode

commit 998132876e5d9350b8b283a9bd6f091395795ca6
Merge: 88b1da1 af029b6
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Feb 5 09:08:45 2020 -0800

    Merge pull request #101 from cwillisf/fix-telemetry-modal

    Fix telemetry modal

commit af029b69376b2fe296af440362c6ada68e043c99
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jan 27 16:01:08 2020 -0800

    fix telemetry modal

commit d1c47e8bd0ee12d5ad88933059a0e1cd9af9fabb
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jan 27 13:42:07 2020 -0800

    work around startup hang in dev on Win10 dark mode

    Also, add a few improvements to the way DevTools extensions get
    installed.

commit 88b1da15339d2930e5fc2f5a11c8a56dd0f1ae8d
Merge: 5f5f24e 5c2303a
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Fri Jan 24 11:19:28 2020 -0800

    Merge pull request #96 from cwillisf/notarize-mac-build

    Notarize macOS build

commit 5f5f24e722bb1152557e9018d7a6aa8839f4934f
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jan 16 18:05:41 2020 -0800

    fix unwanted menu bar on Windows

commit 0b6652cde395b0c64d3268967650a75fcf1f90ef
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jan 16 15:55:04 2020 -0800

    fix save & quit dialogs for Electron 6 API changes

commit 5c2303a9b5c6b87d08f32e83c80a08e2ad9c30d7
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jan 14 14:10:22 2020 -0800

    bubble errors out from electron-builder-wrapper

commit ccaca91bea65e0e75fc7c609487d9eb027c8edfc
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jan 16 12:35:37 2020 -0800

    fix code signing step for non-Store macOS build

commit 9c9d7c6979445d38728dc8260cad5b66f8987b4a
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jan 16 11:47:25 2020 -0800

    notarize non-MAS macOS build (required for 10.15)

commit 6a33d411c13fbbb2ac2705dce50188a76d3404bf
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jan 16 08:41:54 2020 -0800

    enable hardened runtime for macOS builds

commit 9b224115a53c2a946a0edc3707c8b4b06e72ff6b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jan 16 08:16:23 2020 -0800

    fix infinite load screen introduced with Electron 6 changes

commit 99040d1771c7bfd9f413de7d0371a8f7e547ac92
Merge: 0752628 6aa3e01
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Jan 15 15:38:07 2020 -0800

    Merge pull request #95 from cwillisf/fix-mas-electron-6

    Fix mas electron 6

commit 6aa3e013ec2b13fe6f6b13030f8fa9cae20ec789
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jan 15 15:15:22 2020 -0800

    fix MAS build: add inherited entitlements

commit 434781e89b643e08b0a992f847ca32d6dff1ab33
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jan 15 15:00:10 2020 -0800

    fix MAS build: update to electron-builder@^22

    We switched to Electron 6 for the MAS private API patch, but
    electron-builder 20.x doesn't correctly support building Electron 6 for
    MAS. A fix was introduced in version 22.0.0 of electron-builder.
    See also:  electron-userland/electron-builder/pull/4154

commit 075262823bc96c8762ec7f1513c337f34920012b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jan 15 14:10:02 2020 -0800

    3.8.0

commit c6bdd4345545ec9f47babcf7a903d0e6671f33e1
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jan 15 11:33:31 2020 -0800

    3.8.0-rc.1

commit 1f9001b158e7d54838b97f5ece5db3b4765b8b96
Merge: 0c23c38 4f28d86
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Jan 15 11:28:25 2020 -0800

    Merge pull request #94 from cwillisf/electron-6

    upgrade to electron@^6.1.7 with MAS patch

commit 4f28d86e7067f87c91d600d46fe1a75807efb88c
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Dec 16 12:59:40 2019 -0500

    upgrade to electron@^6.1.7 with MAS patch

    This version of Electron includes a patch which:
    - removes the use of some private APIs which were causing Electron apps
    to be rejected by the Mac App Store, but
    - might cause degraded performance on Mac.

commit 0c23c3899ea7cd6d282131069cd9024249026596
Merge: d3b269e aa46450
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Jan 15 10:50:43 2020 -0800

    Merge pull request #84 from LLK/dependabot/npm_and_yarn/react-dom-16.2.1

    Bump react-dom from 16.2.0 to 16.2.1

commit d3b269e4b2bb8c2e93c0c055efa9a33a2c3b887c
Merge: 56f8a27 aa3c1ab
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Jan 15 10:46:24 2020 -0800

    Merge pull request #93 from LLK/paulkaplan-patch-2

    Support 3.0 library syntax when fetching assets

commit 56f8a2784884e28d3ad2837b30e14983b591a22c
Merge: 96953c4 f11e1c4
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Jan 15 10:44:11 2020 -0800

    Merge pull request #83 from LLK/paulkaplan-patch-1

    Use dist path for library JSON files of GUI

commit aa3c1abbc0c246eaced424a5714db456e16c0276
Author: Paul Kaplan <pkaplan@media.mit.edu>
Date:   Tue Jan 14 11:28:27 2020 -0500

    Support 3.0 library syntax when fetching assets

    Fixes https://github.com/LLK/scratch-desktop/issues/92

commit 96953c4acd7aa281ed9cb1bc88de978ed553a710
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Nov 26 13:46:27 2019 -0800

    3.7.0

commit ba6e15a6246797235eb3f3a3437cb576ca21119b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Nov 25 18:33:35 2019 -0800

    3.7.0-rc.1

commit e32fae831f43f2d8ffc6937a8bdf7af0e25c4c0d
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Nov 25 18:32:46 2019 -0800

    let npm update package-lock.json

    ...in the hopes that npm will finally stop trying to change it.

commit 19196c39d483319a0a887ebbe33da9cfd93fab35
Merge: 33993cb 43f7cd5
Author: Benjamin Wheeler <wheeler.benjamin@gmail.com>
Date:   Mon Nov 18 14:49:46 2019 -0500

    Merge pull request #74 from benjiwheeler/manage-title

    DesktopHOC manages project title, rather than wrapping with TitledHOC

commit 33993cb61d3ea91d82e57e6b924b8282a9c6313b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Nov 13 12:04:23 2019 -0800

    add GitHub templates

commit aa46450e740ab14f072cc29d59f2f80fb68be537
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Nov 1 23:03:52 2019 +0000

    Bump react-dom from 16.2.0 to 16.2.1

    Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 16.2.0 to 16.2.1.
    - [Release notes](https://github.com/facebook/react/releases)
    - [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/facebook/react/commits/HEAD/packages/react-dom)

    Signed-off-by: dependabot[bot] <support@github.com>

commit f11e1c4279793d639f24782b200a6e92a7442f4c
Author: Paul Kaplan <pkaplan@media.mit.edu>
Date:   Fri Nov 1 11:12:17 2019 -0400

    Use dist path for library JSON files of GUI

    In conjunction with https://github.com/LLK/scratch-gui/pull/5277, since we removed /src from the published gui files

commit 43f7cd5028d48f9c01a43b947b68305cfe5c15d9
Author: Ben Wheeler <wheeler.benjamin@gmail.com>
Date:   Mon Oct 28 21:56:37 2019 -0400

    add canEditTitle and projectTitle props

commit f9e77bc508f9274d146486c799f10ca64894c765
Author: Ben Wheeler <wheeler.benjamin@gmail.com>
Date:   Sat Sep 14 23:13:18 2019 -0400

    ScratchDesktopHOC manages project title, rather than wrapping with TitledHOC

commit de6a271311649275dde9571f72dfe6c6a4cd9b45
Merge: 0bf03a2 c327bc3
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Thu Sep 26 09:55:41 2019 -0700

    Merge pull request #76 from cwillisf/skip-signing-appx

    Skip signing appx

commit 0bf03a21999a0faca99dda52dae404b78bb7b8c5
Merge: 9ec118e 1df51fa
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Mon Sep 16 12:57:57 2019 -0700

    Merge pull request #77 from cwillisf/better-project-save-detection

    Better project save detection

commit 1df51faa95d614745f5a0afb45edc55d338e15ce
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Sep 16 11:23:11 2019 -0700

    detect project save based on content type

    Also, if saving a file is canceled, only try to cancel project save
    telemetry if the save was a project save.

    Also also, don't skip showing the save dialog just because a file
    doesn't have an extension. Instead, just skip trying to determine
    filters for the extension in this case.

commit c327bc3de43001c68b197536300589aef081cb91
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Sep 16 09:24:21 2019 -0700

    Add comments to electron-builder-wrapper.js

commit 9ef9d8fce38fa430d0fd9a3ca03e940419b26645
Author: apple502j <33279053+apple502j@users.noreply.github.com>
Date:   Fri Sep 13 22:29:21 2019 +0900

    Check extension before setting title

commit d077e79a8a300b23e4074c66af7d9af14f554444
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Sep 11 18:46:28 2019 -0700

    skip code signing for AppX builds

commit 9ec118ea483cad0a1e2c811813e3e947e95d5fcb
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Sep 10 12:46:29 2019 -0700

    3.6.0

commit a013abd92591980cc48ea4eba5730b912343dd04
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Sep 5 13:10:17 2019 -0700

    3.6.0-rc.2

commit e80b6a27a5a6a56ebbe10d10e2ddce62afb2d9ef
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Aug 29 12:38:48 2019 -0700

    3.6.0-rc.1

commit d121556de087ba4e06b2437f9702b87d9f281612
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Aug 29 12:18:10 2019 -0700

    update dependencies

commit 5c1e85044d096f589a385bb9a47099d74eabd772
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Aug 28 12:26:10 2019 -0700

    3.5.2

commit 76dc35cf52e7444b24ee197b9ef7b2e8923099dc
Merge: 740872d d960057
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Tue Aug 6 12:43:45 2019 -0700

    Merge pull request #67 from cwillisf/telemetry-platform

    telemetry: add 'platform' and improve 'version'

commit d9600572608ca1fbb1273d5c4e32cc3ef58a73c1
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Aug 5 15:43:22 2019 -0700

    telemetry: add 'platform' and improve 'version'

commit 740872d14aa58111a327be40a8bc6d9ab529dc94
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Aug 5 15:19:48 2019 -0700

    fix lint problems

commit ddd1156deaf9b03061e9893064d822ac89e86367
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Aug 5 15:14:13 2019 -0700

    update dependencies to fix eslint exception

commit 232f2f4310da949d9b8e33d7c5f3d71309d547b3
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Aug 5 14:57:29 2019 -0700

    fix "about" window in dev mode

commit 8b2cdb0086a4ba1d8da471f1d2fb52acb04e3b61
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jul 31 13:25:05 2019 -0700

    3.5.1

commit 6e8c842e4e61c0ac34724a700c2746730a82d9d2
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jul 30 16:43:00 2019 -0700

    fix provisioning profile for new app store submissions

commit 53f20c3d61731a4c014502df0126bf59277ba446
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jul 29 15:22:49 2019 -0700

    add "quick start" instructions for scratch-gui

commit 1b8d9796c92eb1b007b3a7c121a13501383e98b5
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jul 29 12:28:05 2019 -0700

    3.5.0

commit 43e49463658f160343692d9aa1374edce3a263cb
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Sun Jul 28 18:41:43 2019 -0700

    3.5.0-rc.2

commit 53812d79c7201472bd4e42f3cc81d4f73890a89b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Sun Jul 28 18:40:58 2019 -0700

    fix "about" window in packaged context

commit 8dcbbfe5c9a27eef846f6c32c6d261b4bfa86a03
Merge: 7121d09 9746fc1
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Sun Jul 28 17:38:04 2019 -0700

    Merge pull request #66 from cwillisf/about-window

    About window

commit 9746fc1dee1c209fdf9381ae6e13eba1d445d2a1
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Sun Jul 28 17:32:14 2019 -0700

    add content to "about" window

commit 3cba6fea38a3b42300e242ae6dc6a0cb8f8c9d0d
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Sun Jul 28 15:23:38 2019 -0700

    add support for an "about" window

commit 7121d0980fce49cbb5e77d8b949493a6730c505d
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Sat Jul 27 14:55:06 2019 -0700

    3.5.0-rc.1

commit b452eba14264089f955b048c7a86b6b56cec3649
Merge: 1de581d 68bb1f4
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Fri Jul 26 23:47:00 2019 -0700

    Merge pull request #60 from cwillisf/show-loading-screen-sooner

    Show main window ASAP, even if it's just a loading screen

commit 68bb1f4acc7d0f414427d59f5226b7c2a3799d2b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jul 25 18:46:31 2019 -0700

    apply Scratch 3.0 color and font styles to loading screen

commit 1de581d01d7148f8dc89ea65d17298523692edc0
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jul 25 10:55:25 2019 -0700

    allow per-machine/per-user choice in Windows installer

commit 79fd12f2964663f9806c55d9e099424940fcc5bc
Merge: 414a1f0 00175f5
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Jul 24 11:56:17 2019 -0700

    Merge pull request #64 from cwillisf/fix-telemetry-more

    More telemetry fixes (plus project title editing)

commit 00175f521d9624bf88ab16be8a1d2acfda3ad129
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jul 17 17:16:18 2019 -0700

    set project title from save file name

commit f57320e718af026b2a55e12756c608ed057bc65d
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jul 11 16:15:01 2019 -0700

    Show splash screen ASAP, load render JS async

commit 5b028a1d3d91f8037de02a776efb913fca3619ce
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jul 17 13:28:22 2019 -0700

    correctly format code metadata in telemetry events

commit 414a1f0cfde418855ed70d47d7dcb94168fbf818
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed Jul 17 16:56:56 2019 -0700

    move index.js to app.jsx and add new index.js shim

    Note that the code inside app.jsx is exactly what used to be in index.js
    so this change causes no functional difference and just represents
    preparation for upcoming changes. It simplifies at least two upcoming
    changes: one wants the app code to be in a different file and the other
    is simplified by JSX syntax.

commit ee55d2b16f9ecc72fbf1610bdfadad42981e2e26
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Jul 11 16:16:12 2019 -0700

    Fix line endings for electron-webpack.json5

commit d34f94b55d7b58e725a0e3ae51f84ab9fa94ef15
Merge: bfb4710 02b06b2
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Jul 10 08:51:43 2019 -0700

    Merge pull request #58 from cwillisf/fix-telemetry-init

    fix telemetry init and enforce queue length limit

commit bfb47102127b65a2d86f9c61ef601d78d96ddac2
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jul 9 16:31:44 2019 -0700

    Update dependencies including Electron 4.2.0 -> 4.2.6

commit 02b06b29a4541795b02922bdbfec95c7d29baef0
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jul 9 13:59:39 2019 -0700

    fix telemetry init and enforce queue length limit

commit f3346944a6d62d7dc15f899c2355d94d54367dc7
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jul 9 11:29:17 2019 -0700

    add 'npm run watch-gui', similar to build-gui

commit 723e70104e45fafd512a5b46ac666d03a91c32b9
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jun 25 13:27:45 2019 -0700

    3.4.0

commit cdfdbbfba401067f0af49fd7daf125764c877c9e
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jun 24 14:28:46 2019 -0700

    3.4.0-rc.3

commit 91e16c2ab5340375a7fa22a632214736a50f9c25
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jun 24 14:26:53 2019 -0700

    fix scripts/fetchMediaLibraryAssets.js missing some sprite assets

    Assets which are referenced by a sprite but not referenced by the sound,
    costume, or backdrop libraries were being missed by previous versions. I
    also removed the default parameter to several methods in order to reduce
    the likelihood of similar mistakes in the future.

commit 7b13482bc660e593c3611d1c6a48a8bd257b1123
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jun 24 12:41:25 2019 -0700

    improve scripts/build-gui.js error reporting, compatibility

commit 25597be1f8654f2a46f320ef4b07919b1fe44769
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jun 24 11:45:54 2019 -0700

    3.4.0-rc.2

commit d79811d8423a4b13b5ef443cd896d8fa8d87ce7d
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jun 24 11:35:12 2019 -0700

    make build-gui script work on all platforms

commit 48964e616e5955dafc8af9671af92cba967bd9c6
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Sun Jun 9 22:28:37 2019 -0700

    3.4.0-rc.1

commit a8cbb4859960196d20a8b6d0937f49803ca867cc
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Wed May 22 18:51:23 2019 -0700

    3.3.0

commit 59288c1660cda7a49b1415a7885859ca657a00e8
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu May 16 20:23:47 2019 -0700

    3.3.0-rc.2

commit d37de9555db675faf67fdfb014a66cde57e1016b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu May 16 20:23:30 2019 -0700

    Document scratch-gui STATIC_PATH build parameter

commit e3899019977068cbfa004c2472342136290d8223
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu May 16 12:52:19 2019 -0700

    3.3.0-rc.1

commit b597ce1cd68c27b1699f0a9c1ac9b7c53f3c0dad
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon May 13 17:24:50 2019 -0700

    update dependencies

commit b315581b7daeb984085eb9a049417d410a7d6dc5
Merge: 4bd7204 b5d01b8
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Wed Apr 10 11:34:33 2019 -0700

    Merge pull request #42 from dlech/patch-1

    README: use jsonc code formatting

commit b5d01b875bfd3146d1bd46b7bcfb501e96604b8a
Author: David Lechner <david@lechnology.com>
Date:   Tue Apr 9 15:22:50 2019 -0500

    README: use jsonc code formatting

    jsonc allows comments, so it will make the ugly red highlighting go away when the README is viewed on GitHub.

commit 4bd7204c6350b59fb8cb9bfdc7aba23d1163a618
Author: Andrew Sliwinski <ascii@media.mit.edu>
Date:   Wed Mar 6 12:59:58 2019 -0500

    Update package.json

commit b5d2a87bace994fad6b32b32fb57f379ae5626e5
Author: Andrew Sliwinski <ascii@media.mit.edu>
Date:   Wed Mar 6 12:59:41 2019 -0500

    Update TRADEMARK

commit f44872434fb7e80c3e87b8a4d4d375c96b08d3c6
Author: Andrew Sliwinski <ascii@media.mit.edu>
Date:   Wed Mar 6 12:59:20 2019 -0500

    Update LICENSE

commit 96cd6d5490fbb281dfac0ba81786cda4563fc202
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jan 8 11:32:20 2019 -0800

    1.2.1

commit 94822649f845379ae7e2cb2b1b26076a53d77efa
Merge: 521c32d d93cd7a
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Thu Jan 10 20:27:28 2019 -0800

    Merge pull request #27 from cwillisf/native-save-dialog

    Override browser save dialog with a native save dialog

commit d93cd7ae33935a3e1e6d88f1e13cf3d4011fe736
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jan 8 15:37:37 2019 -0800

    Remember last save location

commit 1113ba0c18182943252c83a80f3a7d32edb9ee0b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jan 8 11:23:55 2019 -0800

    Support more file types in save dialog override

commit c0b8752fdc3167c447115dabd28c737e674e4e9f
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Jan 7 15:17:28 2019 -0800

    Override 'will-download' event to use native save window

commit 521c32dd5df0dc94a5be4fe1b6dd48efdbd9b134
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jan 8 14:02:19 2019 -0800

    npm upgrade

commit 05bc41389f5306c8d3ee090b8db4e8799b11e855
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Jan 8 14:35:50 2019 -0800

    Autodetect electron version for @babel/preset-env

commit 530857a99ba85b4ab69f0eda3cf727abf884d47e
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Dec 28 12:17:56 2018 -0800

    Document the NSIS signed installer build process

commit bd76e5464323c48e9803831d8dc8d46654dab4f5
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Dec 28 04:47:06 2018 -0800

    1.2.0

commit eea135e52beade4bbdc17c946c6689f2e63439cb
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Dec 28 00:21:12 2018 -0800

    npm upgrade

commit f9764d8fc6cc0e15dec6428d3455b8436fde9fc6
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Dec 27 15:29:57 2018 -0800

    Further simplify and consolidate webpack config

commit ba91c89d6251e3e0af70368ab444a2b9a10c7e23
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Dec 27 12:18:04 2018 -0800

    Add dev instructions to README.md

commit a7519d167de51c79650ea3cb018c3c5656c60370
Merge: 80ed0db 87d9a5e
Author: Paul Kaplan <pkaplan@media.mit.edu>
Date:   Thu Dec 27 15:01:38 2018 -0500

    Merge pull request #20 from LLK/fix-mac-shortcuts

    Include menu with default keyboard shortcuts to allow mac to work

commit 80ed0db606e37b957043de0eaddd4fd80557190e
Merge: 9560798 9c7acee
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Thu Dec 27 11:20:23 2018 -0800

    Merge pull request #19 from benjiwheeler/external-windows

    attempt to open _blank link targets in OS's default browser, not electron

commit 9560798c8d5b5501a9acd79cf6c3ef840ac9ec4b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Dec 27 11:05:04 2018 -0800

    Specify scratch-desktop branch of scratch-gui

    This should go back to a version number once we merge the GUI's
    scratch-desktop branch into its develop branch.

commit 87d9a5e4488285a2493b66f50342c3fb782d7396
Author: Paul Kaplan <pkaplan@media.mit.edu>
Date:   Thu Dec 27 13:49:26 2018 -0500

    Include menu with default keyboard shortcuts to allow mac to work

commit 9c7aceea70037eb4861d6b96197ded57cbd4e4a4
Author: Ben Wheeler <wheeler.benjamin@gmail.com>
Date:   Fri Dec 21 11:58:18 2018 -0500

    attempt to open _blank link targets in OS's default browser, not electron

commit a866327656d892074ced093d17f66df18cea833e
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Dec 21 12:50:07 2018 -0800

    1.1.1

commit 4c838c01be3fccf3bc327b74da930de9ab9e270b
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Dec 21 12:38:09 2018 -0800

    Revert "Add last-resort hook to stop link navigation"

    This reverts commit c8f6b38df2e125f5cd0b65f4e0340a948bec178c. It caused
    the menus (like File -> Save) not to work.

commit 897a9d26bc53a42b5a3fcce334aeb44937bb46e5
Merge: be95f54 4848d75
Author: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date:   Fri Dec 21 12:01:27 2018 -0800

    Merge pull request #18 from cwillisf/telemetry

    Implement telemetry client

commit 4848d7548a0c5bc5a42502679d28a437646ead9f
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Dec 21 10:34:06 2018 -0800

    Add version field to telemetry events

commit 22dd1821f4e2cbbfea840d6e206e1a4964f9edce
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Dec 21 02:42:08 2018 -0800

    Supply defaults for telemetry event fields

commit 34d96bf49cac8dad894678e66d5f8c987a6d70b3
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Dec 21 01:44:58 2018 -0800

    Add onProjectTelemetryEvent handler for GUI

commit 77b8a13d6439ce5415b58c8c8da528255d918ff4
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Dec 20 23:48:52 2018 -0800

    Populate telemetry events

commit 6486201bf931e398bf621de3da6068e9917d5c94
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Dec 20 23:24:57 2018 -0800

    Improve appWillClose() reliability

commit 64da5dff27226414f7d13f6f350259f0ed99b5dd
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Dec 20 23:03:20 2018 -0800

    Hook up telemetry opt-in/out modal

commit 30cafbf50874f02947b437f56b4d0dedab7575e9
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Dec 20 22:11:54 2018 -0800

    Enable telemetry persistence

commit f46fd1d7e37febb924bd94b89a1034596e6835d6
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Thu Dec 20 19:30:06 2018 -0800

    npm install -D electron-store

commit 64c2755c707d6811d3592fdf2391df050da44bd7
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Tue Dec 4 18:30:16 2018 -0800

    First draft telemetry client

    To do: queue and client ID persistence

commit 66a664b243ab1fa8d2755851ede6e7347259f7b7
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Mon Dec 3 15:43:11 2018 -0800

    npm install -D nets uuid

commit be95f54ffe241ed9c582001f39a9409efa3d489c
Author: Christopher Willis-Ford <cwillisf@media.mit.edu>
Date:   Fri Dec 21 11:27:35 2018 -0800

    Tweak webpack config for consistency, …
  • Loading branch information
alexcui03 committed Jun 4, 2021
1 parent 18d5dfc commit f3846d3
Show file tree
Hide file tree
Showing 25 changed files with 1,305 additions and 253 deletions.
242 changes: 242 additions & 0 deletions .circleci/config.yml
@@ -0,0 +1,242 @@
version: 2.1
workflows:
macos:
jobs:
- build_for_macos:
context: scratch-desktop-and-link
windows:
jobs:
- build_for_windows:
context: scratch-desktop-and-link
orbs:
windows: circleci/windows@2.4.0
aliases:
# condition to indicate whether or not we should sign this build
- &should_sign
or:
- equal: [ develop, << pipeline.git.branch >> ]
- equal: [ main, << pipeline.git.branch >> ]
- equal: [ master, << pipeline.git.branch >> ]
# clear large environment variables from the "scratch-desktop-and-link" context
# this helps when a program (like NPM) encounters errors with a large environment
- &clear_context
CSC_MACOS: ""
MAC_PROVISION_PROFILE: ""
SDM_CERT: ""
SDM_CERT_CA_BUNDLE: ""
SDM_CERT_KEY: ""
WIN_CSC_LINK: ""
jobs:
build_for_macos:
macos:
# CircleCI's Xcode 11.1.0 image is the last of their images to be based on macOS 10.14
# I've had trouble building for earlier versions of macOS on Catalina but it's unclear whether that was due to
# Catalina or the version of Xcode. We should investigate this further.
xcode: 11.1.0
steps:
- checkout
- npm_install:
npmCacheDir: ~/.npm
- run:
name: Test
command: npm run test
- when:
condition:
*should_sign
steps:
- run:
name: Import CI context
command: |
set -e
function decodeToFile () {
if [ -z "$1" ]; then
echo "Missing or invalid filename"
return 1
fi
if [ -z "$2" ]; then
echo "Missing environment variable contents for file: $1"
return 2
fi
echo "$2" | base64 --decode > "$1"
}
decodeToFile embedded.provisionprofile "${MAC_PROVISION_PROFILE}"
decodeToFile mas-dev.provisionprofile "${MAC_DEV_PROVISION_PROFILE}"
decodeToFile macos-certs-scratch-foundation.p12.gz "${CSC_MACOS_GZ}"
decodeToFile apple-dev-cert.p12 "${MAC_DEV_CERT}"
gunzip macos-certs-scratch-foundation.p12.gz
security -v create-keychain -p circleci circleci.keychain
security -v default-keychain -s circleci.keychain
security -v import macos-certs-scratch-foundation.p12 -k circleci.keychain -P "${CSC_MACOS_PASSWORD}" -T /usr/bin/codesign -T /usr/bin/productbuild
security -v import apple-dev-cert.p12 -k circleci.keychain -P "${MAC_DEV_CERT_PASSWORD}" -T /usr/bin/codesign -T /usr/bin/productbuild
security -v unlock-keychain -p circleci circleci.keychain
# "set-key-partition-list" prints extensive not-so-useful output and adding "-q" (even multiple times) doesn't suppress it.
# The "grep -v" at the end of this line suppresses all of that so any errors or warnings might be more visible.
security -v set-key-partition-list -S apple-tool:,apple:,codesign: -s -k circleci circleci.keychain | grep -v '^ 0x'
security -v set-keychain-settings -lut 600 circleci.keychain
security -v find-identity circleci.keychain
rm macos-certs-scratch-foundation.p12 apple-dev-cert.p12
- restore_cache:
# Caching Homebrew's files (see the save_cache step below) means that Homebrew doesn't have to update as
# much. The Homebrew update can take several minutes without this, but with the cache it tends to take less
# than a minute most of the time. The cache will expire periodically and be replaced by a more up-to-date
# cache, which should effectively cap the amount of updating that Homebrew needs to do on top of the cache.
name: Restore Homebrew cache
key: homebrew-cache-v1
- run:
name: Work around electron-userland/electron-builder#4964
command: |
brew install go go-bindata
git -C ~ clone https://github.com/develar/app-builder.git
git -C ~/app-builder checkout b85740334fec875f5dd8dcd22eb1f729599109db
make --directory=~/app-builder build
ln -sfv ~/app-builder/dist/app-builder_darwin_amd64/app-builder ./node_modules/app-builder-bin/mac/
- run:
name: Upgrade to Node 14
command: brew install node@14
- save_cache:
name: Save Homebrew cache
paths:
- ~/Library/Caches/Homebrew
- /usr/local/Homebrew
key: homebrew-cache-v1
- build
- run:
name: Move DMG to artifacts directory
command: |
mkdir -p Artifacts/
mv -v dist/Scratch*.dmg Artifacts/
- when:
condition:
*should_sign
steps:
- run:
name: Zip MAS-Dev to artifacts directory
# If you use `zip` for this it will throw away some metadata (resource forks?) and
# the app will crash on startup with "EXC_CRASH (Code Signature Invalid)".
# To preserve that metadata, use `ditto` instead.
# See also: https://stackoverflow.com/a/22370486
command: |
NPM_APP_VERSION="`node -pe "require('./package.json').version"`"
cd dist/mas-dev
ditto -v -c -k --sequesterRsrc --keepParent --zlibCompressionLevel 9 \
Scratch*.app ../../Artifacts/mas-dev-${NPM_APP_VERSION}.zip
- run:
name: Move PKG to artifacts directory
command: |
mv -v dist/mas/Scratch*.pkg Artifacts/
- store_artifacts:
path: Artifacts/
build_for_windows:
executor: windows/default
steps:
- run:
# work around https://github.com/appveyor/ci/issues/2420 which seems to affect CircleCI too
# see also https://circleci.com/docs/2.0/env-vars/#using-parameters-and-bash-environment
name: Work around git-sh-setup issue
shell: bash
command: |
echo 'Adding libexec/git-core to PATH...'
echo 'For more details see https://github.com/appveyor/ci/issues/2420'
echo 'export PATH="$PATH:/c/Program Files/Git/mingw64/libexec/git-core"' >> $BASH_ENV
- run:
# nvm for Windows doesn't accept partial version numbers, so specify exact :(
name: Upgrade to Node 14.17.0
command: |
nvm install 14.17.0
nvm use 14.17.0
- checkout
- npm_install:
npmCacheDir: "C:/Users/circleci/AppData/Roaming/npm-cache"
- run:
name: Test
command: npm run test
environment: *clear_context
- when:
condition:
*should_sign
steps:
- run:
name: Import CI context
shell: bash
command: |
set -e
function decodeToFile () {
if [ -z "$1" ]; then
echo "Missing or invalid filename"
return 1
fi
if [ -z "$2" ]; then
echo "Missing environment variable contents for file: $1"
return 2
fi
echo "$2" | base64 --decode > "$1"
}
decodeToFile ~/codesign.pfx "${WIN_CSC_LINK}"
- run:
# In theory this should be unnecessary: the electron-builder documentation says that WIN_CSC_LINK can
# be a base64-encoded certificate, which is what's in the CI context. In practice that leads to an
# signtool.exe finding the certificate but not the key, for reasons I haven't been able to understand.
# Also, because of the non-standard user configuration on CircleCI's Windows VM, attempting to import
# a certificate into the user's certificate store ("Cert:/LocalUser/My") will fail. Instead, this code
# imports the PFX into the machine certificate store. That usually requires Administrator permissions,
# but on CircleCI's setup it works just fine. See also: https://github.com/ShabadOS/desktop/issues/265
# and https://github.com/ShabadOS/desktop/pull/266
name: Add CSC to machine store
shell: powershell
command: |
$securePassword = (ConvertTo-SecureString -String $env:WIN_CSC_KEY_PASSWORD -AsPlainText -Force)
Import-PfxCertificate -FilePath ~/codesign.pfx -Password $securePassword -CertStoreLocation "Cert:/LocalMachine/My"
- build
- run:
name: Move Windows build products to artifacts directory
shell: bash
command: |
mkdir -p Artifacts/
mv dist/{Scratch*.appx,Scratch*.exe} Artifacts/
- store_artifacts:
path: Artifacts/
commands:
npm_install:
description: Run 'npm install' with caching
parameters:
npmCacheDir:
type: string
description: NPM cache directory (`npm config cache get`) - usually either ~/.npm or %AppData%/npm-cache
steps:
- restore_cache:
keys:
- npm-cache-{{ arch }}-{{ checksum "package-lock.json" }}
- run:
name: Install node_modules
shell: bash # harmless on macOS, required on Windows to work around git-sh-setup issue
# --prefer-offline "will make npm skip any conditional requests (304 checks) for stale cache data, and only
# hit the network if something is missing from the cache"
command: npm ci --prefer-offline
environment: *clear_context
- save_cache:
paths:
- << parameters.npmCacheDir >>
key: npm-cache-{{ arch }}-{{ checksum "package-lock.json" }}
build:
steps:
- when:
condition:
*should_sign
steps:
- run:
command: npm run dist
no_output_timeout: 30m # macOS notarization can take longer than the default 10 minutes
environment:
# blank big variables to avoid crash on Windows
<<: *clear_context
# let Windows know where to get the PFX (ignored on non-Windows builds)
WIN_CSC_LINK: ~/codesign.pfx
# blank CIRCLE_BUILD_NUM to work around electron-userland/electron-builder#5016
CIRCLE_BUILD_NUM: ""
- unless:
condition:
*should_sign
steps:
- run:
command: npm run distDev
environment: *clear_context
1 change: 1 addition & 0 deletions .gitattributes
Expand Up @@ -7,6 +7,7 @@
# File types which we know are binary

# Prefer LF for most file types
*.css text eol=lf
*.htm text eol=lf
*.html text eol=lf
*.js text eol=lf
Expand Down
2 changes: 1 addition & 1 deletion electron-builder.yaml
Expand Up @@ -5,7 +5,7 @@ copyright: Copyright © 2019-2020 Clip Team.
compression: normal
directories:
buildResources: buildResources
output: dist/
output: dist
win:
target: [ zip, nsis ]
linux:
Expand Down
4 changes: 2 additions & 2 deletions electron-webpack.json5
@@ -1,9 +1,9 @@
{
"main": {
"webpackConfig": "webpack.main.additions.js"
"webpackConfig": "webpack.main.js"
},
"renderer": {
"template": "src/renderer/index.html",
"webpackConfig": "webpack.renderer.additions.js"
"webpackConfig": "webpack.renderer.js"
}
}
32 changes: 18 additions & 14 deletions package.json
Expand Up @@ -8,17 +8,20 @@
},
"version": "3.0.0",
"license": "AGPL-3.0",
"scripts": {
"start": "node --max-old-space-size=4096 node_modules/electron-webpack/out/cli.js dev --bail --display-error-details --env.minify=false",
"build-gui": "node ./scripts/run-in-gui.js build",
"watch-gui": "node ./scripts/run-in-gui.js watch",
"clean": "rimraf ./dist/ ./static/assets/",
"compile": "rimraf ./dist/ && node --max-old-space-size=4096 node_modules/electron-webpack/out/cli.js --bail --display-error-details --env.minify=false",
"scripts": {
"clean": "rimraf ./dist ./static/assets",
"start": "mkdirp ./dist && electron-webpack dev --bail --display-error-details --env.minify=false --no-progress",
"compile": "mkdirp ./dist && electron-webpack --bail --display-error-details --env.minify=false --no-progress",
"fetch": "rimraf ./static/assets/ && mkdirp ./static/assets/ && node ./scripts/fetchMediaLibraryAssets.js",
"dist": "yarn run build-gui && yarn run fetch && yarn run compile -p && node ./scripts/electron-builder-wrapper.js",
"builder": "node ./scripts/electron-builder-wrapper.js",
"dist:dir": "yarn run dist -- --dir -c.compression=store -c.mac.identity=null",
"lint": "eslint --cache --color --ext .jsx,.js ."
"build": "yarn run build:dev",
"build:dev": "yarn run compile && yarn run doBuild -- --mode=dev",
"build:dir": "yarn run compile && yarn run doBuild -- --mode=dir",
"build:dist": "yarn run compile && yarn run doBuild -- --mode=dist",
"doBuild": "node ./scripts/electron-builder-wrapper.js",
"dist": "yarn run clean && yarn run compile && yarn run fetch && yarn run doBuild -- --mode=dist",
"distDev": "yarn run clean && yarn run compile && yarn run fetch && yarn run doBuild -- --mode=dev",
"test": "yarn run test:lint",
"test:lint": "eslint --cache --color --ext .jsx,.js ."
},
"repository": {
"type": "git",
Expand All @@ -41,7 +44,7 @@
"clipcc-gui": "latest",
"copy-webpack-plugin": "^5.1.1",
"electron": "^8.2.5",
"electron-builder": "^22.6.0",
"electron-builder": "^22.11.5",
"electron-devtools-installer": "^3.0.0",
"electron-notarize": "^0.3.0",
"electron-store": "^5.1.1",
Expand All @@ -50,19 +53,20 @@
"eslint-config-scratch": "^6.0.0",
"eslint-plugin-import": "^2.20.0",
"eslint-plugin-react": "^7.20.0",
"fs-extra": "^9.0.1",
"intl": "1.2.5",
"lodash.bindall": "^4.4.0",
"lodash.defaultsdeep": "^4.6.1",
"minilog": "^3.1.0",
"minimist": "^1.2.5",
"mkdirp": "^1.0.4",
"nets": "^3.2.0",
"react": "16.2.0",
"react-dom": "16.2.1",
"react-intl": "2.8.0",
"react-intl": "2.9.0",
"react-redux": "5.0.7",
"redux": "3.5.2",
"redux": "3.7.2",
"rimraf": "^3.0.2",
"source-map-loader": "^0.2.4",
"uuid": "^8.0.0",
"webpack": "^4.43.0"
},
Expand Down
16 changes: 10 additions & 6 deletions scripts/afterSign.js
Expand Up @@ -6,26 +6,30 @@ const notarizeMacBuild = async function (context) {

if (!process.env.AC_USERNAME) {
console.error([
'Notarizing the macOS build requires an Apple ID.',
'Please set the environment variable AC_USERNAME.',
'Make sure your keychain has an item for "Application Loader: your@apple.id"',
'This build will not run on newer versions of macOS!'
'This build is not notarized and will not run on newer versions of macOS!',
'Notarizing the macOS build requires an Apple ID. To notarize future builds:',
'* Set the environment variable AC_USERNAME to your@apple.id and',
'* Either set AC_PASSWORD or ensure your keychain has an item for "Application Loader: your@apple.id"'
].join('\n'));
return;
}

const appleId = process.env.AC_USERNAME;
const appleIdKeychainItem = `Application Loader: ${appleId}`;

console.log(`Notarizing with Apple ID "${appleId}" and keychain item "${appleIdKeychainItem}"`);
if (process.env.AC_PASSWORD) {
console.log(`Notarizing with Apple ID "${appleId}" and a password`);
} else {
console.log(`Notarizing with Apple ID "${appleId}" and keychain item "${appleIdKeychainItem}"`);
}

const {appOutDir} = context;
const productFilename = context.packager.appInfo.productFilename;
await notarize({
appBundleId: appId,
appPath: `${appOutDir}/${productFilename}.app`,
appleId,
appleIdPassword: `@keychain:${appleIdKeychainItem}`
appleIdPassword: process.env.AC_PASSWORD || `@keychain:${appleIdKeychainItem}`
});
};

Expand Down

0 comments on commit f3846d3

Please sign in to comment.