[check-licenses] Updates to readme processing.

Every project in the fuchsia tree should provide a README.fuchsia file
specifying meta information for the project.

Previously, check-licenses parsed these files while also generating
project objects, which reduces readability / maintainability of the
code. Furthermore, project URLs were always inferred using the
path to the project in the repository, which isn't always correct.

This CL splits the readme processing logic out into a separate
package, and implements a new strategy for retrieving accurate URL
information for rust projects.

This CL is getting large, so it only introduces the new package.
The next CL will integrate it into check-licenses.

Bug: 124904, 124256

Change-Id: Ie5d984a8a7702b412dd1cf288faa69ca5e41f858
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/831303
Reviewed-by: Yaar Schnitman <yaar@google.com>
Reviewed-by: Tamir Duberstein <tamird@google.com>
Commit-Queue: Jerry Belton <jcecil@google.com>
73 files changed
tree: 88fb682c408acdb6e3739a20f11266476c0baccf
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. products/
  7. scripts/
  8. sdk/
  9. src/
  10. third_party/
  11. tools/
  12. zircon/
  13. .clang-format
  14. .clang-tidy
  15. .editorconfig
  16. .git-blame-ignore-revs
  17. .gitattributes
  18. .gitignore
  19. .gitmodules
  20. .gn
  21. .ignore
  22. .style.yapf
  23. analysis_options.yaml
  24. AUTHORS
  25. BUILD.gn
  26. CODE_OF_CONDUCT.md
  27. CONTRIBUTING.md
  28. fuchsia.code-workspace
  29. LICENSE
  30. OWNERS
  31. PATENTS
  32. pyrightconfig.json
  33. README.md
  34. rustfmt.toml
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.