A build plan for the Accessibility team's efforts in bringing accessibility to mono by implementing the managed UI Automation framework.
Stephen Shaw (aka decriptor)
Ray Wang (aka Ray)
As needed on irc
Where: #mono-a11y on irc.gimp.org
- svn builds (internal Novell site, mostly for sanity checks)
- release builds (target: Mono 2.6)
- Maybe disk images with everything pre-installed?
Packages from our codebase:
Note: This might change as this is still being developed.
- Why not include UIAtomoationWinForms.dll in mono-uia.rpm? This layout would allow one user to install moonlight accessibility but not Windows.Forms accessibility (by installing uiaautomationmoonlight but not uiaautomationwinforms).
- Why not include UiaAtkBridge.dll in mono-uia.rpm? This layout would allow one user to install UIA without bridging to ATK technology (that is, using UIA Clients to inspect UIA Servers).
- iron python
- mono-winfxcore (part of mono as of 2.6)
- gtksharp-2.12.7 for 0.9.1
- gtksharp-2.12.8 for 1.0.0
Current Build Systems
- openSUSE 11.1
- openSUSE 11.2
- SLE 11
- Fedora 12
- Ubuntu 9.10
- openSUSE 11.3
- Fedora 13
- Ubuntu 10.4
Distros that have packaged it (or parts of it)
Build risk issues
This section describes any risks resulting from lack of time and/or resources.
- New deliverable files that aren't currently handled in the build file, ie. .spec
- Code that compiles with errors
- Missing dependencies
- All builders shall be on the team IRC channel (#mono-a11y on irc.gimp.org) during work hours.
- Builds shall be automated whenever possible. Time constraint is not a good excuse not to automate.
Suspension criteria and Resumption requirements
- Unavailability of external packages/dependencies
- Source Code no longer compiles
- A specific holiday shuts down both development and testing.
- Build servers become unavailable
- Consider building those dependencies
- Find out who was working on that code and contact them
- The holiday period ends.
- Building resources become available
Build preparation and setup
set of tasks necessary to prepare for and perform a build
- Have access to the build server
- Correct packaging files (spec/deb)
- Available jail for distro/arch
- RPMs for latest dependencies
Hardware, software, data, interfaces, facilities, publications, other requirements that pertain to the testing effort
Build Servers with root jails for each of the various architectures and distributions. This is largely taken care of by the build service and osc. osc creates jails on the fly.
Currently there are 2 build servers (build0 and build1) There are now several other machines
- openSUSE 11.2 32 bit
- hudson master
- osc tools
- openSUSE 11.2 64 bit
- hudson slave
- osc tools
- location of per rev svn snapshot rpm
|Coordinate Build||Maintain Hudson||Maintain OBS||Maintain Patches||Nightly Builds||Weekly Builds||Release Builds|
|Stephen Shaw (Build Engineer)||X||X||-||X||X||-||X|
|Ray Wang (Build Engineer)||-||-||X||-||-||X||X|
- Build Engineers
- Programming experience with C#, Python, and bash
- Build Engineer experience
- Autotools experience
- Build system experience
- Solid Linux experience in the command line (CLI)
- Writing rpm and/or deb build files experience
Anyone interested in learn/helping with build is welcome to join our team.
Built around the roadmap
Based on Q2 in roadmap, our initial testing schedule is below:
|Task||Start Time||End Time||Percent complete||Owner||Notes|
|Update/Maintain build page on A11y pages||July||Stephen & Ray||Ongoing|
|Design build plan||July||July||Stephen & Ray||Stephen needs to inform Ray of this page :)|
|Build Initial RPMs and Make sure they work!||June||July||Stephen & Ray||done, moved to continuous builds|
|Install Build servers||June||July||Stephen|
|Set up build environments||July||July||Stephen & Ray||Build0 is the hudson master and Build1 is the slave|
|Get full build server access to Ray||July||July||100%||Stephen||Depends on servers being installed|
|First Release||Dec 2008||100%||Stephen & Ray||Provider|
|Next Release||2009||100%||Stephen & Ray||On hold until 0.9 is ready for release|
|Build 1.0||2009||100%||Stephen & Ray||On hold until 1.0 is ready for release|
|Post 1.0 work||2009||0%||Stephen & Ray||Anything that comes after 1.0|
|Maintain Mono Accessibility wiki build pages||A11y build team||As new information or decisions come about|
|Adjust for patches and new packages||A11y build team||When other packages require them|
|...||A11y build team||...|
Risks and contingencies
Any activity that jeopardizes the building schedule is a planning risk
- Any major changes in development (causing delays)
http://www.mono-project.com/BuildSystem/MonoBuild MonoBuild---The current mono build system. We have tied into this for the time being.
https://build.opensuse.org/ OBS---This is a really cool build system that can handle several different distributions and architectures
Build plan identifier
Build Plan versions
|ID||Level||Software Version||Modify Time||Author|