-
Notifications
You must be signed in to change notification settings - Fork 8
Home
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 the picture below.
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 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:
|
RE-0.99.17.7 | planned |
|
RE-0.99.17.8 | planned |
|
QRE git repository is currently hosted on GitHub:
- git://github.com/Quagga-RE/quagga-RE.git (native git, read-only)
- git@github.com:Quagga-RE/quagga-RE.git (ssh+git, developer read-write access)
$ git branch -a * RE-testing-0.99 remotes/origin/HEAD -> origin/RE-testing-0.99 remotes/origin/RE-stable-0.99 remotes/origin/RE-testing-0.99 remotes/origin/masterAnother way is to setup remote branches, for example, in a repository cloned from the "mainstream" Quagga repository:
$ git clone git://code.quagga.net/quagga.git Cloning into quagga... remote: Counting objects: 25001, done. remote: Compressing objects: 100% (7189/7189), done. remote: Total 25001 (delta 19892), reused 22563 (delta 17755) Receiving objects: 100% (25001/25001), 8.44 MiB | 317 KiB/s, done. Resolving deltas: 100% (19892/19892), done. $ cd quagga/ $ git branch -a * master remotes/origin/+paul/ospfd/201012-review remotes/origin/HEAD -> origin/master remotes/origin/bgpd/pgbgp remotes/origin/debug.zrealloc remotes/origin/feature.bgp-vty-view-af remotes/origin/master remotes/origin/paul/ospfd/201012-review remotes/origin/quagga_0_98_stable remotes/origin/queued/paul $ git remote add QRE git://github.com/Quagga-RE/quagga-RE.git $ git fetch QRE remote: Counting objects: 107, done. remote: Compressing objects: 100% (68/68), done. remote: Total 79 (delta 57), reused 16 (delta 11) Unpacking objects: 100% (79/79), done. From git://code.quagga.net/quagga-RE * [new branch] RE-stable-0.99 -> QRE/RE-stable-0.99 * [new branch] RE-testing-0.99 -> QRE/RE-testing-0.99 * [new branch] master -> QRE/master * [new tag] RE-0.99.17.1 -> RE-0.99.17.1 $ git branch -a * master remotes/QRE/RE-stable-0.99 remotes/QRE/RE-testing-0.99 remotes/QRE/master remotes/origin/+paul/ospfd/201012-review remotes/origin/HEAD -> origin/master remotes/origin/bgpd/pgbgp remotes/origin/debug.zrealloc remotes/origin/feature.bgp-vty-view-af remotes/origin/master remotes/origin/paul/ospfd/201012-review remotes/origin/quagga_0_98_stable remotes/origin/queued/paul $ git checkout RE-testing-0.99 Branch RE-testing-0.99 set up to track remote branch RE-testing-0.99 from QRE. Switched to a new branch 'RE-testing-0.99' $ git branch * RE-testing-0.99 masterPushing commits to the server requires being on the "gitqre" group and agreeing to abide by the rules of QRE.
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.
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.
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.
- Planned works
- Google multipath BGP
- Google IS-IS contributions (mapping of commits still unclear)
- Works in progress
- Candidates for rollback
- Completed works