Funsize can be defined as a "Partial MAR on demand" web service. It's supposed to be an isolated service that generates Partial MARs to transition from Version A to Version B of Firefox.
Funsize can be split into 2 logical parts: scheduler and tasks.
The scheduler listens for Pulse events and schedules tasks for nightly builds. The scheduler is managed by Releng and multihomed on several machines in SCL3.
The tasks, such as update generator, Balrog submitter, and signing worker do the actual work.
Working with Funsize
See CONTRIBUTING on how to contribute to the project.
Funsize is first and foremost a Python application so it tries to follow PEP 8 wherever possible.
It is then a Release Engineering application, so it tries to follow Releng Best Practices
Lastly there's a Contributor's Guide which goes into the details of how anyone can setup the project on their machines and start submitting patches and fixing bugs.
Deployment is managed by puppet.
See Funsize tracking bug for blocking bugs
Goals in order of priority:
- Add support for release partials
- Multiple partials in a single task
- Add S3 cache support
This is a Release Engineering project, so the best people to talk to about any questions would be the Release Engineering Team.
You can find us in #releng
If you already knew that tidbit of information, the people within Release Engineering who probably know most about this project will be (in decreasing order):
- Rail Aliiev (:rail)
- Ben Hearsum (:bhearsum)
- Chris Atlee (:catlee)
- Nick Thomas (:nthomas)
- Anhad Jai Singh (:ffedgling)
- Hal Wine (:hwine)