flutter / flutter/flutter

License checker shouldn't require a clean repo

Open
#167,139 0 comments 0 reactions 0 assignees View on GitHub
P3 team-engine triaged-engine
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.