[blobstats] Fork blobstats visualization template, improve

This forks the visualization template and dependencies of the blobstats
tool and updates them to take into account features of blobs and
packages, instead of pretending everything is a symbol in a binary.

Improvements:
* Update all terminology (symbol->blob, directory->package)
* Add information about compressed and uncompressed sizes and reference
count on shared blobs
* Update colors to be more neutral
* Update labels on entries to be more accurate
* Update report naming and contents
* Remove dead links
* Add original and estimated compressed sizes to data model

Also moves the code to its own directory and imports the d3 library
instead of reaching into the Dart VM's internal directory.

Test: fx blobstats

Change-Id: I95cea2fa7e4c005d0917c991a726098326b00116
11 files changed
tree: 732261e29f1035a6c77c4d7aeb271e8ddf026a17
  1. blobstats/
  2. crash/
  3. dart/
  4. devshell/
  5. editors/
  6. gce/
  7. gdb/
  8. manifest/
  9. memory/
  10. packages/
  11. rust/
  12. sdk/
  13. style/
  14. tests/
  15. third_party/
  16. vim/
  17. youcompleteme/
  18. zsh-completion/
  19. .gitignore
  20. AUTHORS
  21. bootstrap
  22. build-qemu.sh
  23. build-zircon.sh
  24. build_id_conv.py
  25. check-gn-format
  26. colorize_logs
  27. CONTRIBUTING.md
  28. fd.py
  29. fetch-build-artifacts
  30. find_integration_revision.py
  31. flog
  32. fx
  33. fx-env.sh
  34. fx-wrapper
  35. generate-intellij-config.py
  36. git-file-tidy
  37. git-fuchsia-review
  38. git_utils.py
  39. gn_to_cmake.py
  40. LICENSE
  41. list-available-packages.py
  42. MAINTAINERS
  43. PATENTS
  44. paths.py
  45. README.md
  46. run-dart-action.py
  47. run-zircon-arm64
  48. run-zircon-x86
  49. start-dhcp-server.sh
  50. update-manifest.go
README.md

Scripts

This repository is for scripts useful when hacking on Fuchsia. This repository should contain scripts that perform tasks spanning multiple repositories. Scripts that only operate within a single repository should live in the relevant repository.

push-package.py

The push-package.py script pushes the files listed in the given manifests files. No checking is performed for incremental changes.

The sample command lines below can be used to build Modular and then push those files to the default device. This assumes you have already booted your device with a version of Fuchsia that contains the most recent version of all other packages. This command line uses the “system_manifest” file from each of the modular directories, such as modular, modular_dev, and modular_tests.

cd $FUCHSIA_DIR
fx build peridot:modular_all
scripts/push-package.py out/debug-x64/package/modular*/system_manifest

fx publish

fx publish will take a package from the build and create a Fuchsia package manager package from a build package. It will then add the package to a local update respository which, by default, is put at ${FUCHSIA_BUILD_DIR}/amber-files. It will also add the package content files to the update repository and name these file after their Merkle Root. If a package name is supplied to fx publish, only that package will be processed. If no name is supplied, all the packages made by the build will be included.