License checker shouldn't require a clean repo
- Dominant language
- Dart
- Stars
- 179k
- Forks
- 31.1k
- PR merge metrics
- PR metrics pending
Description
Today you can't run the engine license checker outside of a fresh repo. It will trip on files like `//third_party/libwebp/.gradle/6.1.1/fileHashes/fileHashes.lock`. This makes it difficult to use the script locally by developers.
spawned from https://github.com/flutter/flutter/issues/166807
## example failure
```
failure: failed to handle ../../../flutter/third_party/libwebp/.gradle/6.1.1/fileHashes/fileHashes.lock
non-UTF8 data in ../../../flutter/third_party/libwebp/.gradle/6.1.1/fileHashes/fileHashes.lock
Original stack:
#0 _RepositorySourceFile._readFile (package:licenses/main.dart:79:7)
#1 new _RepositorySourceFile (package:licenses/main.dart:68:75)
#2 _RepositoryDirectory.createFile (package:licenses/main.dart:1169:14)
#3 _RepositoryDirectory.crawl (package:licenses/main.dart:1065:43)
#4 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#5 _RepositoryDirectory.createSubdirectory (package:licenses/main.dart:1124:12)
#6 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#7 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#8 _RepositoryDirectory.createSubdirectory (package:licenses/main.dart:1124:12)
#9 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#10 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#11 _RepositoryDirectory.createSubdirectory (package:licenses/main.dart:1124:12)
#12 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#13 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#14 _RepositoryDirectory.createSubdirectory (package:licenses/main.dart:1124:12)
#15 _RepositoryFlutterThirdPartyDirectory.createSubdirectory (package:licenses/main.dart:1936:18)
#16 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#17 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#18 new _RepositoryGenericThirdPartyDirectory (package:licenses/main.dart)
#19 new _RepositoryFlutterThirdPartyDirectory (package:licenses/main.dart)
#20 _RepositoryFlutterDirectory.createSubdirectory (package:licenses/main.dart:1899:14)
#21 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#22 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#23 new _RepositoryFlutterDirectory (package:licenses/main.dart)
#24 _EngineSrcDirectory.createSubdirectory (package:licenses/main.dart:1579:14)
#25 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#26 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#27 new _EngineSrcDirectory (package:licenses/main.dart:1555:42)
#28 main (package:licenses/main.dart:2248:39)
#29 _delayEntrypointInvocation. (dart:isolate-patch/isolate_patch.dart:313:33)
#30 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:194:12)
#0 _RepositoryDirectory.crawl (package:licenses/main.dart:1074:13)
#1 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#2 _RepositoryDirectory.createSubdirectory (package:licenses/main.dart:1124:12)
#3 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#4 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#5 _RepositoryDirectory.createSubdirectory (package:licenses/main.dart:1124:12)
#6 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#7 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#8 _RepositoryDirectory.createSubdirectory (package:licenses/main.dart:1124:12)
#9 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#10 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#11 _RepositoryDirectory.createSubdirectory (package:licenses/main.dart:1124:12)
#12 _RepositoryFlutterThirdPartyDirectory.createSubdirectory (package:licenses/main.dart:1936:18)
#13 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#14 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#15 new _RepositoryGenericThirdPartyDirectory (package:licenses/main.dart)
#16 new _RepositoryFlutterThirdPartyDirectory (package:licenses/main.dart)
#17 _RepositoryFlutterDirectory.createSubdirectory (package:licenses/main.dart:1899:14)
#18 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#19 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#20 new _RepositoryFlutterDirectory (package:licenses/main.dart)
#21 _EngineSrcDirectory.createSubdirectory (package:licenses/main.dart:1579:14)
#22 _RepositoryDirectory.crawl (package:licenses/main.dart:1060:46)
#23 new _RepositoryDirectory (package:licenses/main.dart:1040:5)
#24 new _EngineSrcDirectory (package:licenses/main.dart:1555:42)
#25 main (package:licenses/main.dart:2248:39)
#26 _delayEntrypointInvocation. (dart:isolate-patch/isolate_patch.dart:313:33)
#27 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:194:12)
aborted.
```
## expected result
The license checker should respect .gitignore files and not check those files.
Contributor guide
Assessment
This issue has not been assessed yet.