I'm considering starting an extra branch of Linaro GCC for use in the final stages of development and would like your input.
Our goal is improve the performance of real, shipping products and to help the their time to market. We make improvements and fixes to FSF GCC and then backport them to Linaro GCC so that you can pick up these improvements early. The problem comes when you're nearing release time as picking up a new release for a needed bug fix also pulls in new features which might introduce bugs.
To reduce the risk, we could run a stable branch or bolster up the FSF stable branch.
The Linaro stable branch would: * Start from Linaro GCC and its many performance improvements * Only take bug fixes * Be tested and released every month * Run for six months at a time * Work in the same way as our main release including support and having binary builds
The idea is that you could track the main branch during development and switch to the stable branch during the last few months. This gives a good mix of the latest performance with less risk at release time.
Bolstering up the FSF stable branch approaches the problem a different way. We work upstream, so all of our improvements are available in an upstream release, but perhaps a year later than via Linaro GCC. We could take the mainline releases, add binary builds, and generally boost mainline support.
The FSF stable branch would: * Start at the upstream 4.x.1 release such as 4.6.1 * Only take regression fixes * Be tested and release with each (roughly quarterly) mainline release * Run for the roughly twelve months until the next mainline 4.y.1 release * Give a good path if you move away from Linaro in the future
Any comments are appreciated. There's more background and discussion on the wiki at: https://wiki.linaro.org/MichaelHope/Sandbox/StableBranch
I'm particularly interested in comments from people making products, distributions, or IDEs such as: * Is a stable branch useful? * How long does it need to be supported for? * When do you freeze your toolchain? * Should we spend our time elsewhere such as on more performance, faster bug fixes, more documentation, being in more distributions, or being available in other ways such as binary builds?
-- Michael