Code Monkey home page Code Monkey logo

scratch-desktop's Introduction

scratch-desktop

Scratch 3.0 as a standalone desktop application

Developer Instructions

Releasing a new version

Let's assume that you want to make a new release, version 3.999.0, corresponding to scratch-gui version 0.1.0-prerelease.20yymmdd.

  1. Merge scratch-gui:
    1. cd scratch-gui
    2. git pull --all --tags
    3. git checkout scratch-desktop
    4. git merge 0.1.0-prerelease.20yymmdd
    5. Resolve conflicts if necessary
    6. git tag scratch-desktop-v3.999.0
    7. git push
    8. git push --tags
  2. Prep scratch-desktop:
    1. cd scratch-desktop
    2. git pull --all --tags
    3. git checkout develop
    4. npm install --save-dev 'scratch-gui@github:scratchfoundation/scratch-gui#scratch-desktop-v3.999.0'
    5. git add package.json package-lock.json
    6. Make sure the app works, the diffs look reasonable, etc.
    7. git commit -m "bump scratch-gui to scratch-desktop-v3.999.0"
    8. npm version 3.999.0
    9. git push
    10. git push --tags
  3. Wait for the CI build and collect the release from the build artifacts

A note about scratch-gui

Eventually, the scratch-desktop branch of the Scratch GUI repository will be merged with that repository's main development line. For now, though, the scratch-desktop branch holds a few changes that are necessary for the Scratch app to function correctly but are not yet merged into the main development branch. If you only intend to build or work on the scratch-desktop repository then you can ignore this, but if you intend to work on scratch-gui as well, make sure you use the scratch-desktop branch there.

Previously it was necessary to explicitly build scratch-gui before building scratch-desktop. This is no longer necessary and the related build scripts, such as build-gui, have been removed.

Prepare media library assets

In the scratch-desktop directory, run npm run fetch. Re-run this any time you update scratch-gui or make any other changes which might affect the media libraries.

Run in development mode

npm start

Make a packaged build

npm run dist

Node that on macOS this will require installing various certificates.

Signing the NSIS installer (Windows, non-store)

This section is relevant only to members of the Scratch Team.

By default all Windows installers are unsigned. An APPX package for the Microsoft Store shouldn't be signed: it will be signed automatically as part of the store submission process. On the other hand, the non-Store NSIS installer should be signed.

To generate a signed NSIS installer:

  1. Acquire our latest digital signing certificate and save it on your computer as a p12 file.
  2. Set WIN_CSC_LINK to the path to your certificate file. For maximum compatibility I use forward slashes.
    • CMD: set WIN_CSC_LINK=C:/Users/You/Somewhere/Certificate.p12
    • PowerShell: $env:WIN_CSC_LINK = "C:/Users/You/Somewhere/Certificate.p12"
  3. Set WIN_CSC_KEY_PASSWORD to the password string associated with your P12 file.
    • CMD: set WIN_CSC_KEY_PASSWORD=superSecret
    • PowerShell: $env:WIN_CSC_KEY_PASSWORD = "superSecret"
  4. Build the NSIS installer only: building the APPX installer will fail if these environment variables are set.
    • npm run dist -- -w nsis

Workaround for code signing issue in macOS

Sometimes the macOS build process will result in a build which crashes on startup. If this happens, check in Console for an entry similar to this:

failed to parse entitlements for Scratch[12345]: OSUnserializeXML: syntax error near line 1

This appears to be an issue with codesign itself. Rebooting your computer and trying to build again might help. Yes, really.

See this issue for more detail: electron/osx-sign#218

Make a semi-packaged build

This will simulate a packaged build without actually packaging it: instead the files will be copied to a subdirectory of dist.

npm run dist:dir

Debugging

You can debug the renderer process by opening the Chromium development console. This should be the same keyboard shortcut as Chrome on your platform. This won't work on a packaged build.

You can debug the main process the same way as any Node.js process. I like to use Visual Studio Code with a configuration like this:

    "launch": {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Desktop",
                "type": "node",
                "request": "launch",
                "cwd": "${workspaceFolder:scratch-desktop}",
                "runtimeExecutable": "npm",
                "autoAttachChildProcesses": true,
                "runtimeArgs": ["start", "--"],
                "protocol": "inspector",
                "skipFiles": [
                    // it seems like skipFiles only reliably works with 1 entry :(
                    //"<node_internals>/**",
                    "${workspaceFolder:scratch-desktop}/node_modules/electron/dist/resources/*.asar/**"
                ],
                "sourceMaps": true,
                "timeout": 30000,
                "outputCapture": "std"
            }
        ]
    },

