scratchfoundation / scratchfoundation/scratch-desktop
Building should not require an Internet connection (`npm run fetch` is a problem)
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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