scratchfoundation / scratchfoundation/scratch-desktop

Building should not require an Internet connection (`npm run fetch` is a problem)

Open
#153 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

developer facing enhancement ergonomics tech debt
Dominant language
JavaScript
Stars
426
Forks
268
Avg merge
16h 6m
Merged PRs (30d)
25

Description

Expected Behavior

Once the repository is cloned, it should be possible to make development builds of the application repeatedly without an Internet connection.

Note that some signed builds will always require an Internet connection, as will Apple-notarized builds.

Actual Behavior

One of the build steps downloads our asset libraries (sprites, costumes, and sounds) from the Scratch asset servers. This causes trouble when trying to build without an Internet connection, or when building in a network which blocks connections to the Scratch asset servers.

This causes occasional issue reports such as #140 or #69.

This also introduces an extra dependency on the Scratch infrastructure in the build process, which isn't ideal for forks. It's not particularly difficult to change this dependency, but it should probably be independent by default.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the npm run fetch step and trace where the build downloads the sprites, costumes, and sounds from Scratch asset servers. Check how development builds source these asset libraries and determine what must change so repeated builds work offline while signed and Apple-notarized builds may still use the Internet. Done means a cloned repository can make development builds without contacting those servers.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
build-system, desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.