June 27, 2024

Presenters: Colin Percival and Gordon Tetlow

The release engineering session, led by Colin Percival and Gordon Tetlow, focused on revising past practices and implementing more frequent minor releases. The session demonstrated the importance of establishing a consistent and efficient release cycle to minimize the accumulation of changes and potential issues.

Colin Percival opened the discussion by emphasizing streamlining the release cycle. He highlighted the need for more frequent minor releases, aiming to reduce the typical release cycle to every three months. “Our goal is to have minor releases more frequently, ideally every three months, to minimize the accumulation of changes and potential issues,” Percival stated. This approach is intended to create a more predictable and manageable release schedule, ensuring that updates are built and distributed efficiently and securely​​.

A significant change proposed was reducing the number of release candidates. Historically, FreeBSD has followed the practice of having multiple betas and release candidates. However, Percival suggested that each release should ideally have only one release candidate unless significant issues arise. “If it’s a release candidate, it should be something that we think is a candidate to be a release,” he noted. This would mean aiming for one release candidate, with additional ones only if necessary due to unforeseen issues​​.

The session also addressed the need for better communication between developers and the release engineering team. Percival highlighted the importance of transparency and timely reporting of issues. “I want to know about issues affecting upcoming releases as early as possible,” he said, emphasizing that early notification helps track and address potential problems before they escalate​​.

Percival shared insights on the practical aspects of the release engineering process, including the timeline and workload distribution. He explained that managing a release involves significant effort, particularly in the weeks leading up to the release candidate. “It takes about 100 hours of my work to do a minor release,” he mentioned, highlighting the uneven distribution of this workload, which peaks just before the release candidate stage​​.

The session wasn’t without humor. Brooks Davis quipped about the challenges of managing version control systems, saying, “The CI job uses LLVM 13, which is too old, and I think now we have a gap in the middle because we have like 12, 13, and 14 in the CI actions, and we’re up to like 18 in head”​​.

The discussion concluded with a focus on the broader strategic goals for FreeBSD’s release engineering. Percival and Tetlow reiterated the importance of a predictable release schedule, efficient communication, and the need for community involvement in refining the release process. This strategic approach aims to enhance the overall stability and reliability of FreeBSD, ensuring that it continues to meet the needs of its diverse user base.

By implementing these changes, the release engineering team hopes to create a more streamlined and efficient process, ultimately leading to more reliable and timely releases for the FreeBSD community.