Skip to content

Commit 174d53a

Browse files
committed
docs: Document how we created the experience-cs fork
As part of the Google CS First handover, Google were keen for us to be be using a more up-to-date release of blockly (v12 beta). They pointed us towards a Google fork `gonfunko/modern-blockly` [1] (maintained by Aaron Dodson). This fork contained a number of improvements / fixes from Google, however did not depend on a more up-to-date release of blockly. The team later discovered that there was a `beta` branch [2] on the scratchfoundation repo which incorporated most of Aaron Dodson's changes, but also updated the dependencies on `scratch-blocks` (v2 beta) and `scratch-vm` to pull in the more up-to-date release of blockly. The `beta` branch was based off an old release (4.1.0.beta1) [3]. Unfortunately none of these changes have made it upstream into a stable release of scratch-gui. After discovering some errors which were preventing the scratch editor from loading on iOS, we have ended updating our fork to be based off of the latest v4 release of scratch-gui (v4.1.7)[4] from November 2024. We were keen to keep Google happy, and fix these iOS issues, therefore we have created a new base branch `experience-cs-base`[5] to replace the `beta` branch initially provided by Google. In order to avoid future headaches/confusion here are the steps used to create our experience-cs-base branch: ``` git clone git@github.com:RaspberryPiFoundation/scratch-gui.git git remote add mit https://github.com/scratchfoundation/scratch-gui.git git fetch mit git checkout mit/beta -b experience-cs-base git rebase -i v4.1.7 ** Remove final 3 commits which tweak the version number (unnecessary merge conflicts) * pick f57add0 chore(release): 4.1.0-hotfix.1 [skip ci] * pick e5cc322 fix(release): release beta branch under beta label(?) * pick a1c4a87 chore(release): 4.1.0-beta.1 [skip ci] ** Resolve merge conflicts in package.json: * "scratch-blocks": "^2.0.0-beta", * "scratch-l10n": "^4.0.0", git checkout HEAD package-lock.json npm install git rebase --continue git push origin HEAD ``` [1] https://github.com/gonfunko/scratch-gui/commits/modern-blockly/ [2] https://github.com/scratchfoundation/scratch-gui/commits/beta [3] https://github.com/scratchfoundation/scratch-gui/commits/v4.1.0-beta.1/ [4] https://github.com/scratchfoundation/scratch-gui/commits/v4.1.7 [5] https://github.com/RaspberryPiFoundation/scratch-gui/commits/experience-cs-base
1 parent d3e6b4d commit 174d53a

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

README.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,63 @@ To open the current build in your browser on Github Pages:
66

77
https://scratchfoundation.github.io/scratch-gui/
88

9+
## How did we create the experience-cs fork of scratch-gui?
10+
11+
As part of the Google CS First handover, Google were keen for us to be be using
12+
a more up-to-date release of blockly (v12 beta). They pointed us towards a
13+
Google fork `gonfunko/modern-blockly` [1] (maintained by Aaron Dodson). This
14+
fork contained a number of improvements / fixes from Google, however did not
15+
depend on a more up-to-date release of blockly. The team later discovered that
16+
there was a `beta` branch [2] on the scratchfoundation repo which incorporated
17+
most of Aaron Dodson's changes, but also updated the dependencies on
18+
`scratch-blocks` and `scratch-vm` to pull in the more up-to-date release of
19+
blockly.
20+
21+
The `beta` branch was based off an old release (4.1.0.beta1) [3]. Unfortunately
22+
none of these changes have made it upstream into a stable release of
23+
scratch-gui.
24+
25+
After discovering some errors which were preventing the scratch editor from
26+
loading on iOS, we have ended updating our fork to be based off of the latest v4
27+
release of scratch-gui (v4.1.7)[4] from November 2024.
28+
29+
We were keen to keep Google happy, and fix these iOS issues, therefore we have
30+
created a new base branch `experience-cs-base`[5] to replace the `beta` branch
31+
initially provided by Google.
32+
33+
In order to avoid future headaches/confusion here are the steps used to create
34+
our experience-cs-base branch:
35+
36+
```
37+
git clone git@github.com:RaspberryPiFoundation/scratch-gui.git
38+
39+
git remote add mit https://github.com/scratchfoundation/scratch-gui.git
40+
git fetch mit
41+
42+
git checkout mit/beta -b experience-cs-base
43+
git rebase -i v4.1.7
44+
45+
** Remove final 3 commits which tweak the version number (unnecessary merge conflicts)
46+
* pick f57add04a chore(release): 4.1.0-hotfix.1 [skip ci]
47+
* pick e5cc322e8 fix(release): release beta branch under beta label(?)
48+
* pick a1c4a873b chore(release): 4.1.0-beta.1 [skip ci]
49+
50+
** Resolve merge conflicts in package.json:
51+
* "scratch-blocks": "^2.0.0-beta",
52+
* "scratch-l10n": "^4.0.0",
53+
git checkout HEAD package-lock.json
54+
npm install
55+
git rebase --continue
56+
57+
git push origin HEAD
58+
```
59+
60+
[1] https://github.com/gonfunko/scratch-gui/commits/modern-blockly/
61+
[2] https://github.com/scratchfoundation/scratch-gui/commits/beta
62+
[3] https://github.com/scratchfoundation/scratch-gui/commits/v4.1.0-beta.1/
63+
[4] https://github.com/scratchfoundation/scratch-gui/commits/v4.1.7
64+
[5] https://github.com/RaspberryPiFoundation/scratch-gui/commits/experience-cs-base
65+
966
## Installation
1067

1168
This requires you to have Git and Node.js installed.

0 commit comments

Comments
 (0)