Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inference engine versioning #5562

Merged

Conversation

ilya-lavrenov
Copy link
Contributor

Details:

  • Inference Engine cmake and ie_version.hpp provides IE version in format {major}.{minor}.{patch}

Tickets:

@ilya-lavrenov ilya-lavrenov added category: inference OpenVINO Runtime library - Inference category: build OpenVINO cmake script / infra labels May 7, 2021
@ilya-lavrenov ilya-lavrenov added this to the 2021.4 milestone May 7, 2021
@openvino-pushbot openvino-pushbot added the category: Core OpenVINO Core (aka ngraph) label May 7, 2021
@mshabunin
Copy link
Contributor

mshabunin commented May 7, 2021

I'm intrested, what would be your versioning and branching strategy?

For example, OpenCV uses following scheme:

  1. developement on master branch: version is x.y.z, suffix is -dev
  2. feature-freeze and/or code-freeze on master branch: version bump to x.y.z+1, suffix is changed to -pre
  3. release on master branch: version is x.y.z+1, suffix is changed to empty
  4. after release: suffix is changed to -dev -> state 1

With this approach we are able to distinguish between development, FF/CF and release version. Also development version is considered previous release, not the future one.
Also, do you plan on changing link-name of your libraries to the versioned name? It could be useful for side-by-side installations.

@SDxKeeper
Copy link
Contributor

SDxKeeper commented May 12, 2021

I'm intrested, what would be your versioning and branching strategy?

For example, OpenCV uses following scheme:

1. developement on _master_ branch: version is `x.y.z`, suffix is `-dev`

2. feature-freeze and/or code-freeze on _master_ branch: version bump to `x.y.z+1`, suffix is changed to `-pre`

3. release on _master_ branch: version is `x.y.z+1`, suffix is changed to empty

4. after release: suffix is changed to `-dev` -> state `1`

With this approach we are able to distinguish between development, FF/CF and release version. Also development version is considered previous release, not the future one.
Also, do you plan on changing link-name of your libraries to the versioned name? It could be useful for side-by-side installations.

Previously we have been sticking to different versioning scheme which tracked master branch as "future" release. This means that after branching code for CF/FF, version in master was stepped up to the next one.
No specific changes were required for CF branch during preparation for release. Latest version from that branch was tagged as release.

Regarding link names for libraries. this has been asked a long time ago in ticket: CVS-26327

@mshabunin
Copy link
Contributor

mshabunin commented May 13, 2021

tracked master branch as "future" release

This approach has a disadvantage, when users call find_package(InferenceEngine VERSION 2021.4) they assume that all features from 2021.4 release will be available in found library, but instead any package with incomplete and undeveloped functionality up to previous release branching point will match.

@SDxKeeper
Copy link
Contributor

SDxKeeper commented May 13, 2021

tracked master branch as "future" release

This approach has a disadvantage, when users call find_package(InferenceEngine VERSION 2021.4) they assume that all features from 2021.4 release will be available in found library, but instead any package with incomplete and undeveloped functionality up to previous release branching point will match.

I assume that when people do call find_package in their project using sources cloned from opensource OpenVINO repository from master branch they do understand that they are using "master" branch and not release tag for purpose.
There are NO such case when OpenVINO sources from master branch will be installed into system so they would be found by find_package. Only binary distribution allows that which is available only from release.

@ilya-lavrenov ilya-lavrenov force-pushed the inference-engine-versioning branch from 8384538 to 1481402 Compare May 19, 2021 16:18
@ilya-lavrenov ilya-lavrenov merged commit 2bdd955 into openvinotoolkit:master May 20, 2021
@ilya-lavrenov ilya-lavrenov deleted the inference-engine-versioning branch May 20, 2021 07:21
yekruglov pushed a commit to yekruglov/openvino that referenced this pull request Jun 7, 2021
* Exclude xbyak from install

* Added automatically generated InferenceEngineConfig.cmake

