gaaclarke 96134c85e4 added shell_unittests and ui_unittests to the testing menu (flutter/engine#55711)
## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-10-08 11:17:01 -07:00
..

VSCode Workspace

This is the tools and the template used for updating //engine.code-workspace.

VSCode uses a custom version of JSONC for their config files, those config files don't provide any mechanism for reducing redundancy. Since the engine has a lot of test targets, without that mechanism it can get very unwieldy. YAML does however support ways to reduce redundancy, namely anchors.

Updating //engine.code-workspace

./refresh.sh

Backporting //engine.code-workspace

If something is accidentally introduced into //engine.code-workspace without editing the YAML file here there are tools that can be used to more easily fix that.

./merge.sh

Since JSON doesn't support anchors some work may be needed to resolve any conflicts that happen when merging. These aren't necessary to use the VSCode workspace, just to edit them.

Requirements

The refresh.sh and merge.sh tools require certain tools to be present on your PATH. They can be installed on macos with homebrew.

  • json5 - A variant of JSON that is a superset of the JSON variant that VSCode uses. It's used to strip away comments and trailing commas.
  • yq - This is a tool for manipulating yaml files. It can convert back and forth from YAML to YAML and merge YAML files.