Table of Contents
4.3 Packages Dependencies
4.4 Current Build Systems
4.5 Build Distributions
4.6 Build Architectures
4.7 Build risk issues
4.8 General Guidelines
4.9 Suspension criteria and Resumption requirements
4.10 Build preparation and setup
4.11 Environmental needs
4.12 Responsibilities
4.13 Staffing needs
4.14 Schedule
4.15 Ongoing tasks
4.16 Risks and contingencies
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)
[Your name could be here]
Build Meetings
Mostly just informal meetings.
When: No set day. M - F
Time: Not set. Anywhere from 20:00 - 24:00
Where: #mono-a11y on irc.gimp.org
Outline
Deliverables
Intervals
- svn builds (http://mono.ximian.com/monobuild/snapshot/download-trunk/) (deprecated)
- daily builds (internal Novell page, QA consumption)
- weekly builds (https://build.opensuse.org/project/show?project=home%3Auia2atk)
- release builds (https://build.opensuse.org/project/show?project=Mono:Community) (target: Mono 2.2)
- Maybe disk images with everything pre-installed?
Software
Packages from our codebase:
uiaatkbridge
- UiaAtkBridge.dll
- libbridge-glue.so*
uiautomationwinforms
- UIAutomationWinforms.dll
mono-uia
- UIAutomationProvider.dll
- UIAutomationTypes.dll
- UIAutomationBridge.dll
(Future:)
- Moonlight UIA stuff: most likely called uiautomationmoonlight (UIAutomationMoonlight.dll)
- UIA Client stuff: most likely included in mono-uia package.
Packages on which we depend:
- mono-winforms
- System.Windows.Forms.dll (we contributed a11y patches to it)
- gtk-sharp
- atk-sharp.dll (we contributed atk# patches to it)
- glib-sharp.dll (atk-sharp.dll depends on it, and we contributed patches to it as well)
- mono-wpf (doesn't exist yet)
- WindowsBase.dll (dependency because of .NET 3.x architecture)
Note: This might change as this is still being developed. Indeed, currently there's no mono-wcf package, all is in a virtual olive.rpm package (stuff like WindowsBase will move to mono/mcs soon).
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
Nothing here yet. As we collect more patches and/or need to package other projects, they will be listed here.
Possible Packages
- mono
- mcs
- olive
- gtksharp-2.12
- iron python
Packages Dependencies
As of right now everything needs to be from svn
- Mono
- MCS
- gtksharp-2.12
- Olive (WindowsBase.dll)
Current Build Systems
Monobuild (will most likely be going away )
- UiaAtkBridge
- UIAutomationWinforms
- Olive
OBS
This will be used for weekly snapshots weekly builds (https://build.opensuse.org/project/show?project=home%3Auia2atk)
Build Distributions
Current
- openSUSE 11.0
- SLES 10.0
- Fedora (assumption is that the openSUSE RPMs work, no reason to think otherwise)
Future (definite)
- openSUSE 11.1
- SLE 11.0
Future (possibles)
- Debian (mostly likely we'll start working on this in December)
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
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
| x86 | x86_64 | |
|---|---|---|
| openSUSE | ||
| SLES | ||
| Fedora | ||
| Debian |
Hardware:
Currently there are 2 build servers (need to be setup still)
Build0
- openSUSE 11.0
- osc tools
Build1
- openSUSE 11.0
- osc tools
- testing cruise control .net
- location of daily rpm snapshot
Architectures
- i586
- x86_64
Software:
- Some form of build system
Responsibilities
| Coordinate Build | Maintain Monobuild | 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 | Most Likely have OBS on build0 and Monobuild on build1 | |
| Get full build server access to Ray | July | July | 100% | Stephen | Depends on servers being installed |
| First Release | Dec 2008 | 0% | Stephen & Ray | Provider | |
| Next Release | 2009 | 0% | Stephen & Ray | On hold until 0.9 is ready for release | |
| Build 1.0 | 2009 | 0% | 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 (http://www.mono-project.com/Accessibility:_Roadmap)
The Architecture overview (http://www.mono-project.com/Accessibility#Architecture)
The Novell & Microsoft announcement (http://www.novell.com/news/press/microsoft-and-novell-celebrate-year-of-interoperability-expand-collaboration-agreement) to create cross-platform accessibility framework
Build Systems
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 |
|---|---|---|---|---|
| Accessibility-BP-V0.1 | Draft | N/A | 07-03-2008 | Decriptor |


