Skip to content
infrastation edited this page Jan 11, 2013 · 39 revisions

Table of Contents

what is Quagga Release Engineering

QRE is an attempt to continue Quagga development in a way without the difficulties currently experienced in the "master" branch of the project. Technically it is a git repository with additional branches: testing and stable. Some discipline is enforced upon each branch, controlling which commits can go where and how this is done. In particular, every commit going into the testing branch must have a developer responsible for it and a reasonable testing period (1-2 weeks), after which the change either gets finished and working, or ends up rolled back. The stable branch incorporates all finished works from the testing, this is where the version tarballs are exported from. This process is illustrated by this picture: https://github.com/downloads/Quagga-RE/quagga-RE/QRE-2011Q3.png

Priorities

Amidst all routing protocols OSPF and BGP are P1, OSPFv3 is P2 and all other protocols are P3. With regard to operating systems, Linux and FreeBSD are P1 and all other OSes are P2.

QRE versioning, milestones and changelog

QRE is expected to produce 2-3 versions during year 2011, which will be named 0.99.17.x. It is expected, that during year 2012 all commits of the master release 0.99.18 will be filtered through RE-testing-0.99 and a new stable RE series started (0.99.18.x).

version date release focus/notes
RE-0.99.17.1 2011-07-12 Provide a release of Quagga, which would compile and had no open critical bugs.
RE-0.99.17.2 2011-09-07 Merge all patches present in FreeBSD port of Quagga.
RE-0.99.17.3 2011-09-07 Hotfix for RE-0.99.17.2
RE-0.99.17.4 2011-09-26
RE-0.99.17.5 2011-09-29 Hotfix for RE-0.99.17.4
RE-0.99.17.6 2012-01-05 Release 0.99.17.6 fixes the following bugs:
  • #350 nexthop-local unchanged in BGP
  • #480 detect inactive interfaces in ND RA
  • #487 connected route management
  • #548 IPv6 update-source in BGP
  • #622 fix crash in "bgpd --dry-run"
  • #674, #677, #680 improved BGP attribute flag checks
  • #685 verbose LSA checksum error message
Some of the other improvements, which have no associated bug ID, are:
  • automatic RIB GC after a zclient
  • ospf6d: implement 'match interface' for route-maps
  • bgpd: implement 'match probability' in route-maps
  • IPv6 transport class suppport
  • assorted fixes by Stephen Hemminger and David Lamparter
  • new "-z" command-line option
  • optimized IP prefix processing
  • spelling and documentation updates
  • some compilation warnings addressed
RE-0.99.17.7 2012-03-12
RE-0.99.17.8 2012-03-12
RE-0.99.17.9 2012-04-12
RE-0.99.17.10 2012-06-04
RE-0.99.17.11 2012-07-09
RE-0.99.17.12 2013-01-11

Fundamental purpose of branches

RE-testing-0.99

This is where all changes covered by RE process are initially applied. The code from this branch is deployed onto routers and the result is checked for regressions. In case a commit is found to cause trouble in a high-priority component of Quagga, the regression must be addressed by means of commit reversal or a bugfix. The respective committer is personally responsible for this mitigation performed in a timely manner, and it is assumed, that committers perform testing of their own commits rather than leave it for someone else. There is no "someone else", risks must be managed right here. The purpose of this branch is to detect mess before it is copied elsewhere.

RE-stable-0.99

This branch accumulates the changes, which remained in RE-testing-0.99 for a long enough time, were not reversed and were found finished. In case some particular work consists of a set of commits, all these commits are cherry-picked in one sequence, where possible (for the sole purpose of tracking convenience). The purpose of this branch is to accumulate good stuff and deliver it through tar.gz releases.

master

This branch is kept as an exact copy of the original master branch of the original Quagga git repository, which is governed by its own rules rather than RE process. The purpose of this branch is to provide starting points for assorted QA and research activities.

List of works

Analysis of commits stored in Paul Jakma's version of Quagga