Google's Blockly is a web-based, visual programming editor. Users can drag blocks together to build programs. All code is free and open source.
The project page is https://developers.google.com/blockly/
You use this git repo to build the msg directory and the blockly-compressed.js for the Open-Roberta lab.
On linux systems one possibility is
- you have the closure-library next to this project
(you need version 20200719.0.0)
make sure to remove the version number from the folder name. buily.py requires the closure-library folder to be named
closure-library - you have installed the closure compiler via npm:
- e.g.
npm install --save google-closure-compiler@20200719 - check the version:
npx google-closure-compiler --version=>v20200719
- e.g.
- you have installed python 2.7 (:-<)
- run the
build.pyscript
A second solution is to install docker. Then run
GIT=:your-blockly-git-full-path:
docker run \
--mount type=bind,source=$GIT,destination=/opt/blockly/blockly \
-u $(id -u):$(id -g) \
openroberta/blocklybuilder:22.04You can put everything into one line, of course. The strange looking -u parameter is needed to give correct
ownership and permission to the files generated if docker runs as non-root.
- you have cloned the blockly git https://github.com/OpenRoberta/blockly.git into
:your-blockly-git: - you have a feature branch
git checkout -b feature/myChanges - you edit a file in the
blocksfolder to add or change a blockly block and edit the filerobMsg/robMessages.jsto add or change a message and then re-build the resources. Use one of the possibilities described above. Never change a file in themsgfolder, because these changes are overwritten by the next build. - check your changes in the blockly playground found in the directory
tests. One of the many playgrounds will fit your need. You may copy one and modify it. If you are satisfies with your results, continue. - try your results in the Open-Roberta lab: copy the
msgdirectory and theblockly-compressed.jsinto:your-openroberta-lab-git:/OpenrobertaServer/staticResources/blockly. If you are satisfies with your results, continue. - rebase your feature branch in the blockly repo against master:
git fetch;git rebase master - merge your feature branch in the blockly repo into master:
git checkout master;git merge feature/myChanges;git push - later delete your feature branch
git branch -d feature/myChanges - your changes to blockly are now persisted in the
blocklyrepo and contained in your:your-openroberta-lab-git:. You have to commit these changes in your feature branch in the openroberta repo and you'll should soon merge your changes todevelop!
Note, that the blockly repo only provides a master branch. There is no high traffic and thus it ok to simplify the repo structure.
cd z-docker
docker build -t openroberta/blocklybuilder:22.04 .Look into the Dockerfile to see what is stored in the image