X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fcontributing%2Fversioning.rst;h=5d93b18104255747f6f0eb1f1eddf8834664e1bc;hb=092a9de50b25c2b66eb79be83bee21c2db2f08e5;hp=f231b3665e70332a0c693d4812918b0f95e701eb;hpb=ac8342a8a61d6934a917a81ea46e4bc194fb5426;p=dpdk.git diff --git a/doc/guides/contributing/versioning.rst b/doc/guides/contributing/versioning.rst index f231b3665e..5d93b18104 100644 --- a/doc/guides/contributing/versioning.rst +++ b/doc/guides/contributing/versioning.rst @@ -73,19 +73,16 @@ being provided. The requirements for doing so are: interest" be sought for each deprecation, for example: from NIC vendors, CPU vendors, end-users, etc. -#. The changes (including an alternative map file) must be gated with - the ``RTE_NEXT_ABI`` option, and provided with a deprecation notice at the - same time. - It will become the default ABI in the next release. +#. The changes (including an alternative map file) can be included with + deprecation notice, in wrapped way by the ``RTE_NEXT_ABI`` option, + to provide more details about oncoming changes. + ``RTE_NEXT_ABI`` wrapper will be removed when it become the default ABI. + More preferred way to provide this information is sending the feature + as a separate patch and reference it in deprecation notice. #. A full deprecation cycle, as explained above, must be made to offer downstream consumers sufficient warning of the change. -#. At the beginning of the next release cycle, every ``RTE_NEXT_ABI`` - conditions will be removed, the ``LIBABIVER`` variable in the makefile(s) - where the ABI is changed will be incremented, and the map files will - be updated. - Note that the above process for ABI deprecation should not be undertaken lightly. ABI stability is extremely important for downstream consumers of the DPDK, especially when distributed in shared object form. Every effort should @@ -128,6 +125,15 @@ added to the Release Notes: these changes. Binaries using this library built prior to version 2.1 will require updating and recompilation. +New API replacing previous one +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If a new API proposed functionally replaces an existing one, when the new API +becomes non-experimental then the old one is marked with ``__rte_deprecated``. +Deprecated APIs are removed completely just after the next LTS. + +Reminder that old API should follow deprecation process to be removed. + Experimental APIs ----------------- @@ -557,26 +563,29 @@ utilities which can be installed via a package manager. For example:: The syntax of the ``validate-abi.sh`` utility is:: - ./devtools/validate-abi.sh + ./devtools/validate-abi.sh Where ``REV1`` and ``REV2`` are valid gitrevisions(7) https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html -on the local repo and target is the usual DPDK compilation target. +on the local repo. For example:: # Check between the previous and latest commit: - ./devtools/validate-abi.sh HEAD~1 HEAD x86_64-native-linux-gcc + ./devtools/validate-abi.sh HEAD~1 HEAD + + # Check on a specific compilation target: + ./devtools/validate-abi.sh -t x86_64-native-linux-gcc HEAD~1 HEAD # Check between two tags: - ./devtools/validate-abi.sh v2.0.0 v2.1.0 x86_64-native-linux-gcc + ./devtools/validate-abi.sh v2.0.0 v2.1.0 # Check between git master and local topic-branch "vhost-hacking": - ./devtools/validate-abi.sh master vhost-hacking x86_64-native-linux-gcc + ./devtools/validate-abi.sh master vhost-hacking After the validation script completes (it can take a while since it need to compile both tags) it will create compatibility reports in the -``./compat_report`` directory. Listed incompatibilities can be found as -follows:: +``./abi-check/compat_report`` directory. Listed incompatibilities can be found +as follows:: - grep -lr Incompatible compat_reports/ + grep -lr Incompatible abi-check/compat_reports/