* Reverted a version back

* Fixed issues with target aliases

* Make TBB dependency private

* Made ie_parallel.cmake self-sufficient

* Don't expose ie_paralle.cmake to end users

* Fixed compilation with TBB

* Fixes for TBB

* Fixed vpu_graph_transformer compilation

* Fixed tests compilation

* Added install of ie_parallel.cmake

* Switched ENABLE_ALTERNATIVE_TEMP to OFF. Fixed COMPONENTS for TBB

* Fixed file name in install rules

* Added find_dependency for TBB in ie_parallel.cmake

* WA for cmake bug with PACKAGE_PREFIX_DIR

* Fixed no-deprecation to fix speech-library build

* Reverted version from 2.1.0 to 2.1

* Revert "Reverted version from 2.1.0 to 2.1"

This reverts commit 7cb5d15.

* Added versions to cmake

* Added versions to ie_version.hpp

* Returned custom version file back

* Added InferenceEngineConfig-version.cmake to share as well

* Disabled one more GPU test

* Added one more WA for CI

* WA for CI issue for C API

* Added InferenceEngineConfig-version.cmake to share as well

* Added verison parsing from ie_version.hpp

* Revert "[CPU] Add Roll support (openvinotoolkit#5112)"

This reverts commit 5d8f209.

* Revert "[CPU] windows_Interpolate_fused-FQ_nearest-mode_nspc-layout_fix (openvinotoolkit#5317)"

This reverts commit 0808975.

* Revert "[INT8][BF16] INT8 + BF16 feature was enabled (openvinotoolkit#5059)"

This reverts commit 7d2ec02.

* Support for components

* No version for IEDevScripts package

* Removed IE_VS_VER_HAS_VERSION from vs_version.rc.in

* Added compatibility for 2.x old versioning
rnugmanx pushed a commit to rnugmanx/openvino that referenced this pull request Aug 26, 2021
* Exclude xbyak from install

* Added automatically generated InferenceEngineConfig.cmake

* Reverted a version back

* Fixed issues with target aliases

* Make TBB dependency private

* Made ie_parallel.cmake self-sufficient

* Don't expose ie_paralle.cmake to end users

* Fixed compilation with TBB

* Fixes for TBB

* Fixed vpu_graph_transformer compilation

* Fixed tests compilation

* Added install of ie_parallel.cmake

* Switched ENABLE_ALTERNATIVE_TEMP to OFF. Fixed COMPONENTS for TBB

* Fixed file name in install rules

* Added find_dependency for TBB in ie_parallel.cmake

* WA for cmake bug with PACKAGE_PREFIX_DIR

* Fixed no-deprecation to fix speech-library build

* Reverted version from 2.1.0 to 2.1

* Revert "Reverted version from 2.1.0 to 2.1"

This reverts commit 7cb5d15.

* Added versions to cmake

* Added versions to ie_version.hpp

* Returned custom version file back

* Added InferenceEngineConfig-version.cmake to share as well

* Disabled one more GPU test

* Added one more WA for CI

* WA for CI issue for C API

* Added InferenceEngineConfig-version.cmake to share as well

* Added verison parsing from ie_version.hpp

* Revert "[CPU] Add Roll support (openvinotoolkit#5112)"

This reverts commit 5d8f209.

* Revert "[CPU] windows_Interpolate_fused-FQ_nearest-mode_nspc-layout_fix (openvinotoolkit#5317)"

This reverts commit 0808975.

* Revert "[INT8][BF16] INT8 + BF16 feature was enabled (openvinotoolkit#5059)"

This reverts commit 7d2ec02.

* Support for components

* No version for IEDevScripts package

* Removed IE_VS_VER_HAS_VERSION from vs_version.rc.in

* Added compatibility for 2.x old versioning
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: build OpenVINO cmake script / infra category: Core OpenVINO Core (aka ngraph) category: inference OpenVINO Runtime library - Inference
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants