Difference between revisions of "Mozharness"
(→Project Plan) |
(→Project Plan) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 102: | Line 102: | ||
* 0.1: | * 0.1: | ||
− | *<s>- create mercurial repository: Done</s> -->[http://iraq.proximity.on.ca/hg]<-- | + | **<s>- create mercurial repository: Done</s> -->[http://iraq.proximity.on.ca/hg]<-- |
− | ** Download builds and tests get them running on Fedora Linux x64. | + | <s>** Download builds and tests get them running on Fedora Linux x64.</s> |
− | *** Mochitest and reftest? | + | <s>*** Mochitest and reftest?</s> |
− | ** Document the success or problems of these tests (on F13.x64) | + | <s>** Document the success or problems of these tests (on F13.x64)</s> |
− | ** Find out what the meaninfull output will be (These tests run, what are we looking for as a result) | + | <s>** Find out what the meaninfull output will be (These tests run, what are we looking for as a result)</s> |
− | ** Scope a specific set of test(s) and options that will be incorporated into moztest.py | + | <s>** Scope a specific set of test(s) and options that will be incorporated into moztest.py</s> |
− | ** See what logic and scripts can be ported from buildbotcustom to moztest.py | + | <s>** See what logic and scripts can be ported from buildbotcustom to moztest.py</s> |
* 0.2 | * 0.2 | ||
− | ** Create a basic moztest.py which calls classes from the scripts in the harness to take on options and provide a --help list. | + | <s>** Create a basic moztest.py which calls classes from the scripts in the harness to take on options and provide a --help list.</s> |
** Incorporate the automation of: | ** Incorporate the automation of: | ||
***checking the build environment prerequisites | ***checking the build environment prerequisites | ||
***create an option to bring system up to date for any missing pre-reqs | ***create an option to bring system up to date for any missing pre-reqs | ||
− | ***download and unpack builds and tests into a standardized directory structure | + | <s>***download and unpack builds and tests into a standardized directory structure</s> |
***run a barebones test | ***run a barebones test | ||
** expand automation to include: | ** expand automation to include: | ||
***all options available for the test chosen | ***all options available for the test chosen | ||
− | ***simplify the options for "easy test and build urls" | + | <s>***simplify the options for "easy test and build urls"</s> |
* 0.3 | * 0.3 | ||
− | **Document 0.1 and 0.2 in an introduction to moztest.py (mozharness) in an inclusive format geared towards developers using the tool and those that may contribute to it in the future | + | <s>**Document 0.1 and 0.2 in an introduction to moztest.py (mozharness)</s> in an inclusive format geared towards developers using the tool and those that may contribute to it in the future |
− | **Continue to expand on moztest.py to address errors | + | <s>**Continue to expand on moztest.py to address errors</s> |
**TBD midway through 0.3 | **TBD midway through 0.3 | ||
</td> | </td> |
Latest revision as of 04:57, 18 December 2010
Contents
Project Name
Mozharness
Project Description
Imagine that we did not have to touch the Mozilla buildbot factories but instead we maintained a bunch of script for all the different jobs they run?
It would be good if we could create scripts that told a machine how to generate an optimized build, a debug build, unit tests, talos runs, locale repackages. If you look in the tools/scripts repo you can see that we have a simple shell file to do this for the fuzzing automation. The buildbot factory that calls it is called mozharness and it is very simple.
mozharness is a single factory that buildbot can run; within mozharness, a script is selected for a specific job. This moves the job-definition responsibility out from buildbot; by separating the pieces, you avoid excessive complexity in buildbot and also open up the possibility of running mozharness manually (e.g., by a developer, to test something) ment Initial contacts: Armenzg
Project Leader(s)
Project Contributor(s)
Project Details
- Objective: Improve efficiency while lowering the entry level knowledge required from new developers to get involved
- requirements: pylint and coverage
- ./unit.sh to run unit test coverage
- scripts directory contain scripts
- documentation is required
- API is changing - WIP in https://bugzilla.mozilla.org/show_bug.cgi?id=574473
- scripts written in python
- separate framework - which buildbot calls
What are we building?
- Profile Build
- Debug Build - For OS (Mac, Linux, Windows, 32/64 etc)
- Packaged Test - contains test for the build
- Tests - Mochitests, Reftests, xpcshell, ... 10 in total
- l10n builds
The problem that mozharness solves:
- buildbot uses a "factory" to run a job
- there are (becoming) too many different "factories" within buildbot
Outlined in Armen's blog post
Project Plan
Goals for each release:
hgtool port
- Create the MercurialVCS class that is responsible for basic hg operations (clone, pull, push) each with an individual method
- Implement all hgtool actions as individual methods in MercurialVCS. At this point MercurialVCS() should be importable (useful) for Mozharness
- lib/source/mercurial.py should be callable via shell with parameters matching each method (ie: ./mercurial.py checkout [src]?)
|
0.1 through 0.3 will have a progressive approach.
|
Project News
- Friday October 8, 2010:
- I will try to contact Armen today and find out what his schedule is like, and coordinate with everybody to setup a meeting in CDOT conference room. -Mustafa
- Tuesday October 12, 2010:
- Adrian made initial Contact with Armen, meeting set for 3pm Wendesday October 13, 2010 -Mustafa
- Wednesday October 13, 2010:
- The mozharness/buildapi/releasebugs group met today with Armen and Ctyler in a conference call. The conference call is logged below -Mustafa
First meeting: mozharness call (2010-10-12 15:00 EDT)
- What is mozharness (Armen)
- Initial direction
- Q&A
Atendees:
- ctyler, mustafaj, armenzg, adrianp, asingh
Blogs:
- Armen: http://armenzg.blogspot.com/
- Mustafa: http://mustafaredha.wordpress.com/
- adrianp: http://blog.esmnetworks.com/
... all of which appear on the CDOT Planet