Resetting the Telemetry System

This application includes a telemetry system which is only active if the user opts in. When testing this system, it's sometimes helpful to reset it by deleting the telemetry.json file.

The location of this file depends on your operating system and whether or not you're running a packaged build. Running from npm start or equivalent is a non-packaged build.

In addition, macOS may store the file in one of two places depending on the OS version and a few other variables. If in doubt, I recommend removing both.

  • Windows, packaged build: %APPDATA%\Scratch\telemetry.json
  • Windows, non-packaged: %APPDATA%\Electron\telemetry.json
  • macOS, packaged build: ~/Library/Application Support/Scratch/telemetry.json or ~/Library/Containers/edu.mit.scratch.scratch-desktop/Data/Library/Application Support/Scratch/telemetry.json
  • macOS, non-packaged build: ~/Library/Application Support/Electron/telemetry.json or ~/Library/Containers/edu.mit.scratch.scratch-desktop/Data/Library/Application Support/Electron/telemetry.json

Deleting this file will:

  • Remove any pending telemetry packets
  • Reset the opt in/out state: the app should display the opt in/out modal on next launch
  • Remove the random client UUID: the app will generate a new one on next launch

scratch-desktop's People

Contributors

aoneill01 avatar apple502j avatar benjiwheeler avatar cwillisf avatar dependabot[bot] avatar develar avatar dlech avatar fsih avatar hacker112 avatar paulkaplan avatar renovate[bot] avatar rwoody avatar simulatedgreg avatar smack0007 avatar soorajvnair avatar suvichak avatar thisandagain avatar vviikk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scratch-desktop's Issues

WebGL issue

I tried to wrap scratch-gui in my own Electron wrapper (not scratch-desktop), but I was getting the below error

"Unfortunately it looks like your browser or computer does not support WebGL. This technology is needed for Scratch 3.0 to run."

I checked my default browser, it is supporting WebGL and WebGL2 (check attached,
WebGL
). I am not sure why electron browser is not able to open scratch-gui and throwing that WebGL error. Please help.

(PS: I am able to run Scratch3.0 in my browser, also scratch-desktop is working fine for me.)

There should be a Windows MSI installer file made available

IT administrators are asking for MSI files to install more efficiently in schools. I think we should make one.

Details

From a freshdesk ticket:
"I am a school ICT Engineer working in 6 schools in Manchester UK. Some of my schools would like to start using version 3.0 which is great of course. But (and this is a rather big "but"), there is no way of rolling out the program using Group Policy on Windows servers, due to no .msi version available at this time.

This makes it very time consuming for network administrators such as myself and my colleagues to install it on school computers."

Operating System

Windows

Save dialog doesn't expand when clicking the down caret button on mac

The first time you save a project on a mac the dialog is small, showing you only a title field, tags, and a "where" section that only shows limited number of locations.
screen shot 2019-01-09 at 10 49 26 am

If you click the "Down Carrot" button to the right of the Where section it should expand to show a full file browser, but it does not. Canceling and re-choosing save brings up the full file browser version of the save dialog.

Attempting to switch to the smaller version of the dialog has a similar response, where it doesn't change the size but goes through a partial state change. Canceling and opening it again brings up the dialog in the state you had just switched to.

Steps to reproduce

Open the offline editor
Choose File > Save to your computer
Note: the small dialog appears
Click the down carrot button screen shot 2019-01-09 at 10 53 02 am
Note: The dialog does not get any bigger. The "new folder" button appears and the down carrot becomes an up carrot button. Also the word Where disappears.
screen shot 2019-01-09 at 10 53 33 am
Click cancel on the dialog
Note: Very briefly the window expands and then disappears with an animation
Choose File > Save to your computer again
Note: the full size save dialog appears
Click the "Up Carrot" button
Note: the file browser disappears but the window does not shrink
Click Cancel
Note: the dialog shrinks quickly and the goes away
Click File > Save one more time
Note: the regular, smaller dialog appears.

Operating System

Mac

No NPM dependencies installed

