diff --git a/README.md b/README.md index 59e1247129..c57bdff2c8 100644 --- a/README.md +++ b/README.md @@ -92,26 +92,21 @@ Two specific points to expand on: ### Setting up -1. Follow the [Flutter installation guide](https://docs.flutter.dev/get-started/install) - for your platform of choice. -2. Switch to the latest version of Flutter by running `flutter channel main` - and `flutter upgrade` (see [Flutter version](#flutter-version) below). +1. Install direnv (TBA), and set up its hook. +2. Make sure you have initialized submodules by doing (do +not do `--depth=1` as flutter relies on tags to know its version): + + ```sh + git submodule update --init + ``` 3. Ensure Flutter is correctly configured by running `flutter doctor`. 4. Start the app with `flutter run`, or from your IDE. ### Flutter version -While in the beta phase, we use the latest Flutter from Flutter's -main branch. Use `flutter channel main` and `flutter upgrade`. - -We don't pin a specific version, because Flutter itself doesn't offer -a way to do so. So far that hasn't been a problem. When it becomes one, -we'll figure it out; there are several tools for this in the Flutter -community. See [issue #15][]. - -[issue #15]: https://github.com/zulip/zulip-flutter/issues/15 - +We pin to a particular version of flutter SDK via git submodules in [vendor/flutter/](vendor/flutter/). +If your local checkout of this repository does not have this submodule checked out at the same commit, the build may fail. ### Tests @@ -248,7 +243,8 @@ To update the version bounds: * Run `flutter pub get`, which will update `pubspec.lock`. * Make a quick check that things work: `tools/check`, and do a quick smoke-test of the app. -* Commit and push the changes in `pubspec.yaml` and `pubspec.lock`. +* Commit and push the changes in the submodule `vendor/flutter`, + `pubspec.yaml` and `pubspec.lock`. ### Upgrading dependencies