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
Added a new crate called `rust-log-forwarder` that forwards logs to
consumers. This does basically the same thing as `rc-log`, but it uses
UniFFI. Once our consumer apps swich over to `rust-log-forwarder`, we
can remove the `rc-log` component.
* fix various nimbus gradle plugin issues
* update changelog
* fix newline at end of file and adjust pathing for applicationServicesDir
* set default cache dir to be root build directory
---------
Co-authored-by: jhugman <jhugman@users.noreply.github.com>
* Add the nimbus-gradle-plugin to application services
* update nimbus gradle plugin and settings to pre-build
* update class path and adjust nimbus fml cli versioning logic
* adjust nimbus-gradle-plugin to support non-android projects
* update includebuild to also substitute dependencies
I'm hoping that this can replace the current system where `rc_log`
forwards the logging calls, then we report the `log::error` messages to
Sentry. Instead, let's use something more explicit and with more
options.
- The general system allows for:
- Error reports that get sent to Sentry
- Error counts that get sent to Glean
- Error breadcrumbs
- Added the `ApplicationErrorReporter` trait. Fenix, iOS, Desktop, or
whatever application is consuming us can implement this trait and
set the global error reporter object. It will then see the error
reports, breadcrumbs, etc.
- Added error reporting macros that components can use to send errors
to the currently installed `ApplicationErrorReporter`.
- Breadcrumbs store the module/line/column where they were logged. I'm
hoping this can help make up for the lack of backtrace support. In
particular, the `trace_error()!` macro can be used to log a breadcrumb
when a function returns an error.
- UniFFI'ed the error-support crate and added it to the megazord.
- Use an explicit cast rather than `into()` in `pk11/types.rs`. I'm not
sure exactly why, but changing the dependencies made it so there were
now multiple `Into` implementations available and the compiler
complained.