I've been building this app for myself (for learning), but every time I run BUILD_MODE=dist npm run build it throws another missing package error (I must have installed hundreds of packages in this way). Is there anything I can do to install all the dependencies at once?

Make a packaged build error

I followed the steps to this point.
npm run dist
image
image
image
Have you ever encountered this problem? How to solve it?

Implement autosave on desktop

We should implement tracking where the current sb3 file is saved and autosave changes to it. Then we can undo the fix to #6.

Scratch Desktop doesn't update itself when patches available

The website now has Scratch Desktop v1.2.1, but the v1.2.0 app I currently have installed didn't notify me of the update. Our organization has it installed on a few hundred laptops, so would like to avoid having to download the full app and replacing it on all of our machines with every update.

Saving file doesn't add .sb3 file extension to the file name

When you save a file it should append a .sb3 to the file name. Currently it doesn't. This means that when you go to load a project that you just saved it doesn't show up in the list of files by default.

If you switch to show all files it will show you the file and you can load it and it will work just fine.

Operating System

Windows

Scratch desktop should not show "save now" in the nav bar

It should not say "Save Now" in the nav bar when you have unsaved changes, since it is not connected to the server to save.

steps to reproduce

Create a new project
make changes to the project
Note: in the nav bar a link appears that says "save now"
Note: clicking the "save now" link does nothing

Operating System

Mac and Windows

Images for backdrops and costumes don't appear in their libraries

If you turn off your internet connection and open the backdrop, costume, or sprite libraries the libraries should still show thumbnails for each item in it.

The sprites are appearing, but the costumes and backdrops are not appearing in their libraries:
image6
image7

Steps to reproduce

Turn off your internet connection
Open the offline editor
Open the backdrop library
Note: no images appear in the tiles
Open the costumes library
Note: no images appear in the tiles

Operating System

Mac

npm run dist erro!

image

I run "nom run diet "on my MacBook,have a error! everybody know what that is?

Windows Defender SmartScreen blocks running Scratch Desktop

Downloaded Scratch Desktop (1.2.0.exe) from the dropbox link (2018-12-28 test) and saw this (note i already clicked the "more info" button to see the publisher info)

scratch-link-windows-defender 1

I know that there are two parts to the SmartScreen system:

  1. Your app needs to be properly signed from a CA, which might not be happening correctly because it says "Unknown Publisher"
  2. Your app (or just cert?) needs to meet some minimal ratio of downloads/reports of malicious content, which requires a certain number of downloads, so the first N people to download this even when properly signed will probably see this unless it is using the same certs we have used on previous windows things like scratch device manager, in which case we might be whitelisted already.

Sometimes the first time the application runs after install, the stage is blank

Sometimes, on one particular older Windows 10 machine, when you first install Scratch Desktop over an older version it appears with the stage blank except for a frowny face.

image1

I'm not sure if the saving over an older version matters.

This was originally discovered by @carljbowman. Here is his original report:
After installing the new version over previously installed version the Desktop editor opened and appeared entirely black. After a few moments the UI loaded, but the “player crashed”:

Add opt-in dialog for telemetry

Add a modal dialog requesting that the user allow telemetry reporting. The telemetry system must not report any data to the telemetry servers until and unless the user provides a positive response through this dialog.

Scratch Link connection for hardware extensions should work without Internet access

Expected Behavior

If Scratch Link is running, hardware extensions like the micro:bit, LEGO WeDo 2.0, etc., should work whether or not the computer is connected to the Internet.

Actual Behavior

Connecting to Scratch Link requires an Internet connection: specifically, we need DNS to resolve the device-manager.scratch.mit.edu name to an IP.

Proposal

Scratch Desktop is a different security environment for the Scratch editor, and in particular it can probably be configured to connect to Scratch Link over plain ws:// instead of wss://. In that scenario we wouldn't need to validate the name on a digital certificate, so we wouldn't need to connect using a DNS name: we could just connect to ws://127.0.0.1:<port>/ and avoid the need for DNS altogether.

This would require Scratch Link to expose a regular ws:// port in addition to its current wss:// port but that should be easy.

npm run dist failed

I run below commands:
1.git clone scratch-gui && cd scratch-gui && git checkout -b scratch-desktop && npm install && BUILD_MODE=dist npm run build (this step succeed)&& npm link
Everything is fine under scratch-gui folder.

2.git clone scratch-desktop && cd scratch-desktop && npm install && npm link scratch-gui && npm run dist (failed)

