Juniper PR information often contains a long list of Junos OS version numbers in the " Resolved In " field. This article explains why and what releases would contain a bug fix or an enhancement.
If you look at the sample PR 1499280 , the "Resolved In" field contains many different Junos OS versions. Some of them may seem slightly redundant.
BCF Resolved In: Junos: 12.3R12-S16, 12.3X48-D101, 12.3X48-D102, 12.3X48-D105, 14.1X53-D54, 15.1R7-S7, 15.1X49-D211, 15.1X49-D220, 15.1X53-D593, 16.1R7-S8, 17.2R3-S4, 17.3R3-S8, 17.4R2-S11, 17.4R3-S2, 18.1R3-S10, 18.2R2-S7, 18.2R3-S4, 18.2X75-D430, 18.2X75-D65, 18.3R2-S4, 18.3R3-S2, 18.4R1-S7, 18.4R2-S5, 18.4R3-S2, 19.1R1-S5, 19.1R3-S1, 19.2R2, 19.2R3, 19.3R2-S3, 19.3R3, 19.4R1-S2, 19.4R2, 19.4R3, 20.1R1-S1, 20.1R2, 20.2R1
BCF Resolved In:
Reminder: There are different Junos and Junos Evolved Release Types.
New major versions of the Junos OS (e.g., 20.1, 20.2, and so on, which are also known as release throttles) are meant to deliver new features and functionality.
The release types shipped for a major version are:
FRS Releases (e.g. 20.1R1, 20.2R1) – First Release Shipment (FRS) of any major version starts with R1, which is typically used for new features, support for new products, and bug fixes.
Maintenance Releases (e.g. 20.1R2, 20.2R3 etc.) – Standard releases are provided to support customers for all platforms running the Junos OS to provide bug fixes after the FRS release. Normally, there are no new features unless they went through some special approval process.
Service Releases (e.g. 20.1R3-S1) – Targeted releases provide more timely delivery of critical fixes to meet customer needs. Service releases may be limited to specific platforms or use cases.
There could also be customer specific type-1 Exception or X-releases, which are typically based on a given MR or SR (e.g. 19.2X1 based on 19.2R1-S2). This usually exists only on a per request basis for critical customer escalations. The exception releases are available only through JTAC.
In the above example of fixes that went into PR 1499280 , let's concentrate on the more recent versions.
In Junos OS, we use separated code branches to deliver major versions to stabilize the code over time. This is represented as a release tree representation as follows:
In the above tree representation, notice the main trunk, also called "Top of Tree" (ToT), where Continuous Code Development (CCD) and code fixing happens. In reality, the code changes are done in DEV-Common-Branch (DCB), which is periodically synced into ToT.
The major releases are separated from the main trunk at some point to test, fix issues, and sustain the major release via MRs and SRs.
The purple stars indicate the commits of bug fixes done through the above mentioned PR 1499280 . Some commits happened in the major release throttles (thicker line) and some happened in the separated branches and twigs. The Junos OS versions that are created (built) after the commit will contain the fix that is indicated in green color.
2021-05-31: Reference to DCB (DevCommonBranch) added