What's the technology of upcoming and future Test Pilot experiments?

While discussing within the team about l20n, we were trying to figure out in which direction Test Pilot and its experiments will move. An answer to that question would definitely help us to determine where to focus our energies.

There are currently two parts in Test Pilot: the website front-end is using l20n, experiments and the add-on still rely on .properties file.

There’s currently an ongoing full rewrite of the add-on, and it’s using SDK (.properties), which is a technology already declared deprecated.

So, we’re left wondering in which direction Test Pilot is going to move: are experiments going to use WebExtension in the near future? Will they rely on libraries like React, or similar approaches? What about front-end?

My understanding is that the long term plan for the add-on is to be part of Firefox, so it would use whatever localization infrastructure is available there.

Based on IRC discussion I know this has been discussed in the past, but I don’t know the outcomes, if there were any.

1 Like

Thanks, @flod, for starting this thread. The answer to this question will help inform the l10n team’s development priorities in Q1 and Q2. We’d like to better understand how important localization will be to the Test Pilot experiments and the insight about the technology behind the experiments will allow us to make sure our infrastructure is up to par.

There’s Test Pilot itself, and there are the experimental features hosted by Test Pilot.

Test Pilot itself consists of a website and a companion add-on. The main function of that companion add-on is to empower the website to install & manage experiments. The add-on SDK might be deprecated, but it’s one of the few ways to build an add-on that installs other add-ons. Since the .properties format seemed the recommended approach for L10N in an SDK add-on, we went with that. If there’s a better approach, we’re open to switching.

The Test Pilot website is currently built using React & Redux. That seems to be working well, so it will likely stay that way for the foreseeable future. We’re using l20n.js there because that seemed like a good way forward for web sites at Mozilla.

As for experiments, I don’t think we can promise to pin them down to any particular stack. They’ll always be a mix of everything - XUL, SDK, WebExtensions - basically the whole gamut of what Firefox makes practically available. Each experiment has different requirements with respect to APIs and tweaks to Firefox. We also want to do things like dogfood our own APIs and push at the boundaries. We’re playing with everything from React to build systems to measurement systems - all the above.

Long term plans probably do include the companion add-on disappearing into Firefox itself, either in the form of a system add-on or APIs made available to the Test Pilot site. Test Pilot itself is an experiment, but we do hope to stabilize the core framework over time as we work out what works best for supporting experiments & experimenters.

It’s also worth noting that the core Test Pilot team often won’t be the folks developing experiments. Lots of us are participating in that, but some of our experiments have and will come from other teams around Mozilla and beyond. We’re assembling best practices & advice for experimenters, but ultimately we’re trying to be flexible and can’t rely on dictating the tech for any given experiment.

1 Like