Funsize

Partial update service

What is Funsize

Funsize enables you (CI) to create partial MAR (Mozilla ARchive) update files and publish them to Mozilla Update Server (Balrog).

Current process

  • Nightly/release build - generate complete MAR
  • Identify previous build(s)
  • Generate partial update
  • Publish to Balrog
  • Repeat for L10N repacks

Cons

  • Nightly: limited to a single previous build
  • L10N repacks: inline generation takes time
  • Releases: have to specify the list of partials a week before release

Pros

It works!

Why Funsize

  • UX: Smaller files to download
  • Faster adoption of new versions
  • Less network load
  • Decoupled from builds

Architecture

  • Scheduling: Pulse/AMQP based
  • Execution: TaskCluster
    • Update generator
    • Signing
    • Publishing (S3, Balrog)

Reporting: Treeherder

Future plans

  • ADI based updates
  • Updates (almost) on-demand
  • S3 diff cache

What's in a name?

Authors: Anhad (ffledgling), Mihai and Laura

  • Small updates
  • Mini MARs
  • Mars Mini

Thanks!