Implemented the high-level API and the client functionality. Storage is
a big TODO.
Added a CLI to test it, you can run it using `cargo remote-settings`.
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).
I was going to update the adding a new component docs, but while I was
reading them that the best way to simplify them would be to automate the
process.
* Added the `cargo start-bindings` tool.
* Removed the "Converting an existing Component to UniFFI" HOWTO. I
believe that all our existing components have been converted so
there's no need to keep updating this.
* Added a section about dependencies and the build.gradle file.
* Removed the `pub use` items from the megazord lib.rs files. I don't
believe they were needed.
Added the `suggest-cli` crate that implements a simple clap CLI to
ingest and query suggestions. This can be run using `cargo suggest`.
My plan is to use this to test fakespot blocklist support.
This can be run with `cargo relevancy`.
It currently supports classifying your history and printing the results.
The main way we get history is from sync. You can also point it to a
places DB, but this must be from a mobile FF, we can't read from
desktop.
I was getting this message when running
`tools/regenerate_dependency_summaries.sh`
```
warning: `/home/ben/application-services/main/.cargo/config` is deprecated in favor of `config.toml`
note: if you need to support cargo 1.38 or earlier, you can symlink `config` to `config.toml`
Updating git repository `https://github.com/martinthomson/ohttp.git`
```
This was part of my work for the auth PR, but I think it's useful
separatedly.
- Updated `fxa-client` to be a single binary.
- Added a cargo alias so it can be run with `cargo fxa [args]`.
I think this makes it easier to use and also will make it easier to
expand the functionality. It's easier to add another clap subcommand
than to add a new binary.
Previously, our special `cargo uniffi-bindgen` alias would work correctly
when executed from the workspace root directory, but would not work when
executed in the root directory of a crate (because from that location,
`cargo run` tries to run a binary from the crate you're in rather than
from the containing workspace).
This tweaks the alias to explicitly specify the package containing
the command, so it should work from any directory.
- Created tests.py to replace it.
- Added some new functionality targeted at developers who want to test
their changes before submitting them for review.
- Moved the functionality from `all_rests_test.sh` into `tests.py`.
Split it up into 2 parts: rust-tests and nss-bindings.
- Added modes to perform the other tests/linting/formatting that
all_tests.sh was handling.
- Updated CircleCI config to use tests.py when possible.
This is an attempt to simplify how we use `uniffi-bindgen`, by making
it easy to run the version used by the workspace rather than assuming
that the user has a correctly-matching version of it installed in their
system cargo.