diff mbox

doc: release-guide: elaborate release naming scheme

Message ID 1470667920-1839-1-git-send-email-bill.fischofer@linaro.org
State New
Headers show

Commit Message

Bill Fischofer Aug. 8, 2016, 2:52 p.m. UTC
Add additional detail and examples to the description of the release
naming scheme used by ODP, detailing the expected impact to ODP
applications and/or other ODP implementations for each change.

Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

---
 doc/process-guide/release-guide.adoc | 51 ++++++++++++++++++++++++++++--------
 1 file changed, 40 insertions(+), 11 deletions(-)

-- 
2.7.4

Comments

Mike Holmes Aug. 8, 2016, 3:53 p.m. UTC | #1
Looks good, one comment below

On 8 August 2016 at 10:52, Bill Fischofer <bill.fischofer@linaro.org> wrote:

> Add additional detail and examples to the description of the release

> naming scheme used by ODP, detailing the expected impact to ODP

> applications and/or other ODP implementations for each change.

>

> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

> ---

>  doc/process-guide/release-guide.adoc | 51 ++++++++++++++++++++++++++++--

> ------

>  1 file changed, 40 insertions(+), 11 deletions(-)

>

> diff --git a/doc/process-guide/release-guide.adoc

> b/doc/process-guide/release-guide.adoc

> index 8816c03..6ee798d 100644

> --- a/doc/process-guide/release-guide.adoc

> +++ b/doc/process-guide/release-guide.adoc

> @@ -116,28 +116,57 @@ atomically as possible

>  * the maintainer tags the master branch

>

>  == Releases ==

> -All releases are from master.

> +All releases are from master. Recall that ODP consists of three separate

> +components:

> +

> +* An API Specification

> +* Multiple independently owned and maintained _implementations_ of the

> ODP API

> +* A Validation Test Suite that tests implementation conformance to the

> ODP API

> +

> +Included with the main ODP git repository is the `odp-linux` reference

> +implementation of the ODP API, and it also has an associated service

> stream

> +that is independent of all other ODP implementations. This means that the

> ODP

> +release naming conventions address the needs of all three of these

> components,

> +which is accomplished via a multi-level structure using the format:

> +

> +*v<Generation>.<Major>.<Minor>.<Impl>*

>

> -They are tagged in the repository using the format

>


The above sentence is important, early on there was debate that was settled
by specifying that we always use the four digits so that  users can
immediately tell the severity of change if syncing to that tag.
To make a tools use of the data simpler we said it would always be
specified in the repo using the full four digits.


> -v<Generation>.<Major>.<Minor>.<Impl>

>  There are three release types with differing frequencies and impact to the

> -applications.

> +applications and other ODP implementations. The fourth is simply used to

> +designate the service stream associated with an individual ODP

> implementation.

>

>  === Generation releases ===

>  A generation release indicates a major completion of work, and a possible

> -change in direction for the API. Same as for Major release plus they are

> -defined by the Steering committee.

> +change in direction for the API. Generation release changes are approved

> by the

> +LNG Steering Committee, which is the governing body for ODP.

>

>  === Major releases ===

> -Major (API) releases are scheduled to be about once a

> -quarter, but when there is significant progress made they may be more

> frequent.

> +Major (API) releases are used when new APIs or capabilities are

> introduced or

> +changes are made to existing APIs. These changes may not be

> +backwards-compatible.  Major release changes thus potentially affect ODP

> +applications as well as implementations.

>

>  === Point releases ===

> -General bug fixes and other non API altering changes are gathered and a

> release

> -made every month if sufficient change has accumulated.

> +General bug fixes and other non API altering changes are gathered and a

> +release made every month if sufficient change has accumulated. Examples

> of a

> +point release would be typographic corrections to API header file

> +documentation, other additional documentation, extensions or corrections

> to

> +the validation test suite, additions or corrections to example programs,

> +etc. No API changes are permitted in a point release, so ODP applications

> are

> +not impacted.  Other ODP implementations _may_ be impacted if, for

> example, a

> +bug is fixed in a validation test that results in a latent bug in other

> +implementations being exposed.

>

>  === Implementation (Impl) ===

> -Platform specific free form text relating to the version.

> +Platform specific free form text relating to the version. This field is

> for

> +the sole use of implementations to represent their individual service

> +streams. Its format may vary between implementations. For example, the

> +`odp-linux` reference implementation uses a simple incrementing digit (0,

> 1,

> +2, etc.). Other implementations may use `Build xxxx` or something similar.