The last step under scratch-desktop folder failed with below errors:
`

[email protected] compile C:\godev\src\scratch\scratch3-mit\scratch-desktop > rimraf ./dist/ && electron-webpack --bail --display-error-details --env.minify=false Targeting Electron v4.0.1 Module "main" building in production mode? false Module "renderer" building in production mode? false 40% [1] building 9/11 modules 2 active ...act-dom\cjs\react-dom.production.min.jsModuleNotFoundError: Module not found: Error: Can't resolve 'sc ratch-gui' in 'C:\godev\src\scratch\scratch3-mit\scratch-desktop\src\renderer' at factory.create (C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\webpack\lib\Compilation.js:821:10) at factory (C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\webpack\lib\NormalModuleFactory.js:397:22) at resolver (C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\webpack\lib\NormalModuleFactory.js:130:21) at asyncLib.parallel (C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\webpack\lib\NormalModuleFactory.js:224:22) at C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\neo-async\async.js:2825:7 at C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\neo-async\async.js:6886:13
--
`

The error pointed out that scratch-gui not found in src/render/index.js. Below is the code snippet:
import GUI, {AppStateHOC} from 'scratch-gui';

I then changed it to:
import GUI, {AppStateHOC} from 'scratch-gui/src';

Then run "npm run dist" again under scratch-deskctop folder, but still failed though above error didn't happen again. The new errors are:

`
WARNING in ./node_modules/scratch-gui/node_modules/@scratch/paper/dist/paper-full.js Module Warning (from ./node_modules/source-map-loader/index.js): (Emitted value instead of an instance of Error) Cannot find SourceMap 'data:application/json;base64,"': Error: Can't resolve './data:applicat ion/json;base64,"' in 'C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\scratch-gui\node_modules@scratch\paper\dist' NonErrorEmittedError: (Emitted value instead of an instance of Error) Cannot find SourceMap 'data:application/json;base64,"': Error: Can't re solve './data:application/json;base64,"' in 'C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\scratch-gui\node_modules@scratch\pap er\dist' at emitWarning (C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\webpack\lib\NormalModule.js:154:16) at Object. (C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\source-map-loader\index.js:43:6) at doResolve (C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\enhanced-resolve\lib\Resolver.js:184:12) at hook.callAsync (C:\godev\src\scratch\scratch3-mit\scratch-desktop\node_modules\enhanced-resolve\lib\Resolver.js:238:5)

`

How to solve this error? Or what I've missed that lead to this error? Thanks!

Installer should include an Install per-machine rather than per-user option

Currently when you install Scratch-Desktop on Windows it only installs on one user's account. There should be an option to install for the whole machine so any user can access the program.

Details

From a fresh desk ticket:
"...And it does not help that the current installer installs to "APP Data" in individual user profiles, meaning of course it needs to be installed every time a different user logs on to a computer."

Related to #35

Operating System

Windows

ENA-6: Can't open project files in Scratch Desktop from the finder on Mac / Explorer on Windows

Scratch projects, .sb, .sb2, or a .sb3, that has been saved to your computer can't be "opened with" Scratch Desktop. If you right click on one and choose Open With it does not suggest Scratch Desktop. If you choose Other it opens the browser window and Scratch Desktop is not highlighted as a possible option.

If you change it to from "Recommended Applications" to "All Applications" you can choose Scratch Desktop.app but it just opens Scratch Desktop with the default project open, not the one you were trying to open.

These files can be opened from within the application just fine.

Steps to reproduce

Navigate to a Scratch project file in your file browser
Right click on the file and choose "Open With"
Note: Scratch Desktop does not appear on the short list of options
Choose "Other"
Note: a finder window appears open to Applications, Scratch Desktop is in the list but gray
Change "Recommended Applications" to "All Applications"
Click Scratch Desktop
Note: Scratch Desktop opens but it is to the default project

Operating System

Mac

Save dialog always points towards the documents folder on mac

Every time you choose File > Save to your computer it opens the browser to the Documents folder. It should remember where you last saved/loaded a project and open to that folder.

One exception is the first time you try to save it chooses another folder. I'm having trouble reproducing this, though.

Steps to Reproduce

Open the offline editor
Choose File > Save to your computer
Note: it shows you the documents folder
navigate to a different folder on your computer and save the project there
Choose File > Save to your computer
Note: it STILL shows you the documents folder
Choose File > Load from your computer
Note: the file browser starts on whichever folder you last loaded from

