application-services/tools
Ben Dean-Kawamura eb1f268654 Build improvements with UniFFI library mode
Bumped UniFFI to 0.28.2

Added a tool to run uniffi-bindgen in library mode.  It can input either
a specific library path or the megazord crate name.

Use that simplify several build scripts -- especially the generate docs
ones.  The best part of this is that we no longer have to maintain
hand-written modulemaps, which makes adding a new component harder than
it needs to be.

Split out the uniffi-bindgen commands from `build-xcframework.sh`.  This
way you can run them standalone and see the results, even if you don't
have XCode setup.

One change is that
automation/swift-components-docs/generate-swift-project.sh now uses
`megazord_ios` rather than `megazord`.  I think this should result in
slightly more accurate docs, since historically some components in the
Android megazord aren't in the iOS one (Although, I think they match at
the present).
2024-10-17 17:59:42 +00:00
..
embedded-uniffi-bindgen Use uniffi as a workspace dependency 2023-12-15 18:32:25 +00:00
nimbus-gradle-plugin Switch from JCenter to MavenCentral 2024-07-30 19:48:45 +00:00
protobuf-gen Update some crates to avoid cargo audit errors 2024-03-06 16:02:17 +00:00
start-bindings Bug 1919574 - CLI tool to generate the android/ios directories 2024-10-01 14:10:28 +00:00
uniffi-bindgen-library-mode Build improvements with UniFFI library mode 2024-10-17 17:59:42 +00:00
README.md Update requests and urllib3 to latest versions. 2020-11-18 12:43:09 +11:00
build-book.sh fix: add relevancy and suggest to docs (and workspace members) 2024-09-24 16:31:03 +00:00
clean-gradle-autopublish.py tools: Use `/usr/bin/env` in the shebang line to invoke `python3`. 2023-09-06 16:08:12 +00:00
clean.py tools: Use `/usr/bin/env` in the shebang line to invoke `python3`. 2023-09-06 16:08:12 +00:00
dependency_summary.py Fix OpenSSL license URL 2024-09-24 14:14:39 +00:00
loc_summary.py feat(scripts): Generate summary of shared-vs-platform-specific code. 2019-04-17 14:24:20 +10:00
protobuf_files.toml Places uniffication (#4770) 2022-01-20 15:00:00 -05:00
regenerate_dependency_summaries.sh Ships a seperate megazord for focus-ios (#4953) 2022-05-11 12:26:22 -07:00
requirements.in Use requirements.in for /tools and regenerate requirements.txt with Python 3.8 2024-05-08 13:38:33 +00:00
requirements.txt Update pinned Python dependencies 2024-09-04 19:51:05 +00:00
update-moz-central-vendoring.py chore: Update vendoring should error if a subprocess has an issue. 2024-05-15 14:09:55 +00:00

README.md

Miscellaneous Tooling Bits for Application Services

This directory contains miscellaneous tooling scripts that developers may need to run locally while working on application-services. You'll need to read the individual files to find out what they're for.

Some of the tools here are written in Python, and to run them you'll need to install the Python dependencies listed in requirements.txt, like this:

pip3 install --require-hashes -r ./tools/requirements.txt

These dependencies are pinned to a specific hash for security. To update the versions of a dependency you will need to:

  • Visit https://pypi.org/ and search for the target package.
  • Download the .tar.gz release bundle corresponding to the new version.
  • (In theory you'd audit the downloaded package to check that it's trustworthy, but realisitically we don't have good advice on how to do that effectively).
  • Run pip hash ./path/to/package.tar.gz to generate the hash string.
  • Update requirements.txt with the new version number and hash string.