mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

3 notable places I did not migrate. 1. engine/src/flutter/docs/Engine-disk-footprint.md treemaps and what hash is used for what upload. 1. engine/src/flutter/lib/gpu/pubspec.yaml, I didnt want this pr to update code that could need to be reverted and I didnt know what to do to test that publishing would not break or cause a downstream breakage. 1. engine/src/flutter/build/zip_bundle.gni I wasnt sure how to test my changes. Reviewers: Please let me know if you want a different link or if you would prefer something unmodified. Commits: - **Replace triage links with equivalents, change pull request to generic flutter/flutter, replace code search link with equivalent** - **Change link from flutter/engine to engine folder, modify link text to team** - **replace engine repo link with engine folder, replace text repo with folder** - **replace engine specific security info with flutter generic** - **replace engine roller comment with a skia roller equivalent** - **link to same file in new location** - **Remove comment that some code lives in flutter/flutter and some in flutter/engine** - **Say to bump dart in flutter/flutter without mentioning engine** - **Replace documentation with new locations** - **replace code printed comments with new locations** Partially addresses https://github.com/flutter/flutter/issues/167478 ## 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], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing.
23 lines
1.5 KiB
Markdown
23 lines
1.5 KiB
Markdown
## Best Practices
|
|
|
|
### Runtime assertions
|
|
|
|
Unopt builds use [FML_DCHECK](https://cs.opensource.google/flutter/flutter/+/main:engine/src/flutter/fml/logging.h?q=FML_DCHECK&ss=flutter%2Fflutter) to enable assertion checks across the engine repository. Assertions on dependencies like Dart VM or Skia are not enabled because local and CI builds would be extremely slow.
|
|
Unopt builds are not published or consumed by the flutter/flutter CI to run integration tests or benchmarks.
|
|
|
|
### Sanitizers
|
|
|
|
[flutter/engine](https://github.com/flutter/flutter/tree/main/engine) supports thread, address, memory, undefined behavior and leak sanitizers. Sanitizers are not enabled by default but they can be enabled on local builds following the [sanitizers with the flutter engine](../engine/Using-Sanitizers-with-the-Flutter-Engine.md) instructions.
|
|
|
|
### Builds with sanitizers, and tests with assertions enabled
|
|
|
|
[flutter/engine](https://github.com/flutter/flutter/tree/main/engine) runs automated builds with sanitizers and testing with assertions. Testing with assertions is enabled in all the supported platforms and sanitizers are enabled only on the Linux platform.
|
|
Sanitizer builds:
|
|
|
|
* [Linux unopt](https://ci.chromium.org/p/flutter/builders/prod/Linux%20Unopt)
|
|
|
|
Tests with assertions enabled:
|
|
|
|
* [Linux unopt](https://ci.chromium.org/p/flutter/builders/prod/Linux%20Unopt)
|
|
* [Mac unopt](https://ci.chromium.org/p/flutter/builders/prod/Linux%20mac_unopt)
|
|
* [Windows unopt](https://ci.chromium.org/p/flutter/builders/prod/Windows%20Unopt) |