Closed Bug 1089354 Opened 10 years ago Closed 8 years ago

Loop desktop should send a channel based on the branch, not the update channel

Categories

(Hello (Loop) :: Client, defect, P4)

defect

Tracking

(Not tracked)

RESOLVED INCOMPLETE
backlog backlog-

People

(Reporter: mreavy, Unassigned)

References

Details

(Whiteboard: [metrics])

+++ This bug was initially created as a clone of Bug #1033579 +++

Client needs to send new "channel" field in call setup messages. See Bug 1033032 for details.

Lawrence has expressed real concern about using "nightly/aurora/beta/release" (especially aurora) because longer term, channel name meanings may change (many proposals to change what aurora is are on the table, for example) -- even the textual names themselves may change.  They also (at best) only indirectly identify compatibility issues. 

I'm opening this new bug to discuss changing "nightly", "aurora", "beta", etc to something we can lock down (and translate "nightly" etc to those new values).  We also should document the design, and consider if there's a better way to achieve the goals, perhaps by simply using the version number (in theory changes should be landing in a version. and once out of Nightly the API to the server should remain fairly stable (for that version) after the current spurt of uplifts). 

Lawrence would like to resolve this bug ASAP (within the next 2-3 days) because he believes it's a mistake to use the actual channel names in a release.
[Tracking Requested - why for this release]:
We need to agree on and resolve the parameters we're using prior to first release of Hello.
Summary: Loop Client needs to send channel in call setup messages → Loop Client needs to send channel in call setup messages - follow up
Needinfoing Abr since this could get lost in bugmail.  Relevant info is here: https://bugzilla.mozilla.org/show_bug.cgi?id=1089354#c0
Flags: needinfo?(adam)
I just noticed bug 1033579 comment 15:

> I spoke with Maire. She'll add some further details about why this change is
> required as is as least for the short term. Long term I would like to see a
> solution that doesn't use the channel names as I don't like the idea of
> including them in an API between Firefox and TokBox. Aurora+

To clarify: This isn't an API between Firefox and TokBox. This is an API between Firefox and our Loop server.

The Loop server selects an API key based on the channel given. We can easily change the config of the server for different channel names (there's also a fallback).

The API key is the bit used by TokBox to select the relevant Tokbox server.
To be clear, this isn't being used to manage interface versioning. This mechanism was added a TokBox's request. Their stated goal is to match the proper audience to the proper level of server stability.

So, when they deploy an experimental, less stable server (i.e., a release still under development and testing), they want it to be exposed only to those people who have identified themselves as being willing to tolerate a bit of instability. After some back-and-forth discussion, we determined that the only real mechanism we have for this audience-matching is the release channel.

One approach that we considered and abandoned -- due to concerns very similar to those Lawrence expresses -- was conveying the channel to directly to TokBox. To allow for more dynamic handling, and to allow Mozilla to add/remove/change channels without additional coordination, what we are instead doing is sending the channel name to the Loop server, which maps it to a TokBox API key. TokBox then uses this API key to determine which deployment cluster to use for the call. If we wanted to completely rework our channel names and/or meanings, we could do so unilaterally. The only loop-specific changes would be updating the mapping in the Loop server.

I'm happy to sit down and talk about this with Lawrence, if he thinks there is a better way to indicate "audience tolerance of product stability" than release channel; but I do note that the ultimate requirements here come from TokBox, so we'd need to bring in Rob Hainer to have a useful discussion.
Flags: needinfo?(adam)
(In reply to Maire Reavy [:mreavy] (Plz needinfo me) from comment #0)
> Lawrence would like to resolve this bug ASAP (within the next 2-3 days)
> because he believes it's a mistake to use the actual channel names in a
> release.

If we're on a tight timeframe here, I guess we need to have fairly rapid dialog to come to some common understanding. Pinging Lawrence in case he missed my comment above.
Flags: needinfo?(lmandel)
abr and I spoke via irc. He'll post a summary of what we discussed. The short version is that because this is internal to Mozilla code (not as I originally understood), we don't need to ship this in 34. We'll take this change when it's ready and let it ride the trains.
Flags: needinfo?(lmandel)
After an IRC conversation, the conclusion we reached is that using the literal strings "nightly", "aurora", "beta", and "release" is okay (since we're only using this information internally rather than sending it to third parties); however, pulling them directly from app.update.channel is problematic, since things will break (or need more coordination than we like) if the application channel name ever changes.

Instead, what we need to do is define a new channel-associated pref (e.g. "loop.channel"). This is set to nightly" for nightly, "aurora" for aurora, "beta" for beta, and "release" for release. The code in MozLoopAPI to retrieve the channel name will then use "loop.channel" instead of "app.update.channel" for the appVersionInfo.

We don't need to worry about uplifting this -- implementing it on fx-team and letting it merge and ride the trains out will be sufficient.
Can we make this change during the Fx37 Nightly cycle or do we need to fix it during the Fx36 Nightly cycle?
backlog: --- → Fx37?
Flags: needinfo?(lmandel)
Flags: needinfo?(adam)
Due to our other "must fix" bugs for Fx36, I'd prefer to target this for Fx37, but I'm looking for feedback (especially from Adam and Lawrence).  Thanks.
(In reply to Maire Reavy [:mreavy] (Plz needinfo me) from comment #9)
> Due to our other "must fix" bugs for Fx36, I'd prefer to target this for
> Fx37, but I'm looking for feedback (especially from Adam and Lawrence). 
> Thanks.

I don't see a need to rush this. From my perspective, 37 will be fine.
Flags: needinfo?(lmandel)
I'm okay with 37 if Lawrence is.
Flags: needinfo?(adam)
pushing as this is completely internal - so not with a partner.  risk is less and we control.
backlog: Fx37? → Fx38+
backlog: Fx38+ → backlog
Priority: P1 → P4
Whiteboard: [tech-debt]
Whiteboard: [tech-debt] → [clean-up]
backlog: backlog+ → backlog-
Updating title to reflect what this is really about.
Summary: Loop Client needs to send channel in call setup messages - follow up → Loop desktop should send a channel based on the branch, not the update channel
Rank: 45
Whiteboard: [clean-up] → [metrics]
Support for Hello/Loop has been discontinued.

https://support.mozilla.org/kb/hello-status

Hence closing the old bugs. Thank you for your support.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.