Build lab

A lab or a VBL (virtual build lab) commonly refers to a team working on a part of the Windows operating system, or the source code branch that the team works on. Originally, a build lab was a room with machines periodically producing official builds of Windows NT. Initially, there was a single build lab for the entire project, however, as the number of developers grew, teams working on different parts of the operating system were assigned their own virtual build labs, which included a branch of the project code, as well as the infrastructure to build the code. This carried over to Source Depot branch names, which led to the term being also used for the teams themselves and the branches.

Builds that were not built by the build lab machines are called private builds. They are identified by having the  file flag set in the executable's version information and by including the account name of the person or service who initiated the build in the branch part of the build tag.

Labs
Microsoft has used several branching systems since the start of Windows XP development, which differ in the hierarchy of labs as well as in the naming scheme. However, there are some specifics common to most schemes, such as the presence of a top-most main branch, or the use of special branches for important development milestones.

Whistler and pre-reset Longhorn
The top-most branch (sometimes called the "trunk") was called main, which integrated changes from all labs. Under it were several numbered labs, each of which was working on a separate part of Windows, such as: These labs also had a "_N" branch, which served as a buffer between main and the actual branch. For example, changes from main would first get integrated into Lab06_N before later being integrated into Lab06 in a process called forward integration. The same applied for reverse integration, where the lab would first integrate changes into its N-branch before integrating them into main.
 * Lab01: Kernel
 * Lab02: Networking
 * Lab03: Server
 * Lab04: Terminal Services
 * Lab06: User interface
 * Lab07: Internet Information Services/COM+ (added in Longhorn)

There were also idx (internal development workstation/server) branches, builds from which are usually recompilations intended for TAP/OEM partners. However, they were also occasionally released for public testing, e.g. Windows Longhorn build 4074 or Windows XP build 2257.

Before the release of Windows XP, the source tree was forked into the xpclient branch while the main branch moved on to track Windows Server 2003 development. After the final version was shipped, new branches were created for updates, hotfixes and Service Pack development.

Longhorn through Threshold
The trunk was renamed to winmain after the development reset of the Longhorn project, and the lab structure was overhauled. Instead of having a small amount of numbered virtual build labs that were grouped together based on the general area of Windows NT they worked on, labs were now more specialized towards the specific feature or feature set of Windows NT that they worked on, which helped reduce the amount of code to reverse integrate for each top most lab. Additionally, labs could have sub-branches, allowing for even more specialization on a particular feature set. "_N" branches were retired with this transition. Microsoft also set stricter criteria for reverse integrating changes from the labs into winmain.

For Windows Vista, the "vbl" prefix standing for Virtual Build Lab was used. Since Windows 7, the new "fbl" prefix has been used, which stands for Feature Branch Level.