ToolchainFreeze

Revision 2 as of 2011-03-09 16:03:26

Clear message

DRAFT - this is WORK IN PROGRESS

After this point the toolchain used for building the release should not change without significant regression testing and written signoff from release team and management.

Core toolchain components include GNU compiler, binutils, libc. (Debugger - TBD)

Process needs to be defined still, as does infrastructure to do the testing and what the tests should be.

Elements to consider:

  • purpose is sanity testing, (safety net before introducing to general build)
  • review of actual fixes being proposed, and anticipated scope of impact (ie. platform specific code, or general cross architecture location)
    • no ABI changes that could require rebuild of entire repostitory to be required, those only at start of new cycle.
  • if general cross architecture:
    • automated compiler regression tests should have been run on each of the architectures, and the logs results should be as good or better than the prior run's logs.
    • rebuild of boot loader when appropriate (arm, ppc) - no build failures
    • rebuild of kernel across all architectures (not just the one with the fix ) - no build failures
    • rebuild of key main components (TBD - all of main, or subset? ) - no build failures
    • boot of system on each of the architectures - no obvious failures
    • sanity set of tests (open browser, send an email, ?? ) - no obvious run time failures
  • if architecture specific
    • automated compiler regression tests should have been run on each of the architectures, and the logs results should be as good or better than the prior run's logs.
    • rebuild of bootloader, kernel, and key components (main?) on that specific architecture - no build failures
    • boot of system on the architecture - no obvious failures
    • sanity set of tests (open browser, send email, ?? ) - no obvious run time failures

Short Term Risk Mitigation

In the short term we likely should extend automated toolchain testing. We could create a new PPA into which daily uploads of the toolchain, and a selection of bigger packages could be uploaded (kernel, and libreoffice to start with). If the tool chain uploads trigger no-change rebuilds of the others.