GCC
The GNU Compiler Collection (GCC) is a compiler suite which supports a number of programming languages, such as C and C++. It is a very important development tool and is the standard compiler among free software projects. GCC was quite stagnant in the middle of the 1990s until the EGCS project formed. EGCS took over development of the official GCC in October 1998 and instituted rigorous processes, such as high levels of peer review, and created a steering committee which has the power to appoint maintainers and make important decisions. In theory, the project follows a time based release with an interval of six months. In practice, the project has released only one new version every year in recent times.
| Version | Date | Months |
| 3.0 | 2001-06-18 | |
| 3.1 | 2002-05-15 | 11 |
| 3.2 | 2002-08-14 | 3 |
| 3.3 | 2003-05-13 | 9 |
| 3.4.0 | 2004-04-18 | 11 |
| 4.0.0 | 2005-04-20 | 12 |
| 4.1.0 | 2006-02-28 | 10 |
Past problems
- The GCC project suffered from a closed development style in the past: few people could make code changes and the mailing list was by invitation only.
- There was a long time between releases and development snapshots, which contained bug fixes and features, were not available to the public.
- When development opened and picked up, significant code changes were often made which required a long stabilization phase.
Solutions
- The project moved to a more open development style and established a steering committee which has the power to appoint new maintainers and make important decisions.
- The development process was divided into three stages in order to coordinate code submissions and keep the development tree reasonable stable. Major changes that developers wish to make during stage 1 and stage 2 have to be proposed on the project's wiki. Proposals are reviewed by the release manager who also assign a sequence to proposed projects which says when they can be applied to the development tree.
- All patches are peer reviewed on the development mailing list and need approval before they can be applied. The steering committee appoints maintainers who can approve patches that touch particular areas. There are maintainers for the C front-end, various port maintainers, and maintainers for other areas.
- Each development stage lasts two months, theoretically yielding a release every six months. A regular release cycle ensures that it is not the end of the world if a feature does not make it into the following release.
Outstanding problems
- The release manager is busy and has not pushed the release forwards as much as would be possible.
- The branch criteria may need revision to make it easier to create a branch which leads to the next stable version. At the moment, the branch criteria is to have 100 or less regressions on the development tree. However, this number may include regressions that are also present in previous releases, which makes it fairly hard to reach this criteria.
Debian
The aim of Debian is to integrate software produced by other projects to create a complete operating system based on free software. In recent years, the project has faced increasingly delayed and unpredictable releases. Most notably, the release process of Debian 3.1 was characterized by major delays. Initially announced for December 1, 2003, the software was finally released in June 2005: a delay of one and a half years. Since then, the project has made a number of improvements to its release process.
| Version | Date | Months |
| 1.1 | 1996-06-17 | |
| 1.2 | 1996-12-12 | 6 |
| 1.3 | 1997-06-02 | 6 |
| 2.0 | 1998-07-24 | 14 |
| 2.1 | 1999-03-09 | 7 |
| 2.2 | 2000-08-14 | 17 |
| 3.0 | 2002-07-19 | 23 |
| 3.1 | 2005-06-06 | 35 |
Past Problems
- Release management was not very organized and release updates were posted only infrequently. Because of this and the lack of a roadmap, freezes were often announced out of the blue.
- Due to the unorganized nature of the release, several new and unexpected blockers were found during the release process, leading to delays.
- The unexpected delays meant that software was frozen for a long time, in the case of Debian 3.1 for over a year. When this release was finally published, many components were already out of date and would often not meet user demands.
- The fact that Debian has experienced significant delays with several of its recent releases has led to problems with the image of the project. There is a perception that Debian is slow and cannot meet deadlines. This is also associated with frustration in the developer and user community.
Solutions
- The project has implemented better release management structures. In particular, Debian moved from a single release manager to a team during the 3.1 release cycle. The release is now handled by two release managers with the help of several release assistants.
- A release date for the next release was set well in advance and there is more planning.
- Release announcements are sent more frequently and various information sources have been implemented through which developers can stay informed about the release status.
- Release targets have been defined better and there is a distinction between blockers and goals. Only blockers hold up the release whereas goals can be postponed for a future release. For example, the XFree86 to X.org transition and the integration of AMD64 support were blockers, while LSB 3.1 compatibility and SE Linux support were only goals for Debian 4.0.
- The release team has shifted the responsibility of achieving targets to specific developers and teams. There are also better criteria now defining these responsibilities. For example, criteria have been published that architectures need to fulfil for inclusion in Debian 4.0 and there is a page indicating the status of each architecture.
- The release team is increasingly giving encouragement to developers to help out with software packages and bugs which normally do not fall into their domain.
- A staged freeze has been implemented according to which software is frozen in stages according to its importance. The toolchain and base system are frozen earlier than the majority of package. The majority of software is now frozen when most blockers have been resolved.
- The use of the experimental repository has been promoted to make sure that the main development repository is in a good shape most of the time.
Outstanding problems
- Developers still need to be convinced that targets can be met, that deadlines are real and that Debian can release on time.