> +Changes in this designator have no impact on and may be ignored by other

> ODP

> +implementations. The only changes that ODP applications should see is

> corrected

> +functional or performance behavior when running on that specific ODP

> +implementation.

>

>  == Deprecating part of the API

>  Deleting or changing the published API follows the normal

> <<anchor-1,process>>, with the following additional rules:

> --

> 2.7.4

>

>



-- 
Mike Holmes
Technical Manager - Linaro Networking Group
Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs
"Work should be fun and collaborative, the rest follows"
Bill Fischofer Aug. 8, 2016, 7:54 p.m. UTC | #2
On Mon, Aug 8, 2016 at 10:53 AM, Mike Holmes <mike.holmes@linaro.org> wrote:

> Looks good, one comment below

>

> On 8 August 2016 at 10:52, Bill Fischofer <bill.fischofer@linaro.org>

> wrote:

>

>> Add additional detail and examples to the description of the release

>> naming scheme used by ODP, detailing the expected impact to ODP

>> applications and/or other ODP implementations for each change.

>>

>> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>

>> ---

>>  doc/process-guide/release-guide.adoc | 51 ++++++++++++++++++++++++++++--

>> ------

>>  1 file changed, 40 insertions(+), 11 deletions(-)

>>

>> diff --git a/doc/process-guide/release-guide.adoc

>> b/doc/process-guide/release-guide.adoc

>> index 8816c03..6ee798d 100644

>> --- a/doc/process-guide/release-guide.adoc

>> +++ b/doc/process-guide/release-guide.adoc

>> @@ -116,28 +116,57 @@ atomically as possible

>>  * the maintainer tags the master branch

>>

>>  == Releases ==

>> -All releases are from master.

>> +All releases are from master. Recall that ODP consists of three separate

>> +components:

>> +

>> +* An API Specification

>> +* Multiple independently owned and maintained _implementations_ of the

>> ODP API

>> +* A Validation Test Suite that tests implementation conformance to the

>> ODP API

>> +

>> +Included with the main ODP git repository is the `odp-linux` reference

>> +implementation of the ODP API, and it also has an associated service

>> stream

>> +that is independent of all other ODP implementations. This means that

>> the ODP

>> +release naming conventions address the needs of all three of these

>> components,

>> +which is accomplished via a multi-level structure using the format:

>> +

>> +*v<Generation>.<Major>.<Minor>.<Impl>*

>>

>> -They are tagged in the repository using the format

>>

>

> The above sentence is important, early on there was debate that was

> settled by specifying that we always use the four digits so that  users can

> immediately tell the severity of change if syncing to that tag.

> To make a tools use of the data simpler we said it would always be

> specified in the repo using the full four digits.

>


