From 050a6a3919a87b68834bb1b358a30621a10a6be3 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Tue, 21 Feb 2023 16:12:45 +0800 Subject: [PATCH 01/13] fix --- src/sonic-config-engine/setup.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index 3f2b2a240a9..8a9f4c7f6fa 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -1,8 +1,10 @@ import glob import sys +import subprocess from setuptools import setup +sonic_dependencies = ['sonic-py-common', 'sonic-yang-mgmt', 'sonic-yang-models'] # Common dependencies for Python 2 and 3 dependencies = [ 'bitarray==1.5.3', @@ -50,6 +52,12 @@ 'sonic_yang_cfg_generator' ] +for package in sonic_dependencies: + r = subprocess.call([sys.executable, '-m', 'show', package.split("==")[0]], stdout=sys.stderr.fileno()) + if r != 0: + sys.stderr.write("Please build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage\n") + exit(1) + setup( name = 'sonic-config-engine', version = '1.0', From 6815d0ef2cef1b2b4b504075946e249e686ed001 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Wed, 22 Feb 2023 16:23:22 +0800 Subject: [PATCH 02/13] fix --- src/sonic-config-engine/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index 8a9f4c7f6fa..b9a5eef7e99 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -53,7 +53,7 @@ ] for package in sonic_dependencies: - r = subprocess.call([sys.executable, '-m', 'show', package.split("==")[0]], stdout=sys.stderr.fileno()) + r = subprocess.call([sys.executable, '-m', 'pip', 'show', package], stdout=sys.stderr.fileno()) if r != 0: sys.stderr.write("Please build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage\n") exit(1) From e34b4acf709a89b8cfe4fd5833a9c8d9f86470bd Mon Sep 17 00:00:00 2001 From: shilongliu Date: Thu, 23 Feb 2023 09:14:55 +0000 Subject: [PATCH 03/13] fix --- src/sonic-config-engine/setup.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index b9a5eef7e99..f36de8d88a5 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -4,7 +4,9 @@ from setuptools import setup +# sonic module dependencies. sonic_dependencies = ['sonic-py-common', 'sonic-yang-mgmt', 'sonic-yang-models'] + # Common dependencies for Python 2 and 3 dependencies = [ 'bitarray==1.5.3', @@ -53,10 +55,11 @@ ] for package in sonic_dependencies: - r = subprocess.call([sys.executable, '-m', 'pip', 'show', package], stdout=sys.stderr.fileno()) - if r != 0: - sys.stderr.write("Please build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage\n") - exit(1) + try: + __import__(package) + except ImportError: + print("\nPlease build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage") + raise setup( name = 'sonic-config-engine', From 25e3ad446824d1756d567cea3337be50fc7f3629 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Thu, 23 Feb 2023 09:20:07 +0000 Subject: [PATCH 04/13] fix --- src/system-health/setup.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/system-health/setup.py b/src/system-health/setup.py index 62b02252e8c..2ad825d6a1c 100644 --- a/src/system-health/setup.py +++ b/src/system-health/setup.py @@ -6,6 +6,16 @@ 'docker' ] +# sonic module dependencies. +sonic_dependencies = ['sonic_py_common'] + +for package in sonic_dependencies: + try: + __import__(package) + except ImportError: + print("\nPlease build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage") + raise + setup( name='system-health', version='1.0', From 3b67e3028d74ccbd13e3b9b0c4987ddefea51296 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Thu, 23 Feb 2023 09:20:51 +0000 Subject: [PATCH 05/13] fix --- src/sonic-config-engine/setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index f36de8d88a5..916e6c4add6 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -1,6 +1,5 @@ import glob import sys -import subprocess from setuptools import setup From 9662e8a6c5c0e81bf831091ba161d24f2378e489 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Mon, 27 Feb 2023 06:51:56 +0000 Subject: [PATCH 06/13] Check SONiC dependencies before installation. --- src/sonic-config-engine/setup.py | 10 ++++++---- src/system-health/setup.py | 12 +++++++----- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index 916e6c4add6..209b7394528 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -2,6 +2,7 @@ import sys from setuptools import setup +import pkg_resources # sonic module dependencies. sonic_dependencies = ['sonic-py-common', 'sonic-yang-mgmt', 'sonic-yang-models'] @@ -55,10 +56,11 @@ for package in sonic_dependencies: try: - __import__(package) - except ImportError: - print("\nPlease build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage") - raise + pkg_resources.get_distribution(package) + except pkg_resources.DistributionNotFound: + print(package+" is not found!") + print("Please build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage") + exit(1) setup( name = 'sonic-config-engine', diff --git a/src/system-health/setup.py b/src/system-health/setup.py index 2ad825d6a1c..2f040b27d8b 100644 --- a/src/system-health/setup.py +++ b/src/system-health/setup.py @@ -1,4 +1,5 @@ from setuptools import setup +import pkg_resources dependencies = [ 'natsort', @@ -7,14 +8,15 @@ ] # sonic module dependencies. -sonic_dependencies = ['sonic_py_common'] +sonic_dependencies = ['sonic-py-common'] for package in sonic_dependencies: try: - __import__(package) - except ImportError: - print("\nPlease build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage") - raise + pkg_resources.get_distribution(package) + except pkg_resources.DistributionNotFound: + print(package+" is not found!") + print("Please build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage") + exit(1) setup( name='system-health', From f8277b0c4e0161393403df1ca02eccf64d82d239 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Mon, 27 Feb 2023 06:55:11 +0000 Subject: [PATCH 07/13] Check SONiC dependencies before installation. --- src/system-health/setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/system-health/setup.py b/src/system-health/setup.py index 2f040b27d8b..5de745572aa 100644 --- a/src/system-health/setup.py +++ b/src/system-health/setup.py @@ -1,15 +1,15 @@ from setuptools import setup import pkg_resources +# sonic module dependencies. +sonic_dependencies = ['sonic-py-common'] + dependencies = [ 'natsort', 'sonic_py_common', 'docker' ] -# sonic module dependencies. -sonic_dependencies = ['sonic-py-common'] - for package in sonic_dependencies: try: pkg_resources.get_distribution(package) From 9ae57930fd48f41feaa3c0535642e5c4907156a9 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Mon, 27 Feb 2023 08:51:23 +0000 Subject: [PATCH 08/13] fix --- src/sonic-config-engine/setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index 209b7394528..ebb3f5c97c5 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -5,7 +5,7 @@ import pkg_resources # sonic module dependencies. -sonic_dependencies = ['sonic-py-common', 'sonic-yang-mgmt', 'sonic-yang-models'] +sonic_dependencies = ['sonic-py-common'] # Common dependencies for Python 2 and 3 dependencies = [ @@ -28,6 +28,7 @@ 'sonic-yang-mgmt>=1.0', 'sonic-yang-models>=1.0' ] + sonic_dependencies += ['sonic-yang-mgmt', 'sonic-yang-models'] else: # Python 2-only dependencies dependencies += [ From 374e716bd98930c1129e89c37700c1cace571181 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Tue, 28 Feb 2023 01:11:28 +0000 Subject: [PATCH 09/13] fix --- src/sonic-config-engine/setup.py | 4 ++-- src/system-health/setup.py | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index ebb3f5c97c5..5b8fcf9fbc6 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -59,8 +59,8 @@ try: pkg_resources.get_distribution(package) except pkg_resources.DistributionNotFound: - print(package+" is not found!") - print("Please build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage") + sys.stderr.write(package + " is not found!\n") + sys.stderr.write("Please build and install SONiC python wheels dependencies from sonic-buildimage\n") exit(1) setup( diff --git a/src/system-health/setup.py b/src/system-health/setup.py index 5de745572aa..4126ec0582f 100644 --- a/src/system-health/setup.py +++ b/src/system-health/setup.py @@ -1,4 +1,5 @@ from setuptools import setup +import sys import pkg_resources # sonic module dependencies. @@ -14,8 +15,8 @@ try: pkg_resources.get_distribution(package) except pkg_resources.DistributionNotFound: - print(package+" is not found!") - print("Please build and install SONiC python wheels dependencies from github.com/sonic-net/sonic-buildimage") + sys.stderr.write(package + " is not found!\n") + sys.stderr.write("Please build and install SONiC python wheels dependencies from sonic-buildimage\n") exit(1) setup( From 5ad6732831cada7dd62270f93dfc075cebc319c7 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Tue, 28 Feb 2023 06:05:30 +0000 Subject: [PATCH 10/13] fix --- src/sonic-config-engine/setup.py | 21 +++++++++++++-------- src/system-health/setup.py | 5 +++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index 5b8fcf9fbc6..16b05da8e3a 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -1,11 +1,10 @@ +from __future__ import print_function import glob import sys from setuptools import setup import pkg_resources - -# sonic module dependencies. -sonic_dependencies = ['sonic-py-common'] +from packaging import version # Common dependencies for Python 2 and 3 dependencies = [ @@ -28,7 +27,6 @@ 'sonic-yang-mgmt>=1.0', 'sonic-yang-models>=1.0' ] - sonic_dependencies += ['sonic-yang-mgmt', 'sonic-yang-models'] else: # Python 2-only dependencies dependencies += [ @@ -55,12 +53,19 @@ 'sonic_yang_cfg_generator' ] -for package in sonic_dependencies: +for package in dependencies: + if package.find("sonic") == -1: + continue try: - pkg_resources.get_distribution(package) + package_dist = pkg_resources.get_distribution(package.split(">=")[0]) except pkg_resources.DistributionNotFound: - sys.stderr.write(package + " is not found!\n") - sys.stderr.write("Please build and install SONiC python wheels dependencies from sonic-buildimage\n") + print(package + " is not found!", file=sys.stderr) + print("Please build and install SONiC python wheels dependencies from sonic-buildimage", file=sys.stderr) + exit(1) + if package.find(">=") != -1: + if version.parse(package_dist.version) >= version.parse(package.split(">=")[1]): + continue + print(package + " version not match!", file=sys.stderr) exit(1) setup( diff --git a/src/system-health/setup.py b/src/system-health/setup.py index 4126ec0582f..ab0d2098320 100644 --- a/src/system-health/setup.py +++ b/src/system-health/setup.py @@ -1,3 +1,4 @@ +from __future__ import print_function from setuptools import setup import sys import pkg_resources @@ -15,8 +16,8 @@ try: pkg_resources.get_distribution(package) except pkg_resources.DistributionNotFound: - sys.stderr.write(package + " is not found!\n") - sys.stderr.write("Please build and install SONiC python wheels dependencies from sonic-buildimage\n") + print(package + " is not found!", file=sys.stderr) + print("Please build and install SONiC python wheels dependencies from sonic-buildimage", file=sys.stderr) exit(1) setup( From fa96a540c7e873312614d22b98e12f67a0339159 Mon Sep 17 00:00:00 2001 From: shilongliu Date: Tue, 28 Feb 2023 06:24:57 +0000 Subject: [PATCH 11/13] fix --- src/system-health/setup.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/system-health/setup.py b/src/system-health/setup.py index ab0d2098320..f003c8f13a8 100644 --- a/src/system-health/setup.py +++ b/src/system-health/setup.py @@ -2,9 +2,7 @@ from setuptools import setup import sys import pkg_resources - -# sonic module dependencies. -sonic_dependencies = ['sonic-py-common'] +from packaging import version dependencies = [ 'natsort', @@ -12,13 +10,20 @@ 'docker' ] -for package in sonic_dependencies: +for package in dependencies: + if package.find("sonic") == -1: + continue try: - pkg_resources.get_distribution(package) + package_dist = pkg_resources.get_distribution(package.split(">=")[0]) except pkg_resources.DistributionNotFound: print(package + " is not found!", file=sys.stderr) print("Please build and install SONiC python wheels dependencies from sonic-buildimage", file=sys.stderr) exit(1) + if package.find(">=") != -1: + if version.parse(package_dist.version) >= version.parse(package.split(">=")[1]): + continue + print(package + " version not match!", file=sys.stderr) + exit(1) setup( name='system-health', From f4572be0c854d40fe0c3dcd688f01a6a1ace091a Mon Sep 17 00:00:00 2001 From: shilongliu Date: Tue, 28 Feb 2023 06:42:03 +0000 Subject: [PATCH 12/13] fix --- src/sonic-config-engine/setup.py | 4 ++-- src/system-health/setup.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index 16b05da8e3a..f651dea2041 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -54,7 +54,7 @@ ] for package in dependencies: - if package.find("sonic") == -1: + if "sonic" not in package: continue try: package_dist = pkg_resources.get_distribution(package.split(">=")[0]) @@ -62,7 +62,7 @@ print(package + " is not found!", file=sys.stderr) print("Please build and install SONiC python wheels dependencies from sonic-buildimage", file=sys.stderr) exit(1) - if package.find(">=") != -1: + if ">=" in package: if version.parse(package_dist.version) >= version.parse(package.split(">=")[1]): continue print(package + " version not match!", file=sys.stderr) diff --git a/src/system-health/setup.py b/src/system-health/setup.py index f003c8f13a8..63d69645891 100644 --- a/src/system-health/setup.py +++ b/src/system-health/setup.py @@ -11,7 +11,7 @@ ] for package in dependencies: - if package.find("sonic") == -1: + if "sonic" not in package: continue try: package_dist = pkg_resources.get_distribution(package.split(">=")[0]) @@ -19,7 +19,7 @@ print(package + " is not found!", file=sys.stderr) print("Please build and install SONiC python wheels dependencies from sonic-buildimage", file=sys.stderr) exit(1) - if package.find(">=") != -1: + if ">=" in package: if version.parse(package_dist.version) >= version.parse(package.split(">=")[1]): continue print(package + " version not match!", file=sys.stderr) From eadff9ba91001e8d822d775234cc5f64a4dc083f Mon Sep 17 00:00:00 2001 From: shilongliu Date: Wed, 1 Mar 2023 03:43:27 +0000 Subject: [PATCH 13/13] fix --- src/sonic-config-engine/setup.py | 11 +++++++---- src/system-health/setup.py | 9 +++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/sonic-config-engine/setup.py b/src/sonic-config-engine/setup.py index f651dea2041..924a39a89ff 100644 --- a/src/sonic-config-engine/setup.py +++ b/src/sonic-config-engine/setup.py @@ -6,6 +6,9 @@ import pkg_resources from packaging import version +# sonic_dependencies, version requirement only supports '>=' +sonic_dependencies = ['sonic-py-common'] + # Common dependencies for Python 2 and 3 dependencies = [ 'bitarray==1.5.3', @@ -13,7 +16,6 @@ 'lxml==4.9.1', 'netaddr==0.8.0', 'pyyaml==5.4.1', - 'sonic-py-common', ] if sys.version_info.major == 3: @@ -24,6 +26,8 @@ # dependencies section of setuptools followed by uninstall of enum43 # 'pyangbind==0.8.1', 'Jinja2>=2.10', + ] + sonic_dependencies += [ 'sonic-yang-mgmt>=1.0', 'sonic-yang-models>=1.0' ] @@ -53,9 +57,8 @@ 'sonic_yang_cfg_generator' ] -for package in dependencies: - if "sonic" not in package: - continue +dependencies += sonic_dependencies +for package in sonic_dependencies: try: package_dist = pkg_resources.get_distribution(package.split(">=")[0]) except pkg_resources.DistributionNotFound: diff --git a/src/system-health/setup.py b/src/system-health/setup.py index 63d69645891..84944a6e72b 100644 --- a/src/system-health/setup.py +++ b/src/system-health/setup.py @@ -4,15 +4,16 @@ import pkg_resources from packaging import version +# sonic_dependencies, version requirement only supports '>=' +sonic_dependencies = ['sonic-py-common'] + dependencies = [ 'natsort', - 'sonic_py_common', 'docker' ] -for package in dependencies: - if "sonic" not in package: - continue +dependencies += sonic_dependencies +for package in sonic_dependencies: try: package_dist = pkg_resources.get_distribution(package.split(">=")[0]) except pkg_resources.DistributionNotFound: