Thunderbird/Infrastructure/Canary System
From MozillaWiki
Contents
Aims of the Canary System (in order of priority)
- Provide a buffer system for mozilla-central breakages, so that they do not affect the main Thunderbird trunk tree, and landings can proceed in Thunderbird trunk.
- Provide a buffer system that allows comm-central breakages to be distinguished from mozilla-central breakages
- Facilitate regression finding by setting only valid revisions for both comm-central and mozilla-central code bases when going back to earlier revisions
Basic Design
Trees
- Two trees build comm-central and mozilla-central
- ThunderbirdUntested is the cutting-edge latest code.
- Thunderbird is the comm-central plus valid mozilla-central revision.
We may wish to prioritise Thunderbird builds over ThunderbirdUntested builds.
Developer checkouts
- client.py needs to be adjusted for two modes:
- Pull latest comm-central and update to a safe mozilla-central revision
- This should be the default mode
- Pull latest comm-central and mozilla-central
- Pull latest comm-central and update to a safe mozilla-central revision
Determining good changesets
- Results of the boxes pushing to Thunderbird (the canary tree), will be parsed.
- When a mozilla-central changeset has all green builds, the changeset will be counted as "good".
- This should count unit test builders as well.
- Not sure if we want to keep a note of the successful builds with test failures versus completely successful builds.
Matching good changesets
Simple option
What is the mozilla-central revision that builds with the latest comm-central?
- Stores one revision, that gets updated by the canary tree parser whenever there is a green set of builds.
- client.py queries this revision and uses it for the mozilla-central update command.
More complex option
Simple option plus If I want to go back to revision x of comm-central, what's a valid revision for mozilla-central?
- Stores appropriate data to support:
- pulling the latest OK revision of mozilla-central
- pulling good revisions by date and revision
- Support downloading all the data for off-line regression hunting.