I think I point this out in the discussion of the fourth level name <Impl>
below. odp-linux (which is the implementation that is shipped with the odp
git repo, uses digits for the fourth level name. But other implementations
are free to use whatever is consistent with their own service strategy
preferences.


>

>

>> -v<Generation>.<Major>.<Minor>.<Impl>

>>  There are three release types with differing frequencies and impact to

>> the

>> -applications.

>> +applications and other ODP implementations. The fourth is simply used to

>> +designate the service stream associated with an individual ODP

>> implementation.

>>

>>  === Generation releases ===

>>  A generation release indicates a major completion of work, and a possible

>> -change in direction for the API. Same as for Major release plus they are

>> -defined by the Steering committee.

>> +change in direction for the API. Generation release changes are approved

>> by the

>> +LNG Steering Committee, which is the governing body for ODP.

>>

>>  === Major releases ===

>> -Major (API) releases are scheduled to be about once a

>> -quarter, but when there is significant progress made they may be more

>> frequent.

>> +Major (API) releases are used when new APIs or capabilities are

>> introduced or

>> +changes are made to existing APIs. These changes may not be

>> +backwards-compatible.  Major release changes thus potentially affect ODP

>> +applications as well as implementations.

>>

>>  === Point releases ===

>> -General bug fixes and other non API altering changes are gathered and a

>> release

>> -made every month if sufficient change has accumulated.

>> +General bug fixes and other non API altering changes are gathered and a

>> +release made every month if sufficient change has accumulated. Examples

>> of a

>> +point release would be typographic corrections to API header file

>> +documentation, other additional documentation, extensions or corrections

>> to

>> +the validation test suite, additions or corrections to example programs,

>> +etc. No API changes are permitted in a point release, so ODP

>> applications are

>> +not impacted.  Other ODP implementations _may_ be impacted if, for

>> example, a

>> +bug is fixed in a validation test that results in a latent bug in other

>> +implementations being exposed.

>>

>>  === Implementation (Impl) ===

>> -Platform specific free form text relating to the version.

>> +Platform specific free form text relating to the version. This field is

>> for

>> +the sole use of implementations to represent their individual service

>> +streams. Its format may vary between implementations. For example, the

>> +`odp-linux` reference implementation uses a simple incrementing digit

>> (0, 1,

>> +2, etc.). Other implementations may use `Build xxxx` or something

>> similar.

>> +Changes in this designator have no impact on and may be ignored by other

>> ODP

>> +implementations. The only changes that ODP applications should see is

>> corrected

>> +functional or performance behavior when running on that specific ODP

>> +implementation.

>>

>>  == Deprecating part of the API

>>  Deleting or changing the published API follows the normal

>> <<anchor-1,process>>, with the following additional rules:

>> --

>> 2.7.4

>>

>>

>

>

> --

> Mike Holmes

> Technical Manager - Linaro Networking Group

> Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs

> "Work should be fun and collaborative, the rest follows"

>

>

>
diff mbox

Patch

diff --git a/doc/process-guide/release-guide.adoc b/doc/process-guide/release-guide.adoc
index 8816c03..6ee798d 100644
--- a/doc/process-guide/release-guide.adoc
+++ b/doc/process-guide/release-guide.adoc
@@ -116,28 +116,57 @@  atomically as possible
 * the maintainer tags the master branch
 
 == Releases ==
-All releases are from master.
+All releases are from master. Recall that ODP consists of three separate
+components:
+
+* An API Specification
+* Multiple independently owned and maintained _implementations_ of the ODP API
+* A Validation Test Suite that tests implementation conformance to the ODP API
+
+Included with the main ODP git repository is the `odp-linux` reference
+implementation of the ODP API, and it also has an associated service stream
+that is independent of all other ODP implementations. This means that the ODP
+release naming conventions address the needs of all three of these components,
+which is accomplished via a multi-level structure using the format:
+
+*v<Generation>.<Major>.<Minor>.<Impl>*
 
-They are tagged in the repository using the format
-v<Generation>.<Major>.<Minor>.<Impl>
 There are three release types with differing frequencies and impact to the
-applications.
+applications and other ODP implementations. The fourth is simply used to
+designate the service stream associated with an individual ODP implementation.
 
 === Generation releases ===
 A generation release indicates a major completion of work, and a possible
-change in direction for the API. Same as for Major release plus they are
-defined by the Steering committee.
+change in direction for the API. Generation release changes are approved by the
+LNG Steering Committee, which is the governing body for ODP.
 
 === Major releases ===
-Major (API) releases are scheduled to be about once a
-quarter, but when there is significant progress made they may be more frequent.
+Major (API) releases are used when new APIs or capabilities are introduced or
+changes are made to existing APIs. These changes may not be
+backwards-compatible.  Major release changes thus potentially affect ODP
+applications as well as implementations.
 
 === Point releases ===
-General bug fixes and other non API altering changes are gathered and a release
-made every month if sufficient change has accumulated.
+General bug fixes and other non API altering changes are gathered and a
+release made every month if sufficient change has accumulated. Examples of a
+point release would be typographic corrections to API header file
+documentation, other additional documentation, extensions or corrections to
+the validation test suite, additions or corrections to example programs,
+etc. No API changes are permitted in a point release, so ODP applications are
+not impacted.  Other ODP implementations _may_ be impacted if, for example, a
+bug is fixed in a validation test that results in a latent bug in other
+implementations being exposed.
 
 === Implementation (Impl) ===
-Platform specific free form text relating to the version.
+Platform specific free form text relating to the version. This field is for
+the sole use of implementations to represent their individual service
+streams. Its format may vary between implementations. For example, the
+`odp-linux` reference implementation uses a simple incrementing digit (0, 1,
+2, etc.). Other implementations may use `Build xxxx` or something similar.
+Changes in this designator have no impact on and may be ignored by other ODP
+implementations. The only changes that ODP applications should see is corrected
+functional or performance behavior when running on that specific ODP
+implementation.
 
 == Deprecating part of the API
 Deleting or changing the published API follows the normal <<anchor-1,process>>, with the following additional rules: