Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add dependency versions and remove blockly submodule instructions #3401

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,14 @@ This is a quick guide to get started with the sources. More detailed instruction

### Dependencies

You will need a full Java JDK (version 11, OpenJDK preferred; JRE is not enough) and [ant](http://ant.apache.org/) to compile the sources.
You will need a full Java JDK (version 11, OpenJDK preferred; JRE is not enough) and [ant](http://ant.apache.org/) (version 1.10) to compile the sources.

You will also need a copy of the [Google Cloud SDK](https://cloud.google.com/appengine/docs/standard/java/download) to run the development servers.
You will also need a copy of the [Google Cloud SDK](https://cloud.google.com/appengine/docs/standard/java/download) to run the development servers. This SDK depends on Python 3.11 to run.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should mention that when setting up the gcloud cli it may ask whether they want a Python 3.11 installation for compatibility at which point they can install it.


If you want to make changes to the source, you are going to need to run an automated test suite, and for that you will also need [phantomjs](http://phantomjs.org/). Have a look at the testing section for more information.
If you want to make changes to the sources, you will have to run an automated test suite, and for that you will also need
a recent version of NodeJS (node 20+ works) and the Firefox browser installed on your machine. Have a look at the testing section for more information.

Finally, if you want to make changes to the markdown docs you will need Ruby (versions 2.6 or 2.7).

### Forking or cloning

Expand All @@ -59,13 +62,11 @@ Finally, you will also have to make sure that you are ignoring files that need i

### Checkout dependencies

App Inventor uses Blockly, the web-based visual programming editor from Google, as a core part of its editor. Blockly core is made available to App Inventor as a git submodule. The first time after forking or cloning the repository, you will need to perform the following commands:
App Inventor uses the [Closure compiler](https://developers.google.com/closure/compiler) and the [Picrin](https://picrin.readthedocs.io/en/latest/) Scheme implementation. It is unlikely that most contributors will need to make changes to these dependencies, but if so, you can initialize and track these libraries as submodules. The first time after forking or cloning the repository, you can perform the following commands:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically it's the Closure Library we use as a submodule. Closure Compiler we just include as a JAR file.


$ git submodule update --init

For developers who will be working on Blockly within the context of App Inventor, the preferred checkout procedure is to perform a `git submodule init`, edit the `.git/config` file to use the read/write SSH URL for [MIT CML's Blockly fork](https://github.com/mit-cml/blockly) instead of the public read-only HTTPS URL assumed by default (to support pushing changes). After changing `.git/config`, a `git submodule update` will pull the repository.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even though we don't use the submodule anymore, ut would be nice to keep around the information that we currently use a (minimally) forked version of Blockly that lives at https://github.com/mit-cml/blockly and is currently in the rc/10.5.0 branch of that repo.


If you need to switch back to a branch that does contains the Blockly and Closure Library sources in the tree, you will need to run the command:
If you need to switch back to a branch that does contains the dependencies in the tree, you will need to run the command:

$ git submodule deinit --all

Expand Down Expand Up @@ -185,7 +186,7 @@ Before entering or scanning the QR code in the Companion, check the box labeled

### Running tests

The automated tests depend on [Phantomjs](http://phantomjs.org/). Make sure you install it and add it to your path. After that, you can run all tests by typing the following in a terminal window:
The automated tests depend on NodeJS (version 20+) and Firefox, which will be used in headless mode. After that, you can run all tests by typing the following in a terminal window (note you can optionally skip iOS tests with -Dskip.ios=true):

$ ant tests

Expand Down