Operating System

Mac

Project title field is missing

Expected Behavior

Scratch Desktop should display the project title, similar to the same way that the Scratch website does for a project owned by the current user.

Scratch Desktop should display like this (own project / remix):
image

Scratch Desktop should not display the title like this (someone else's project):
image

Actual Behavior

The same region of the Scratch Desktop UI currently looks like this:
image

cmd-v does not paste in the search bar of the sprite library

If you copy something to your clibpoard and then paste it in the search bar on the sprite library, nothing appears in the search bar and the results do not change.

You should be able to paste things in the search bar.

Steps to reproduce

Launch the offline editor
Copy a piece of text to your clipboard (cmd-c) from anywhere
Open the sprite library
Select the search bar for the library
type cmd-v
Note: no text appears in the search bar and the results don't change

Operating System

Mac

wdm failed to compile error when building on Mac

I am building Scratch Desktop on my Mac, but when I run npm start it throws a WDM: failed to compile error. Here are the steps I followed to build the app:

  1. I git cloned scratch-gui and scratch-desktop
  2. I ran cd scratch-gui and then npm install to installed all the dependencies
  3. I ran git checkout scratch-desktop
  4. I did the Build_Mode=dist... thing, but it threw an error, so I run npm install again and it went without error.
  5. I went into scratch-dektop and ran npm run fetch but it threw an error so I rsn npm install and it went without errors
  6. I ran npm run start but wdm refused to compile and no window appeared.

"open" menu does not show .sb, .sb2, or .sb3 files on Windows

The first time I clicked "File>Load from your computer", the file browser was on the downloads folder and it didn't show me any .sb, .sb2, or .sb3 files. I had previously just saved a project from Scratch Desktop to the downloads folder.

I switched to "All Files" and could see the file I knew was there. The next time I opened it and chose "Custom Files" rather than "All Files", .sb3 files were visible.

This may be the application or operating system learning to associate .sb3 files with Scratch Desktop. It doesn't seem to be the default.

Steps to Reproduce

Download or save an .sb3 onto your computer and note where you saved it
Having never opened an .sb3 file on the computer, click File>Load from your computer
Navigate to wherever the saved .sb3 file is
Note: With "Custom Files" chosen the .sb3 does not appear in the list of files.

Operating System

Windows

External hardware extensions should not open external help pages

From @benjiwheeler
In desktop editor, within Microbit connection window, “Help” button tries to open external page
(related: so does the scratch logo)

Steps to reproduce

Disconnect from the internet
Create a new project
Add a hardware extension (such as microbit)
On the modal that pops up click the "help" button
Note: it opens a blank page that is titled "_blank"

It should either have the help page stored locally or not have the button.

Operating System

Mac

Can't allow camera permissions after denying it

Shruti reports that after opening the video sensing extension, she accidentally denied the camera permission. She was then unable to find a way to allow the camera permission.

It looks like on OS 10.13 and lower, it automatically grants permissions, so this is only an issue on 10.14+:

systemPreferences.getMediaAccessStatus(mediaType)
This user consent was not required until macOS 10.14 Mojave, 
so this method will always return granted if your system is running 
10.13 High Sierra or lower.

(from https://electronjs.org/docs/api/system-preferences)

tutorials appear blank on Scratch Desktop - suggestion to add thumbnail

For Scratch Desktop, the tutorials show as blank after selected because the videos are not available.
Suggested change: replace videos with the thumbnail image for the tutorial (similar to 2.0).

This would be for any tutorial that has gifs after the video. Currently that is the first 10 tutorials: Getting Started, Create Animations that Talk, Animate an Adventure Game, Animate a Name, Make Music, Make a Clicker Game, Make a Chase Game, Animate a Character, Create a Story, and Video Sensing.

We heard that Africa Code Week is planning to deploy Scratch 3.0 offline in 36 countries by handing out Scratch Desktop on a USB drive, starting in July, but ongoing.

Scratch Desktop gives an error when opening on older Macbook Pros

A report came in from the community saying they couldn't run Scratch Desktop on a Macbook Pro from 2011. It gives them an error saying the computer does not support OpenGL. They say they can use the online editor.

It seems that the offline editor has different system requirements than the online editor. We should probably report the requirements somewhere and/or support the older machines still running the newer OS versions.

Here's their original report:
Further I have an issue with offline/local .app of scratch on my MacBook Pro. More specifically,

I am running MAC OS X 10.13.4, which according to attached specifications is fully compatible with this MAC OS engine. However when I try to launch Scratch the embedded screen freezes and I get the message that Computer or Browser does not support OpenGL etc.

To make more easier to you I am attaching all the required specs of my current Macbook Model:
MacBook Pro (15-inch, Early 2011)
2 GHz Intel Core i7
16 GB 1333 MHz DDR3
AMD Radeon HD 6490M 256 MB
Intel HD Graphics 3000 512 MB

"Therefore, I would be grateful if you can possibly advise wherever is possible to fix the above issue or if my MacBook is incompatible with Scratch.

In addition it is worth to mention, that using Chrome (online platform of Scratch) I have no issue whatsoever. Unfortunately since I am currently on 4G Data Plan online platform is not the best option for me (due heavy data usage) so that's why I really need to make the desktop version to work...."

Not able to run the project

I followed the doc and tried to run scratch-desktop,
even the "Prepare scratch-gui" section

Steps after preparing scratch-gui:

npm install
npm start

But still I am getting the below error,

2019-04-26 at 15-55-49

I checked node_modules folder, scratch-gui is there but I am not sure why I am getting the above error.


Machine: Windows 10 x64

On new project, some block options update and others don't

Some blocks with options (dropdown lists) will reset to a default when a new project is started, but others will stay as the last used option. The difference seems to be between the rounded and squared options - ie. Go To [option] has a rounded option and will reset, while Set Rotation Style [option] has a squared option and doesn't reset.
This has been an issue for us teaching younger children, for example if we challenge them to find the Change [Color] block, but in a previous workshop it was changed to Change [Whirl], it stays as that option when we start the new project and the children miss it without it saying the word Color

Scratch logo should not go to the Scratch Homepage

From @kathymakes:
Using Scratch Desktop online, Scratch logo takes you to the Scratch.mit.edu homepage. Then if you click on any links within Scratch.mit.edu within electron you get spinny wheel of doom.

It should not take you to the Scratch Homepage.

Some sprites don't load and cause dragging issue

A handful of sprites don't load when they are selected, including "Dinosaur5" and "Glass Water". As a side effect, any sprites currently in the project cannot be dragged even after starting a new project.

Translate extension appears to retry constantly

From @picklesrus:
If you add the translate extension and run the "translate [ ] to [ ]" block with no internet connection it tries to run the block constantly.
image4

It should give up at some point

Steps to reproduce

Create a new project
Add the translate extension
Turn off your internet connection
Drag out the "translate..." block
Click it
Note: the block glows and continuously tries to run

Operating System

Mac

Scratch Desktop should not display the preview modal

The offline editor should not ask you if you want to try 3.0, nor ask you to load a 2.0 project by id.

This should not be there:
screen shot 2018-12-10 at 4 51 55 pm

Steps to reproduce

Launch the offline editor
Note: there is a modal asking you to try

Operating System:

Mac and Windows

Opening tutorial menu gives oops page

If you open the tutorials menu the whole page becomes blue and it gives you the "oops" message. If you click the "Reload" it brings you back to the editor, but all of your progress is gone.

Steps to reproduce

Open the editor
Drag out a block onto the workspace
Click "Tutorials" in the nav bar
Note: you are on an "oops" page
Click Reload
Note: You are back in the editor but your block you dragged out is gone.

Operating System

Mac and Windows

Some telemetry params are not initialized

There are a couple of params that control how the telemetry system behaves, but it looks like they are not actually initialized to their values claimed in the documentation:

https://github.com/LLK/scratch-desktop/blob/4bd7204c6350b59fb8cb9bfdc7aba23d1163a618/src/main/telemetry/TelemetryClient.js#L223

_attemptsLimit is one example, another is the queueLimit property.

This probably leads to a few behaviors with telemetry that are not desired, like it doesn't retry packets when the telemetry server errors.

New Design for "Leave Scratch" prompt

Currently there are two choices: stay and leave. But people might choose "leave" with some unsaved changes, because most programs allow us to save before quitting. This is worth implementing.

Current one:
image

Suggested one:
image

"Save and leave" - leave after saving
"Don't save" - same as current "Leave"
"Go back to the editor" - same as current "Stay"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.