]> xenbits.xensource.com Git - pvdrivers/win/xennet.git/commitdiff
Update docs and set version to 8.1.0
authorPaul Durrant <paul.durrant@citrix.com>
Fri, 24 Jul 2015 11:50:41 +0000 (12:50 +0100)
committerPaul Durrant <paul.durrant@citrix.com>
Fri, 24 Jul 2015 11:50:41 +0000 (12:50 +0100)
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
CHANGELOG
INTERFACES.md [new file with mode: 0644]
README.md
build.py

index dc0830cd13163fd38ac84fb12d584a9229584ded..a76d366b31ee43e8dcc7e3d6c8f501fc14780f12 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -11,3 +11,5 @@
 8.0.0 (2014-08-14):
 * Drivers with new API version scheme
 
+8.1.0 (2015-07-24):
+* Revised API versioning and unplug mechanism
diff --git a/INTERFACES.md b/INTERFACES.md
new file mode 100644 (file)
index 0000000..9d296d5
--- /dev/null
@@ -0,0 +1,33 @@
+Interface Versions and PDO Revisions\r
+====================================\r
+\r
+It is important that introduction of a new API, introduction of a new\r
+version of an existing API or retirement of an old version of an API is\r
+managed carefully to avoid incompatibilities between clients and\r
+providers. The general API versioning policy is described below:\r
+\r
+Each distinct set of API versions exported by a bus driver maps to a PDO\r
+revision. The DeviceID of each PDO created will specify the latest\r
+revision supported and all others will be contained within the\r
+HardwareIDs and CompatibleIDs. When a new version of an API is added,\r
+a new PDO revision must be added. When a version of an API is removed\r
+then ALL revisions that API version maps to must be removed. The mapping\r
+of interface versions to PDO revisions is specified in the header file\r
+include/revision.h in the bus driver source repository.\r
+\r
+Whe introducing a new version of an interface in a bus driver it is good\r
+practice to continue to support the previous version so it is not\r
+necessary to simultaneously introduce a new PDO revision and retire a\r
+previous one that child drivers may still be binding to.\r
+Child drivers should, of course, always be built to use the latest\r
+interface versions (which can be copied from the include directory in the\r
+source repository of the bus driver providing them) but it may take\r
+some time to make the necessary changes and deploy new builds of child\r
+drivers and so some overlap is desirable.\r
+\r
+To try to avoid installation of a version of a bus driver that is\r
+incompatible with child drivers installed on a system. There is a check\r
+in the pre-install phase in the co-intaller which compares the\r
+MatchingDeviceId values for each child driver against the table in\r
+include/revision.h in the bus driver source to make sure that the\r
+matching revision number is present.\r
index cc926079c892a378d24accba5dc1cb70a944ffd6..b50a2e6216265862fffc6b84d91be1e7d45b6cf4 100644 (file)
--- a/README.md
+++ b/README.md
@@ -51,34 +51,10 @@ Installing the driver
 
 See INSTALL.md
 
-API Versions
-============
-
-It is important that introduction of a new API, introduction of a new
-version of an existing API or retirement of an old version of an API is
-managed carefully to avoid incompatibilities between clients and
-providers. The general API versioning policy is described below:
-
-Each distinct set of API versions exported by a driver maps to a PDO
-revision. The DeviceID of each PDO created by the driver will specify the
-latest revision supported and all others will be contained within the
-HardwareIDs and CompatibleIDs.
-Hence, when a new version of an API is added, a new PDO revision will be
-added. When a version of an API is removed then ALL revisions that API
-version maps to will be removed.
-
-To avoid a situation where a new version of the package is installed that
-is incompatible with any child drivers that make use of the APIs, each
-child 'subscribes' to an API by writing a registry value with the version
-number of that API that they consume into a registry key under the service
-key of the providing driver. E.g. if driver 'foo' consumes version 1 of
-driver 'bar''s 'widget' API, then it will write
-HLKM/CurrentControlSet/Services/BAR/Interfaces/FOO/WIDGET with the value 1.
-The 'bar' package co-installer can then check, prior to installation of a
-new version of a driver, that it can still support all of its subscribers.
-If any of the API versions subscribed to has been removed then installation
-will be vetoed until all the subscriber drivers have been updated to use
-the newer versions of the APIs exported by the newer providing driver.
+Driver Interfaces
+=================
+
+See INTERFACES.md
 
 Miscellaneous
 =============
index 0ed1913e9daab42029cf1a5a06d8504fc903adc8..fe1d0a638057f471a31be1fb3f66ba76cf0eddff 100755 (executable)
--- a/build.py
+++ b/build.py
@@ -339,7 +339,7 @@ if __name__ == '__main__':
         os.environ['PRODUCT_NAME'] = 'Xen'
 
     os.environ['MAJOR_VERSION'] = '8'
-    os.environ['MINOR_VERSION'] = '0'
+    os.environ['MINOR_VERSION'] = '1'
     os.environ['MICRO_VERSION'] = '0'
 
     if 'BUILD_NUMBER' not in os.environ.keys():