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).
The command had a stray double quote after `crashreporter-symbols`, and
wasn't pointing at $MOZ_FETCHES_DIR, so AFAICT it was not actually
uploading anything.
- Split the `upload_android_symbols.sh` into a generation script and an
upload script.
- `module-build` tasks that have `uploadSymbols` set run the generation script.
- Added the `upload-symbols` task that to run the upload script. This
runs during the `ship` phase, the nightly cron job, and also for `[ci full]`
(the latter uses dummy credentials).
This is just asking for failure since we try to pin the trybuild output
to the newer rust version.
Updated `tests.py` to handle this and switched to using that in the
CircleCI config. Ironically, it looks like we switched away from
`tests.py` because it was running too many tests in a previous Rust
upgrade. Hopefully the new system is easy enough to tune the next time
this bites us.
I use pyenv to manage Python versions locally, so the `python3`
executable in my `PATH` is a shim that's different from the system
`python3`. This change ensures that running the Taskcluster scripts
locally uses the `python3` shims in my `PATH`.
This is needed in order to add application-services to Shipit, which
expects a `version.txt` file at the repository root. Rather than have
this duplicated both here and `.buildconfig-android.yml`, this patch
refactors automation to use `version.txt` instead.
Bug: 1842897
Updated/added scripts to handle releases.
Renamed `cut-an-new-release.md` to `releases.md` and updated the
contents.
Removed CHANGES_UNRELEASED. The new release system is simple enough
that we can just write entries directly to the changelog.
sync-test was removed from the workspace some time ago, which meant it
was never built or checked, so it went quite stale, particularly with
respect to logins changes.
We not keep it in the workspace but as an "excluded" item, which means
you can run it from its directory. To prevent it going stale again, CI
runs clippy on it.
Also needed a few misc tweaks to some other crates.