<commit_before># Null Safety Migration Tooling

Note: the null safety migration tooling is in an early state and may have bugs
and other issues.

For best results, use SDK version 2.9.0-10.0.dev or higher.

## How Migration Works

The migration uses a _new interactive algorithm_ designed specifically for Dart
null safety.

Typical code migration tools are designed to be run once, handle most cases, and
let the developer do manual cleanup on the result. This does **not work well**
for null safety and attempting this workflow will result in a lot more manual
work. Similarly, after your migration has been applied, the migration **cannot
be rerun** without first reverting it.<commit_msg>Clarify migration guidance<commit_after># Null Safety Migration Tooling

**Note**:

  * The null safety migration tooling is in an early state and may have bugs and
    other issues.
  * As null safety is still in preview, we recommend only doing trial
    migrations. The final migration of apps and packages, should not be done
    until the feature is more complete.
  * For best results, use SDK version 2.9.0-10.0.dev or higher.

## How Migration Works

The migration uses a _new interactive algorithm_ designed specifically for Dart
null safety.

Typical code migration tools are designed to be run once, handle most cases, and
let the developer do manual cleanup on the result. This does **not work well**
for null safety and attempting this workflow will result in a lot more manual
work. Similarly, after your migration has been applied, the migration **cannot
be rerun** without first reverting it.
{'fraction_non_alphanumeric': 0.045625, 'fraction_numerical': 0.0075, 'mean_word_length': 4.301324503311259, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '491647', 'n_tokens_mistral': 400, 'n_tokens_neox': 382, 'n_words': 247}