This page is likely outdated (last edited on 06 May 2010). Visit the new documentation for updated content.
Accessibility: Build Plan
Scope
A build plan for the Accessibility team’s efforts in bringing accessibility to mono by implementing the managed UI Automation framework.
Build Team
Stephen Shaw (aka decriptor)
Ray Wang (aka Ray)
Build Meetings
As needed on irc
Where: #mono-a11y on irc.gimp.org
Outline
Deliverables
Intervals
- svn builds (internal Novell site, mostly for sanity checks)
- nightly
-
release builds (target: Mono 2.6)
- Maybe disk images with everything pre-installed?
Software
Packages from our codebase:
mono-uia
- UIAUtomationBridge.dll
- UIAutomationClient.dll
- UIAutomationProvider.dll
- UIAutomationSource.dll
- UIAutomationTypes.dll
uiaatkbridge
- UiaAtkBridge.dll
- libbridge-glue.so
uiautomationwinforms
- UIAutomationWinforms.dll
uiadbus
- UiaDbus.dll
- UiaDbusBridge.dll
- UiaDbusSource.dll
atspiuiasource
- AtspiUiaSource.dll
Moonlight UIA
- novell-moonlight-a11y.xpi
Note: This might change as this is still being developed.
FAQ:
- 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).
Other Packages
at-spi-sharp
- at-spi-sharp.dll
Possible Packages
- iron python
Packages Dependencies
- libgdiplus-2.4
- mono-core-2.4
- mono-winforms
- mono-winfxcore (part of mono as of 2.6)
- gtksharp-2.12
- gtksharp-2.12.7 for 0.9.1
- gtksharp-2.12.8 for 1.0.0
- at-spi2-core
- at-spi2-atk
Current Build Systems
- UIAutomation
- UiaAtkBridge
- UIAutomationWinforms
- mono/mcs
- gtk-sharp2
- moonlight
- moonatkbridge
- firefox
- at-spi2
- at-spi-sharp
nightly builds
currenty released
Build Distributions
Current
- openSUSE 11.1
- openSUSE 11.2
- SLE 11
- Fedora 12
- Ubuntu 9.10
Future (definite)
- openSUSE 11.3
- Fedora 13
- Ubuntu 10.4
Distros that have packaged it (or parts of it)
- Debian
- Mandriva
Build Architectures
Current
- i586
- x86_64
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
General Guidelines
- 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
Suspension criteria:
- Unavailability of external packages/dependencies
- Source Code no longer compiles
- A specific holiday shuts down both development and testing.
- Build servers become unavailable
Resumption requirements:
- 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
Individual Preparation:
- Have access to the build server
- Correct packaging files (spec/deb)
- Available jail for distro/arch
- RPMs for latest dependencies
Environmental needs
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.
Hardware
Currently there are 2 build servers (build0 and build1) There are now several other machines
Build0
- openSUSE 11.2 32 bit
- hudson master
- osc tools
Build1
- openSUSE 11.2 64 bit
- hudson slave
- osc tools
- location of per rev svn snapshot rpm
Architectures
- i586
- x86_64
Software needs
- Hudson
- OBS
- osc
- nunit
Responsibilities
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 |
Staffing needs
- 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.
Schedule
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 |
Ongoing tasks
Task | Owner | Notes |
---|---|---|
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)
References
The Product roadmap
The Architecture overview
The Novell & Microsoft announcement to create cross-platform accessibility framework
Build Systems
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 |
---|---|---|---|---|
Accessibility-BP-V0.1 | Draft | N/A | 07-03-2008 | Decriptor |
Accessibility-BP-V0.9 | Draft | N/A | 02-12-2009 | Decriptor |
Accessibility-BP-V1.0 | Draft | N/A | 01-06-2010 | Decriptor |
Accessibility-BP-V1.1 | Draft | N/A | 05-06-2010 | Decriptor |