[asterisk-dev] [policy] DAHDI version numbers

Shaun Ruffell sruffell at digium.com
Thu Dec 11 18:23:54 CST 2008


The historical convention for assigning Zaptel version numbers had been to use
an A.B.C[.D] format.

* The A number for major revisions.

* The B number indicated the version of Asterisk that was supported.  Zaptel
   1.2.x supported Asterisk 1.2.x and Zaptel 1.4.x supported
   Asterisk 1.4.x.

* The C number was for major changes and new features and bug fixes.

* A D number sometimes was used for minor bug fixes that subjectively didn’t
   warrant a bump in the C number.

With the release of DAHDI, the convention of indicating Asterisk version
support in the DAHDI version number is no longer the convention. DAHDI 2.0.0
supports both Asterisk 1.4 (later versions) and Asterisk 1.6.  Since DAHDI is
now decoupled from the Asterisk version number I would like to clarify and
request any comments on another A.B.C[.D|-rcX] format to use for DAHDI, both
linux and tools.

* The A number is for major changes that potentially change the concept of
   DAHDI and should rarely change.

* The B number is for new features or functions that may require a change in
   some other dependent package.  This might be a change in dahdi/user.h that
   breaks Asterisk compilation.  This might also be the addition of a new
   driver or feature that requires changes in the system configuration and/or
   asterisk configuration script in order to take advantage of.  Basically,
   users should not necessarily expect to be able to move between various B
   releases without needing to make some other system change. However it is
   important to note that this wouldn’t always be the case--for example when a
   new driver is added that the user wouldn’t ever use.

* A C number for bug fixes and internal improvements that do not require any
   changes to dependent packages or system configuration files.  A user should
   be able to move between different C versions of a given A.B version without
   requiring any system configuration changes.

* An optional D number for urgent bug fixes that do not require any
   configuration changes and are not significant enough to warrant a cycle of
   release candidates or formal testing.

* An optional release candidate level for a given A.B.C release.  Before
   making an A.B.C release, there will be one or more release candidates that
   will be advertised on asterisk-dev to allow interested parties to test the
   packages before making the A.B.C release and posting the announcement on
   asterisk-users and asterisk-announce.

While the version numbers for dahdi-linux and dahdi-tool have mirrored one 
another to date, this is not necessarily required.

As part of implementing this policy, kpfleming recommended adding both UPGRADE 
and CHANGES files to dahdi-linux so that users have a specific place to go in 
order to learn what changes might need to be made when moving between 
consecutive B versions.  These files are not currently in the 2.0.0 or 2.1.0 
releases, but will be in the next release if this is how we want to proceed.

Finally, changes in either dahdi-linux or dahdi-tools that would cause 
something to break in a package that is not either dahdi-linux or dahdi-tools 
will result in a A.B branch that will receive bug fixes for some period of 
time (TBD) independently of the trunk.  This is essentially the same way 
Asterisk is maintained now and is intended to allow users to receive the 
benefits of bug fixes without a resultant ripple of changes to their entire 
configuration.  However an A.B release that introduces a new feature which 
doesn't break backward compatibility will not result in a separately 
maintained branch.  For example, a user who updates from dahdi-linux 2.0.0 to 
2.1.0 would not by default be required to also update their Asterisk version. 
  Therefore, bug fixes committed to the trunk will not be ported back to a 
2.0.0 branch.

Any thoughts or comments?




More information about the asterisk-dev mailing list