-
Notifications
You must be signed in to change notification settings - Fork 191
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Figure out how to initialize viaduct for nimbus #3592
Comments
➤ Ryan Kelly commented: I'm moving this into the current sprint, because it's going to block SYNC-1701. No point integrating it into the reference browser if it can't talk to the network! |
➤ Vlad Filippov commented: @rfk some prior art on this (via Glean) in https://github.com/a-s-dev/android-components/pull/1/files#diff-e2961bf02ab728cb8ac629829562cadeR43 |
➤ Ryan Kelly commented: Great, thanks for the context! Poking at this a bit:
This is the option pursued by the prototype above. The important part is in this PR: Where we essentially copy the RustHttpConfig Kotlin code from app-services into glean, so that it can call LibGleanFFI.INSTANCE.viaduct_initialize instead of LibViaduct.INSTANCE.viaduct_initialize (that is, so that it can initialize the copy of viaduct that is bundled with the experiments lib rather than the one that is bundled with appservices). |
➤ Ryan Kelly commented: We discussed this in the sync team meeting today and made some decisions on next steps. Short-term, let's focus on unblocking the integration into reference browser by taking the Nimbus.setHttpClient() approach. @mhammond is going to investigate the details, and the thing I linked above is probably a good starting point, but the broad strokes would be:
This should get us unblocked for the first milestone, but it doesn't seem like a good approach for the long-term. In parallel with the above, let's revisit the discussion about how we will megaozord appservices, nimbus and glean for shipping in production in Fenix. This seems like the sort of thing that's best started in a google doc and perhaps a synchronous meeting if possible - @travis79 who are the right subset of glean folks to engage for that discussion? |
➤ Ryan Kelly commented: By the way, I haven't totally discounted this as a possible option:
But it may not be necessary depending on where we land with megazording. |
➤ Travis Long commented: Thanks @rfk, from the Glean side of things, I think Jan-Erik would probably be our best bet since he is both the most knowledgeable about the build system and is now the tech lead for Glean. Mike may want to be involved as well, so maybe include him as optional to the discussion. |
➤ Janet Dragojevic commented: Mark, Ryan and Travis are happy with megazord solution for viaduct. To do:
|
The Nimbus SDK crate uses viaduct for networking. For it to work on Android, the consuming app must initialize and configure a viaduct backend as part of application startup, which app-services consumers currently do using the rusthttp support component. Ideally this would "just work" for such consumers when they come to use the Nimbus SDK.
Problem: rusthttp is part of the appservices megazord, which means that it configures the instance of viaduct that's bundled with the appservices megazord. Nimbus-SDK ships as its own standalone binary, so it has a separate copy of viaduct that does not share this configuration.
There are a couple of ways we could go here:
I'm personally leaning towards "bundle Nimbus in the app-services Megazord" as the short-term solution here, but I don't feel like I understand the landscape in sufficient detail to be confident it's the right thing.
Thoughts?
┆Issue is synchronized with this Jira Task
┆Issue Number: SDK-35
The text was updated successfully, but these errors were encountered: