application-services icon indicating copy to clipboard operation
application-services copied to clipboard

Async Rust ADR

Open bendk opened this issue 11 months ago • 1 comments

This is my new version of https://github.com/mozilla/application-services/pull/5910, which is more focused and more concrete. Maybe we're finally ready to actually make a decision here :crossed_fingers:

Pull Request checklist

  • Breaking changes: This PR follows our breaking change policy
    • [x] This PR follows the breaking change policy:
      • This PR has no breaking API changes, or
      • There are corresponding PRs for our consumer applications that resolve the breaking changes and have been approved
  • [x] Quality: This PR builds and tests run cleanly
    • Note:
      • For changes that need extra cross-platform testing, consider adding [ci full] to the PR title.
      • If this pull request includes a breaking change, consider cutting a new release after merging.
  • [x] Tests: This PR includes thorough tests or an explanation of why it does not
  • [x] Changelog: This PR includes a changelog entry in CHANGELOG.md or an explanation of why it does not need one
    • Any breaking changes to Swift or Kotlin binding APIs are noted explicitly
  • [x] Dependencies: This PR follows our dependency management guidelines
    • Any new dependencies are accompanied by a summary of the due diligence applied in selecting them.

Branch builds: add [firefox-android: branch-name] to the PR title.

bendk avatar Jan 07 '25 14:01 bendk

I updated this after our meeting yesterday:

  • Added a list of issues this is trying to address to the problem statement section
  • Changed option A from "Do nothing" to "Address as many issues as we can without moving to async Rust".

With this change, I could get behind option A. I think we could solve the worst issue, which is how the functionality is split across different repos/languages and easy to forget about when you're writing Rust code. The impact on the docs is unfortunate, but not really a deal-breaker.

That said, I still like option C the best. I like that it makes the code we write match more closely with how consumers are using it and it opens up new possibilities for the future. I also don't see much downside/risk personally.

bendk avatar Jan 23 '25 14:01 bendk