From 08062d28fa92f9ff1a302879e5de90261930b8e8 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Mon, 13 Mar 2023 15:04:36 +0800 Subject: [PATCH 01/29] Init --- Dockerfile | 2 +- scripts/release/debian/build.sh | 1 + scripts/release/rpm/azure-cli.spec | 8 +++----- scripts/trim_sdk.py | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 108d55b8bdb..37374bba5aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -52,7 +52,7 @@ COPY . /azure-cli # 1. Build packages and store in tmp dir # 2. Install the cli and the other command modules that weren't included -RUN ./scripts/install_full.sh \ +RUN ./scripts/install_full.sh && python ./scripts/trim_sdk.py \ && cat /azure-cli/az.completion > ~/.bashrc \ && runDeps="$( \ scanelf --needed --nobanner --recursive /usr/local \ diff --git a/scripts/release/debian/build.sh b/scripts/release/debian/build.sh index 0141ee89e07..2d9e72c53ef 100755 --- a/scripts/release/debian/build.sh +++ b/scripts/release/debian/build.sh @@ -47,6 +47,7 @@ make make install $WORKDIR/python_env/bin/python3 -m pip install --upgrade pip setuptools +$WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/trim_sdk.py export PATH=$PATH:$WORKDIR/python_env/bin diff --git a/scripts/release/rpm/azure-cli.spec b/scripts/release/rpm/azure-cli.spec index 78f0fa03131..12b6856ce83 100644 --- a/scripts/release/rpm/azure-cli.spec +++ b/scripts/release/rpm/azure-cli.spec @@ -52,6 +52,9 @@ source %{repo_path}/scripts/install_full.sh # cffi 1.15.0 doesn't work with RPM: https://foss.heptapod.net/pypy/cffi/-/issues/513 %{python_cmd} -m pip install cffi==1.14.6 +# Remove unused SDK version +%{python_cmd} %{repo_path}/scripts/trim_sdk.py + deactivate # Fix up %{buildroot} appearing in some files... @@ -78,11 +81,6 @@ AZ_INSTALLER=RPM PYTHONPATH=\"\$bin_dir/../lib64/az/lib/${python_version}/site-p " > %{buildroot}%{_bindir}/az rm %{buildroot}%{cli_lib_dir}/bin/python* %{buildroot}%{cli_lib_dir}/bin/pip* -# Remove unused Network SDK API versions -pushd %{buildroot}%{cli_lib_dir}/lib/${python_version}/site-packages/azure/mgmt/network/ > /dev/null -rm -rf v2016_09_01 v2016_12_01 v2017_03_01 v2017_06_01 v2017_08_01 v2017_09_01 v2017_11_01 v2018_02_01 v2018_04_01 v2018_06_01 v2018_10_01 v2018_12_01 v2019_04_01 v2019_08_01 v2019_09_01 v2019_11_01 v2019_12_01 v2020_03_01 -popd > /dev/null - # Set up tab completion mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/ cat %{repo_path}/az.completion > %{buildroot}%{_sysconfdir}/bash_completion.d/azure-cli diff --git a/scripts/trim_sdk.py b/scripts/trim_sdk.py index 1de50786a3c..05b5e3474ac 100644 --- a/scripts/trim_sdk.py +++ b/scripts/trim_sdk.py @@ -158,7 +158,7 @@ def main(): _print_folder_size(mgmt_sdk_dir) # Removed unused API versions - resource_types = _get_biggest_sdks_to_trim() + resource_types = _get_all_sdks_to_trim() for r in resource_types: remove_unused_api_versions(r) From 0f175e09896031d2a5d8652e662fe5a1d5921998 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Mon, 13 Mar 2023 15:25:59 +0800 Subject: [PATCH 02/29] Minor fix --- scripts/trim_sdk.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/trim_sdk.py b/scripts/trim_sdk.py index 05b5e3474ac..1906ef7d8a8 100644 --- a/scripts/trim_sdk.py +++ b/scripts/trim_sdk.py @@ -71,6 +71,8 @@ def remove_unused_api_versions(resource_type): if resource_type in profile: # value is str like '2022-01-01' or SDKProfile value = profile[resource_type] + if value is None: + continue if isinstance(value, str): used_api_versions.add(value) else: From 8e7d36f08ee2e35d41323145a3a93f7bd7ed3c3d Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Mon, 13 Mar 2023 16:36:18 +0800 Subject: [PATCH 03/29] Minor fix --- scripts/release/debian/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release/debian/build.sh b/scripts/release/debian/build.sh index 2d9e72c53ef..732882a5438 100755 --- a/scripts/release/debian/build.sh +++ b/scripts/release/debian/build.sh @@ -47,12 +47,12 @@ make make install $WORKDIR/python_env/bin/python3 -m pip install --upgrade pip setuptools -$WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/trim_sdk.py export PATH=$PATH:$WORKDIR/python_env/bin find ${WORKDIR}/src/ -name setup.py -type f | xargs -I {} dirname {} | grep -v azure-cli-testsdk | xargs pip3 install --no-deps pip3 install -r ${WORKDIR}/src/azure-cli/requirements.py3.$(uname).txt +python3 ${WORKDIR}/scripts/trim_sdk.py # Create create directory for debian build mkdir -p $WORKDIR/debian From 04adb001dd435618e932ff25af1058cb54dfb402 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Tue, 14 Mar 2023 10:46:09 +0800 Subject: [PATCH 04/29] Skip None --- scripts/trim_sdk.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/trim_sdk.py b/scripts/trim_sdk.py index 1906ef7d8a8..71ce71a8722 100644 --- a/scripts/trim_sdk.py +++ b/scripts/trim_sdk.py @@ -72,7 +72,8 @@ def remove_unused_api_versions(resource_type): # value is str like '2022-01-01' or SDKProfile value = profile[resource_type] if value is None: - continue + _LOGGER.info(f'{resource_type}\'s API version is None, skip') + return if isinstance(value, str): used_api_versions.add(value) else: From 4aef92defa227959f8018799bf8730992d99154e Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Tue, 14 Mar 2023 11:44:51 +0800 Subject: [PATCH 05/29] Minor fix --- scripts/release/debian/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release/debian/build.sh b/scripts/release/debian/build.sh index 732882a5438..f6471251312 100755 --- a/scripts/release/debian/build.sh +++ b/scripts/release/debian/build.sh @@ -52,7 +52,7 @@ export PATH=$PATH:$WORKDIR/python_env/bin find ${WORKDIR}/src/ -name setup.py -type f | xargs -I {} dirname {} | grep -v azure-cli-testsdk | xargs pip3 install --no-deps pip3 install -r ${WORKDIR}/src/azure-cli/requirements.py3.$(uname).txt -python3 ${WORKDIR}/scripts/trim_sdk.py +$WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/trim_sdk.py # Create create directory for debian build mkdir -p $WORKDIR/debian From 74100961e827ecdac93c91639bec93bf32b2f5ac Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Tue, 14 Mar 2023 11:45:58 +0800 Subject: [PATCH 06/29] Move pyc in pip --- build_scripts/windows/scripts/build.cmd | 31 +++++++++++-------------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/build_scripts/windows/scripts/build.cmd b/build_scripts/windows/scripts/build.cmd index 3f3f5b75d84..1bd016d75e3 100644 --- a/build_scripts/windows/scripts/build.cmd +++ b/build_scripts/windows/scripts/build.cmd @@ -139,24 +139,19 @@ REM Remove .py and only deploy .pyc files pushd %BUILDING_DIR%\Lib\site-packages for /f %%f in ('dir /b /s *.pyc') do ( set PARENT_DIR=%%~df%%~pf.. - echo !PARENT_DIR! | findstr /C:\Lib\site-packages\pip\ 1>nul - if !errorlevel! neq 0 ( - REM Only take the file name without 'pyc' extension: e.g., (same below) __init__.cpython-310 - set FILENAME=%%~nf - REM Truncate the '.cpython-310' postfix which is 12 chars long: __init__ - REM https://stackoverflow.com/a/636391/2199657 - set BASE_FILENAME=!FILENAME:~0,-12! - REM __init__.pyc - set pyc=!BASE_FILENAME!.pyc - REM Delete ..\__init__.py - del !PARENT_DIR!\!BASE_FILENAME!.py - REM Copy to ..\__init__.pyc - copy %%~f !PARENT_DIR!\!pyc! >nul - REM Delete __init__.pyc - del %%~f - ) ELSE ( - echo --SKIP !PARENT_DIR! under pip - ) + REM Only take the file name without 'pyc' extension: e.g., (same below) __init__.cpython-310 + set FILENAME=%%~nf + REM Truncate the '.cpython-310' postfix which is 12 chars long: __init__ + REM https://stackoverflow.com/a/636391/2199657 + set BASE_FILENAME=!FILENAME:~0,-12! + REM __init__.pyc + set pyc=!BASE_FILENAME!.pyc + REM Delete ..\__init__.py + del !PARENT_DIR!\!BASE_FILENAME!.py + REM Copy to ..\__init__.pyc + copy %%~f !PARENT_DIR!\!pyc! >nul + REM Delete __init__.pyc + del %%~f ) popd From a07664ba5bcfd7ff630777b637e2d560abc13629 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Wed, 15 Mar 2023 18:02:30 +0800 Subject: [PATCH 07/29] Add use_pyc.py --- scripts/release/debian/build.sh | 4 +++ scripts/release/rpm/azure-cli.spec | 4 +++ scripts/use_pyc.py | 39 ++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 scripts/use_pyc.py diff --git a/scripts/release/debian/build.sh b/scripts/release/debian/build.sh index f6471251312..8ca2eeeefb3 100755 --- a/scripts/release/debian/build.sh +++ b/scripts/release/debian/build.sh @@ -54,6 +54,10 @@ find ${WORKDIR}/src/ -name setup.py -type f | xargs -I {} dirname {} | grep -v a pip3 install -r ${WORKDIR}/src/azure-cli/requirements.py3.$(uname).txt $WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/trim_sdk.py +# replace .py with .pyc and remove __pycache__ dir to save space +site_packages_dir=$(cd $WORKDIR/python_env/lib/python3.*/site-packages/ ; pwd) +$WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/use_pyc.py $site_packages_dir + # Create create directory for debian build mkdir -p $WORKDIR/debian $SCRIPT_DIR/prepare.sh $WORKDIR/debian $WORKDIR/az.completion $WORKDIR diff --git a/scripts/release/rpm/azure-cli.spec b/scripts/release/rpm/azure-cli.spec index 12b6856ce83..bc70af53cfa 100644 --- a/scripts/release/rpm/azure-cli.spec +++ b/scripts/release/rpm/azure-cli.spec @@ -55,6 +55,10 @@ source %{repo_path}/scripts/install_full.sh # Remove unused SDK version %{python_cmd} %{repo_path}/scripts/trim_sdk.py +# replace .py with .pyc and remove __pycache__ dir to save space +site_packages_dir=$(cd %{buildroot}%{cli_lib_dir}/lib/python3.*/site-packages/ ; pwd) +%{python_cmd} %{repo_path}/scripts/use_pyc.py $site_packages_dir + deactivate # Fix up %{buildroot} appearing in some files... diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py new file mode 100644 index 00000000000..e5cdf2f8901 --- /dev/null +++ b/scripts/use_pyc.py @@ -0,0 +1,39 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +import logging +import re +import sys +import glob +from pathlib import Path +import shutil + +_LOGGER = logging.getLogger(__name__) + + +def main(folder, version=None): + _LOGGER.info(f'Replace .py with .pyc, base folder: {folder}') + if version is None: + version = re.search(r'python(\d\.\d+)', folder).group(1) + # invoke==1.2.0 has a weird file: invoke/completion/__pycache__/__init__.cpython-36.pyc + # define pyc suffix to skip it + pyc_suffix = f'cpython-{version.replace(".", "")}.pyc' + _LOGGER.info(f'pyc suffix: {pyc_suffix}') + for file in glob.glob(f'{folder}/**/__pycache__/*{pyc_suffix}.pyc', recursive=True): + # file is /opt/az/lib/python3.10/site-packages/websocket/__pycache__/_app.cpython-310.pyc + # py_filename is _app.py + py_filename = Path(file).name[:-len('cpython-310.pyc')] + 'py' + # py_path is /opt/az/lib/python3.10/site-packages/websocket/_app.py + py_path = Path(file).parent.parent / py_filename + if py_path.exists(): + py_path.unlink() + shutil.move(file, py_path.with_suffix('.pyc')) + + for folder in glob.glob(f'{folder}/**/__pycache__', recursive=True): + shutil.rmtree(folder) + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + main(sys.argv[1]) From c66c2605c9f7d3803c618933fa99b2ff57d0a887 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Thu, 16 Mar 2023 11:20:24 +0800 Subject: [PATCH 08/29] Trim docker --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index 37374bba5aa..6a55f2b696a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,8 @@ ARG PYTHON_VERSION="3.10" FROM python:${PYTHON_VERSION}-alpine +ARG PYTHON_VERSION="3.10" + ARG CLI_VERSION # Metadata as defined at http://label-schema.org @@ -53,6 +55,7 @@ COPY . /azure-cli # 1. Build packages and store in tmp dir # 2. Install the cli and the other command modules that weren't included RUN ./scripts/install_full.sh && python ./scripts/trim_sdk.py \ + && python ./scripts/use_pyc.py /usr/local/lib/python$PYTHON_VERSION/site-packages/ \ && cat /azure-cli/az.completion > ~/.bashrc \ && runDeps="$( \ scanelf --needed --nobanner --recursive /usr/local \ From 8861360fc721b052124293fa7f4e0f3a125ba464 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Thu, 16 Mar 2023 11:20:44 +0800 Subject: [PATCH 09/29] Use use_pyc on Windows --- build_scripts/windows/scripts/build.cmd | 27 ++----------------------- scripts/use_pyc.py | 8 +++++++- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/build_scripts/windows/scripts/build.cmd b/build_scripts/windows/scripts/build.cmd index c2686ebfe53..e6814511569 100644 --- a/build_scripts/windows/scripts/build.cmd +++ b/build_scripts/windows/scripts/build.cmd @@ -136,31 +136,8 @@ copy %REPO_ROOT%\build_scripts\windows\resources\CLI_LICENSE.rtf %BUILDING_DIR% copy %REPO_ROOT%\build_scripts\windows\resources\ThirdPartyNotices.txt %BUILDING_DIR% copy %REPO_ROOT%\NOTICE.txt %BUILDING_DIR% -REM Remove .py and only deploy .pyc files -pushd %BUILDING_DIR%\Lib\site-packages -for /f %%f in ('dir /b /s *.pyc') do ( - set PARENT_DIR=%%~df%%~pf.. - REM Only take the file name without 'pyc' extension: e.g., (same below) __init__.cpython-310 - set FILENAME=%%~nf - REM Truncate the '.cpython-310' postfix which is 12 chars long: __init__ - REM https://stackoverflow.com/a/636391/2199657 - set BASE_FILENAME=!FILENAME:~0,-12! - REM __init__.pyc - set pyc=!BASE_FILENAME!.pyc - REM Delete ..\__init__.py - del !PARENT_DIR!\!BASE_FILENAME!.py - REM Copy to ..\__init__.pyc - copy %%~f !PARENT_DIR!\!pyc! >nul - REM Delete __init__.pyc - del %%~f -) -popd - -REM Remove __pycache__ -echo remove pycache -for /d /r %BUILDING_DIR%\Lib\site-packages\pip %%d in (__pycache__) do ( - if exist %%d rmdir /s /q "%%d" -) +REM replace .py with .pyc and remove __pycache__ dir to save space +%BUILDING_DIR%\python.exe %REPO_ROOT%\scripts\use_pyc.py %BUILDING_DIR%\Lib\site-packages\ %PYTHON_VERSION% REM Remove dist-info echo remove dist-info diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index e5cdf2f8901..14fde246b52 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -16,6 +16,9 @@ def main(folder, version=None): _LOGGER.info(f'Replace .py with .pyc, base folder: {folder}') if version is None: version = re.search(r'python(\d\.\d+)', folder).group(1) + else: + # 3.10.10 + version = version.split('.')[:2].join('.') # invoke==1.2.0 has a weird file: invoke/completion/__pycache__/__init__.cpython-36.pyc # define pyc suffix to skip it pyc_suffix = f'cpython-{version.replace(".", "")}.pyc' @@ -36,4 +39,7 @@ def main(folder, version=None): if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG) - main(sys.argv[1]) + if len(sys.argv) == 2: + main(sys.argv[1]) + else: + main(sys.argv[1], sys.argv[2]) From c45608847a27fb4e5166bad2d49162c4f610f67e Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Thu, 16 Mar 2023 12:56:03 +0800 Subject: [PATCH 10/29] Print folder size --- scripts/use_pyc.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index 14fde246b52..4b6aa753bd0 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- import logging +import os import re import sys import glob @@ -12,8 +13,18 @@ _LOGGER = logging.getLogger(__name__) +def get_folder_size(folder): + total_size = 0 + for path, dirs, files in os.walk(folder): + for f in files: + fp = os.path.join(path, f) + total_size += os.path.getsize(fp) + return total_size + + def main(folder, version=None): _LOGGER.info(f'Replace .py with .pyc, base folder: {folder}') + _LOGGER.info(f'Base folder size: {get_folder_size(folder)}') if version is None: version = re.search(r'python(\d\.\d+)', folder).group(1) else: @@ -36,6 +47,9 @@ def main(folder, version=None): for folder in glob.glob(f'{folder}/**/__pycache__', recursive=True): shutil.rmtree(folder) + _LOGGER.info('Finish processing') + _LOGGER.info(f'Base folder size: {get_folder_size(folder)}') + if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG) From 9645801f3a54a09b6342dae5bbb8382442025cf4 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Thu, 16 Mar 2023 13:02:19 +0800 Subject: [PATCH 11/29] MInor fix --- scripts/use_pyc.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index 4b6aa753bd0..a611fc92a4e 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -13,18 +13,31 @@ _LOGGER = logging.getLogger(__name__) -def get_folder_size(folder): +def calculate_folder_size(start_path): + """Calculate total size of a folder and file count.""" + # https://stackoverflow.com/questions/1392413/calculating-a-directorys-size-using-python total_size = 0 - for path, dirs, files in os.walk(folder): - for f in files: - fp = os.path.join(path, f) - total_size += os.path.getsize(fp) - return total_size + total_count = 0 + for dirpath, dirnames, filenames in os.walk(start_path): + for f in filenames: + fp = os.path.join(dirpath, f) + # skip if it is symbolic link + if not os.path.islink(fp): + total_count += 1 + total_size += os.path.getsize(fp) + + return total_size, total_count + + +def _print_folder_size(folder): + size, count = calculate_folder_size(folder) + size_in_mb = size / 1048576 # 1 MB = 1024 * 1024 B = 1048576 B + _LOGGER.info(f"{size_in_mb:.2f} MB, {count} files") def main(folder, version=None): _LOGGER.info(f'Replace .py with .pyc, base folder: {folder}') - _LOGGER.info(f'Base folder size: {get_folder_size(folder)}') + _print_folder_size(folder) if version is None: version = re.search(r'python(\d\.\d+)', folder).group(1) else: @@ -48,7 +61,7 @@ def main(folder, version=None): shutil.rmtree(folder) _LOGGER.info('Finish processing') - _LOGGER.info(f'Base folder size: {get_folder_size(folder)}') + _print_folder_size(folder) if __name__ == '__main__': From 5efeab58e6769e12a7d8797e8abdcb39f52000f2 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Thu, 16 Mar 2023 14:41:54 +0800 Subject: [PATCH 12/29] Remove azure.mgmt.network --- scripts/trim_sdk.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/trim_sdk.py b/scripts/trim_sdk.py index 9d1d0bedc5a..077db0c5beb 100644 --- a/scripts/trim_sdk.py +++ b/scripts/trim_sdk.py @@ -111,7 +111,9 @@ def _print_folder_size(folder): def _get_all_sdks_to_trim(): - resource_types = [k for k, v in AZURE_API_PROFILES['latest'].items() if k.import_prefix.startswith('azure.mgmt')] + # azure.mgmt.network has been removed in https://github.com/Azure/azure-cli/pull/25451 + resource_types = [k for k, v in AZURE_API_PROFILES['latest'].items() if k.import_prefix.startswith('azure.mgmt') + and k.import_prefix != 'azure.mgmt.network'] return resource_types From 324ec661dc4acac5265447492a880b2839e731c5 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Thu, 16 Mar 2023 15:48:24 +0800 Subject: [PATCH 13/29] Minor fix --- scripts/use_pyc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index a611fc92a4e..fd3fd4ad679 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -57,8 +57,8 @@ def main(folder, version=None): py_path.unlink() shutil.move(file, py_path.with_suffix('.pyc')) - for folder in glob.glob(f'{folder}/**/__pycache__', recursive=True): - shutil.rmtree(folder) + for f in glob.glob(f'{folder}/**/__pycache__', recursive=True): + shutil.rmtree(f) _LOGGER.info('Finish processing') _print_folder_size(folder) From 205148829749f4e497713f865a455e4c1d8d2da2 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Thu, 16 Mar 2023 15:55:24 +0800 Subject: [PATCH 14/29] Minor fix --- scripts/use_pyc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index fd3fd4ad679..bf121478f1b 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -47,7 +47,7 @@ def main(folder, version=None): # define pyc suffix to skip it pyc_suffix = f'cpython-{version.replace(".", "")}.pyc' _LOGGER.info(f'pyc suffix: {pyc_suffix}') - for file in glob.glob(f'{folder}/**/__pycache__/*{pyc_suffix}.pyc', recursive=True): + for file in glob.glob(f'{folder}/**/__pycache__/*{pyc_suffix}', recursive=True): # file is /opt/az/lib/python3.10/site-packages/websocket/__pycache__/_app.cpython-310.pyc # py_filename is _app.py py_filename = Path(file).name[:-len('cpython-310.pyc')] + 'py' From 7fb79023e5f6c9a1cda5114ee25dc001dd01a83e Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Thu, 16 Mar 2023 16:53:41 +0800 Subject: [PATCH 15/29] Fix python version number --- Dockerfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6a55f2b696a..1d1a1bea8b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,6 @@ ARG PYTHON_VERSION="3.10" FROM python:${PYTHON_VERSION}-alpine -ARG PYTHON_VERSION="3.10" - ARG CLI_VERSION # Metadata as defined at http://label-schema.org @@ -54,8 +52,11 @@ COPY . /azure-cli # 1. Build packages and store in tmp dir # 2. Install the cli and the other command modules that weren't included + +# Python image has build-in env $PYTHON_VERSION=3.10.10. +# `ARG PYTHON_VERSION="3.10"` works on ARM64, but it can't override the default value on AMD64. RUN ./scripts/install_full.sh && python ./scripts/trim_sdk.py \ - && python ./scripts/use_pyc.py /usr/local/lib/python$PYTHON_VERSION/site-packages/ \ + && python ./scripts/use_pyc.py /usr/local/lib/python${PYTHON_VERSION:0:4}/site-packages/ \ && cat /azure-cli/az.completion > ~/.bashrc \ && runDeps="$( \ scanelf --needed --nobanner --recursive /usr/local \ From 9e0338c5bcc0407ea71a56d673abd162ed046e51 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Thu, 16 Mar 2023 17:17:39 +0800 Subject: [PATCH 16/29] Minor fix --- scripts/use_pyc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index bf121478f1b..890007c4205 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -42,7 +42,7 @@ def main(folder, version=None): version = re.search(r'python(\d\.\d+)', folder).group(1) else: # 3.10.10 - version = version.split('.')[:2].join('.') + version = '.'.join(version.split('.')[:2]) # invoke==1.2.0 has a weird file: invoke/completion/__pycache__/__init__.cpython-36.pyc # define pyc suffix to skip it pyc_suffix = f'cpython-{version.replace(".", "")}.pyc' From 39c5b2f4850a98789794bdc9aaf8897d0059a790 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Fri, 17 Mar 2023 17:26:02 +0800 Subject: [PATCH 17/29] Skip pip --- scripts/use_pyc.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index 890007c4205..43e589e619d 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -3,10 +3,11 @@ # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- import logging +import glob import os +import platform import re import sys -import glob from pathlib import Path import shutil @@ -48,6 +49,19 @@ def main(folder, version=None): pyc_suffix = f'cpython-{version.replace(".", "")}.pyc' _LOGGER.info(f'pyc suffix: {pyc_suffix}') for file in glob.glob(f'{folder}/**/__pycache__/*{pyc_suffix}', recursive=True): + # If pip's py files are also removed, the following error will occur when use pip install. + # For example: /opt/az/bin/python3 -m pip install --no-cache pgcli==3.4.1 + # × pip subprocess to install build dependencies did not run successfully. + # │ exit code: 2 + # ╰─> [1 lines of output] + # /opt/az/bin/python3: can't open file '/opt/az/lib/python3.10/site-packages/pip/__pip-runner__.py': [Errno 2] No such file or directory + # [end of output] + # + # note: This error originates from a subprocess, and is likely not a problem with pip. + # error: subprocess-exited-with-error + if 'site-packages/pip' in file: + continue + # file is /opt/az/lib/python3.10/site-packages/websocket/__pycache__/_app.cpython-310.pyc # py_filename is _app.py py_filename = Path(file).name[:-len('cpython-310.pyc')] + 'py' @@ -58,6 +72,9 @@ def main(folder, version=None): shutil.move(file, py_path.with_suffix('.pyc')) for f in glob.glob(f'{folder}/**/__pycache__', recursive=True): + # Remove pip __pycache__ folder for Windows only to save more space + if 'site-packages/pip' in f and not platform.system() == 'Windows': + continue shutil.rmtree(f) _LOGGER.info('Finish processing') From eec716634b6ec5827351ee4ec0b7850fd7c31bae Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Mon, 20 Mar 2023 09:59:44 +0800 Subject: [PATCH 18/29] Minor fix --- scripts/use_pyc.py | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index 43e589e619d..52230ff4364 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -49,22 +49,14 @@ def main(folder, version=None): pyc_suffix = f'cpython-{version.replace(".", "")}.pyc' _LOGGER.info(f'pyc suffix: {pyc_suffix}') for file in glob.glob(f'{folder}/**/__pycache__/*{pyc_suffix}', recursive=True): - # If pip's py files are also removed, the following error will occur when use pip install. - # For example: /opt/az/bin/python3 -m pip install --no-cache pgcli==3.4.1 - # × pip subprocess to install build dependencies did not run successfully. - # │ exit code: 2 - # ╰─> [1 lines of output] - # /opt/az/bin/python3: can't open file '/opt/az/lib/python3.10/site-packages/pip/__pip-runner__.py': [Errno 2] No such file or directory - # [end of output] - # - # note: This error originates from a subprocess, and is likely not a problem with pip. - # error: subprocess-exited-with-error + # If pip's py files are also removed, some error is raised when installing some packages. + # See https://github.com/Azure/azure-cli/pull/25801 for details. if 'site-packages/pip' in file: continue # file is /opt/az/lib/python3.10/site-packages/websocket/__pycache__/_app.cpython-310.pyc # py_filename is _app.py - py_filename = Path(file).name[:-len('cpython-310.pyc')] + 'py' + py_filename = Path(file).name[:-len(pyc_suffix)] + 'py' # py_path is /opt/az/lib/python3.10/site-packages/websocket/_app.py py_path = Path(file).parent.parent / py_filename if py_path.exists(): From a960bbf628920d652efbf2be5aa96841436fea0d Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Mon, 20 Mar 2023 10:04:15 +0800 Subject: [PATCH 19/29] Minor fix --- scripts/use_pyc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index 52230ff4364..63d7924546b 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -49,7 +49,7 @@ def main(folder, version=None): pyc_suffix = f'cpython-{version.replace(".", "")}.pyc' _LOGGER.info(f'pyc suffix: {pyc_suffix}') for file in glob.glob(f'{folder}/**/__pycache__/*{pyc_suffix}', recursive=True): - # If pip's py files are also removed, some error is raised when installing some packages. + # If pip's py files are also removed, the error is raised when installing some packages. # See https://github.com/Azure/azure-cli/pull/25801 for details. if 'site-packages/pip' in file: continue From 8229cafe2d4d8a9dab04056a331c66ffbd6e3c3a Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Mon, 20 Mar 2023 12:51:04 +0800 Subject: [PATCH 20/29] Test --- scripts/release/debian/build.sh | 2 +- scripts/release/rpm/azure-cli.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/release/debian/build.sh b/scripts/release/debian/build.sh index 8ca2eeeefb3..e9feb636649 100755 --- a/scripts/release/debian/build.sh +++ b/scripts/release/debian/build.sh @@ -56,7 +56,7 @@ $WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/trim_sdk.py # replace .py with .pyc and remove __pycache__ dir to save space site_packages_dir=$(cd $WORKDIR/python_env/lib/python3.*/site-packages/ ; pwd) -$WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/use_pyc.py $site_packages_dir +#$WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/use_pyc.py $site_packages_dir # Create create directory for debian build mkdir -p $WORKDIR/debian diff --git a/scripts/release/rpm/azure-cli.spec b/scripts/release/rpm/azure-cli.spec index bc70af53cfa..522a656a02f 100644 --- a/scripts/release/rpm/azure-cli.spec +++ b/scripts/release/rpm/azure-cli.spec @@ -57,7 +57,7 @@ source %{repo_path}/scripts/install_full.sh # replace .py with .pyc and remove __pycache__ dir to save space site_packages_dir=$(cd %{buildroot}%{cli_lib_dir}/lib/python3.*/site-packages/ ; pwd) -%{python_cmd} %{repo_path}/scripts/use_pyc.py $site_packages_dir +#%{python_cmd} %{repo_path}/scripts/use_pyc.py $site_packages_dir deactivate From 3f9af6dc6ae4a236f7d510aefefef85239f9d475 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Mon, 20 Mar 2023 13:39:17 +0800 Subject: [PATCH 21/29] Fix import error --- .../tests/latest/test_rdbms_flexible_commands.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/tests/latest/test_rdbms_flexible_commands.py b/src/azure-cli/azure/cli/command_modules/rdbms/tests/latest/test_rdbms_flexible_commands.py index 1a99c2d9822..c46702f4557 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/tests/latest/test_rdbms_flexible_commands.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/tests/latest/test_rdbms_flexible_commands.py @@ -33,13 +33,13 @@ AbstractPreparer, SingleValueReplacer) from azure.core.exceptions import HttpResponseError -from ..._client_factory import cf_mysql_flexible_private_dns_zone_suffix_operations, cf_postgres_flexible_private_dns_zone_suffix_operations -from ...flexible_server_virtual_network import prepare_private_network, prepare_private_dns_zone, prepare_public_network, DEFAULT_VNET_ADDRESS_PREFIX, DEFAULT_SUBNET_ADDRESS_PREFIX -from ...flexible_server_custom_postgres import DbContext as PostgresDbContext -from ...flexible_server_custom_mysql import DbContext as MysqlDbContext -from ...flexible_server_custom_mysql import _determine_iops -from ..._flexible_server_util import get_mysql_list_skus_info -from ..._util import retryable_method +from azure.cli.command_modules.rdbms._client_factory import cf_mysql_flexible_private_dns_zone_suffix_operations, cf_postgres_flexible_private_dns_zone_suffix_operations +from azure.cli.command_modules.rdbms.flexible_server_virtual_network import prepare_private_network, prepare_private_dns_zone, prepare_public_network, DEFAULT_VNET_ADDRESS_PREFIX, DEFAULT_SUBNET_ADDRESS_PREFIX +from azure.cli.command_modules.rdbms.flexible_server_custom_postgres import DbContext as PostgresDbContext +from azure.cli.command_modules.rdbms.flexible_server_custom_mysql import DbContext as MysqlDbContext +from azure.cli.command_modules.rdbms.flexible_server_custom_mysql import _determine_iops +from azure.cli.command_modules.rdbms._flexible_server_util import get_mysql_list_skus_info +from azure.cli.command_modules.rdbms._util import retryable_method # Constants SERVER_NAME_PREFIX = 'azuredbclitest-' SERVER_NAME_MAX_LENGTH = 20 From eb0566dab06707bb995973d1dca13143954e4f2b Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Mon, 20 Mar 2023 13:58:16 +0800 Subject: [PATCH 22/29] Minor fix --- scripts/release/debian/build.sh | 2 +- scripts/release/rpm/azure-cli.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/release/debian/build.sh b/scripts/release/debian/build.sh index e9feb636649..8ca2eeeefb3 100755 --- a/scripts/release/debian/build.sh +++ b/scripts/release/debian/build.sh @@ -56,7 +56,7 @@ $WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/trim_sdk.py # replace .py with .pyc and remove __pycache__ dir to save space site_packages_dir=$(cd $WORKDIR/python_env/lib/python3.*/site-packages/ ; pwd) -#$WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/use_pyc.py $site_packages_dir +$WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/use_pyc.py $site_packages_dir # Create create directory for debian build mkdir -p $WORKDIR/debian diff --git a/scripts/release/rpm/azure-cli.spec b/scripts/release/rpm/azure-cli.spec index 522a656a02f..bc70af53cfa 100644 --- a/scripts/release/rpm/azure-cli.spec +++ b/scripts/release/rpm/azure-cli.spec @@ -57,7 +57,7 @@ source %{repo_path}/scripts/install_full.sh # replace .py with .pyc and remove __pycache__ dir to save space site_packages_dir=$(cd %{buildroot}%{cli_lib_dir}/lib/python3.*/site-packages/ ; pwd) -#%{python_cmd} %{repo_path}/scripts/use_pyc.py $site_packages_dir +%{python_cmd} %{repo_path}/scripts/use_pyc.py $site_packages_dir deactivate From 6d6cb07f94bcf2a85e14f8dd6b26f5313b1ea7a1 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Mon, 20 Mar 2023 17:22:26 +0800 Subject: [PATCH 23/29] Disable use_pyc in rpm --- scripts/release/rpm/azure-cli.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/release/rpm/azure-cli.spec b/scripts/release/rpm/azure-cli.spec index bc70af53cfa..174543dd85e 100644 --- a/scripts/release/rpm/azure-cli.spec +++ b/scripts/release/rpm/azure-cli.spec @@ -56,8 +56,8 @@ source %{repo_path}/scripts/install_full.sh %{python_cmd} %{repo_path}/scripts/trim_sdk.py # replace .py with .pyc and remove __pycache__ dir to save space -site_packages_dir=$(cd %{buildroot}%{cli_lib_dir}/lib/python3.*/site-packages/ ; pwd) -%{python_cmd} %{repo_path}/scripts/use_pyc.py $site_packages_dir +# site_packages_dir=$(cd %{buildroot}%{cli_lib_dir}/lib/python3.*/site-packages/ ; pwd) +# %{python_cmd} %{repo_path}/scripts/use_pyc.py $site_packages_dir deactivate From a971e4e818c85006a2466d039a5055dfb37f967d Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Tue, 21 Mar 2023 10:06:01 +0800 Subject: [PATCH 24/29] Minor fix --- scripts/release/rpm/azure-cli.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/release/rpm/azure-cli.spec b/scripts/release/rpm/azure-cli.spec index 174543dd85e..bc70af53cfa 100644 --- a/scripts/release/rpm/azure-cli.spec +++ b/scripts/release/rpm/azure-cli.spec @@ -56,8 +56,8 @@ source %{repo_path}/scripts/install_full.sh %{python_cmd} %{repo_path}/scripts/trim_sdk.py # replace .py with .pyc and remove __pycache__ dir to save space -# site_packages_dir=$(cd %{buildroot}%{cli_lib_dir}/lib/python3.*/site-packages/ ; pwd) -# %{python_cmd} %{repo_path}/scripts/use_pyc.py $site_packages_dir +site_packages_dir=$(cd %{buildroot}%{cli_lib_dir}/lib/python3.*/site-packages/ ; pwd) +%{python_cmd} %{repo_path}/scripts/use_pyc.py $site_packages_dir deactivate From 219679d09c46b10df599a40af6037d678d71ae62 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Tue, 21 Mar 2023 11:53:16 +0800 Subject: [PATCH 25/29] Skip pip folder on Windows --- scripts/use_pyc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index 63d7924546b..529041bd2f2 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -51,7 +51,7 @@ def main(folder, version=None): for file in glob.glob(f'{folder}/**/__pycache__/*{pyc_suffix}', recursive=True): # If pip's py files are also removed, the error is raised when installing some packages. # See https://github.com/Azure/azure-cli/pull/25801 for details. - if 'site-packages/pip' in file: + if 'site-packages/pip' in file or 'site-packages\\pip' in file: continue # file is /opt/az/lib/python3.10/site-packages/websocket/__pycache__/_app.cpython-310.pyc From e4dcccb13c6c41b35288cfcfb07d94250dec3a8b Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Tue, 21 Mar 2023 13:38:36 +0800 Subject: [PATCH 26/29] Minor fix --- scripts/use_pyc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/use_pyc.py b/scripts/use_pyc.py index 529041bd2f2..72c0106c999 100644 --- a/scripts/use_pyc.py +++ b/scripts/use_pyc.py @@ -51,7 +51,7 @@ def main(folder, version=None): for file in glob.glob(f'{folder}/**/__pycache__/*{pyc_suffix}', recursive=True): # If pip's py files are also removed, the error is raised when installing some packages. # See https://github.com/Azure/azure-cli/pull/25801 for details. - if 'site-packages/pip' in file or 'site-packages\\pip' in file: + if os.path.join('site-packages', 'pip') in file: continue # file is /opt/az/lib/python3.10/site-packages/websocket/__pycache__/_app.cpython-310.pyc From 27a9bab37579d53980a31eccb9ee98c467a68e9c Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Tue, 28 Mar 2023 10:16:25 +0800 Subject: [PATCH 27/29] Minor update --- scripts/trim_sdk.py | 43 ++++++------------------------------------- 1 file changed, 6 insertions(+), 37 deletions(-) diff --git a/scripts/trim_sdk.py b/scripts/trim_sdk.py index 077db0c5beb..ba6675fa39d 100644 --- a/scripts/trim_sdk.py +++ b/scripts/trim_sdk.py @@ -56,7 +56,11 @@ def remove_aio_folders(): def remove_unused_api_versions(resource_type): _LOGGER.info(f"Removing unused api folders for {resource_type.import_prefix}:") - sdk_path = importlib.import_module(resource_type.import_prefix).__path__[0] + try: + sdk_path = importlib.import_module(resource_type.import_prefix).__path__[0] + except ImportError: + _LOGGER.info(f'{resource_type} is not installed, skip') + return used_api_versions = set() @@ -111,42 +115,7 @@ def _print_folder_size(folder): def _get_all_sdks_to_trim(): - # azure.mgmt.network has been removed in https://github.com/Azure/azure-cli/pull/25451 - resource_types = [k for k, v in AZURE_API_PROFILES['latest'].items() if k.import_prefix.startswith('azure.mgmt') - and k.import_prefix != 'azure.mgmt.network'] - return resource_types - - -def _get_biggest_sdks_to_trim(): - # Return top biggest SDKs. This list was retrieved by running - # ncdu /opt/az/lib/python3.10/site-packages/azure/mgmt - resource_types = [ - # /web - ResourceType.MGMT_APPSERVICE, - # /compute - ResourceType.MGMT_COMPUTE, - # /containerservice - ResourceType.MGMT_CONTAINERSERVICE, - # /resource - ResourceType.MGMT_RESOURCE_FEATURES, - ResourceType.MGMT_RESOURCE_LINKS, - ResourceType.MGMT_RESOURCE_LOCKS, - ResourceType.MGMT_RESOURCE_POLICY, - ResourceType.MGMT_RESOURCE_RESOURCES, - ResourceType.MGMT_RESOURCE_SUBSCRIPTIONS, - ResourceType.MGMT_RESOURCE_DEPLOYMENTSCRIPTS, - ResourceType.MGMT_RESOURCE_TEMPLATESPECS, - ResourceType.MGMT_RESOURCE_PRIVATELINKS, - # /storage - ResourceType.MGMT_STORAGE, - # /databoxedge - ResourceType.MGMT_DATABOXEDGE, - # /containerregistry - ResourceType.MGMT_CONTAINERREGISTRY, - # /iothub - ResourceType.MGMT_IOTHUB, - ] - + resource_types = [k for k, v in AZURE_API_PROFILES['latest'].items() if k.import_prefix.startswith('azure.mgmt')] return resource_types From 2676b09af2af7d8fe9da2a3ef476feaffee58e68 Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Tue, 18 Apr 2023 11:20:43 +0800 Subject: [PATCH 28/29] Init --- Dockerfile | 2 +- scripts/release/debian/build.sh | 1 + scripts/release/rpm/azure-cli.spec | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 108d55b8bdb..37374bba5aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -52,7 +52,7 @@ COPY . /azure-cli # 1. Build packages and store in tmp dir # 2. Install the cli and the other command modules that weren't included -RUN ./scripts/install_full.sh \ +RUN ./scripts/install_full.sh && python ./scripts/trim_sdk.py \ && cat /azure-cli/az.completion > ~/.bashrc \ && runDeps="$( \ scanelf --needed --nobanner --recursive /usr/local \ diff --git a/scripts/release/debian/build.sh b/scripts/release/debian/build.sh index 0141ee89e07..f6471251312 100755 --- a/scripts/release/debian/build.sh +++ b/scripts/release/debian/build.sh @@ -52,6 +52,7 @@ export PATH=$PATH:$WORKDIR/python_env/bin find ${WORKDIR}/src/ -name setup.py -type f | xargs -I {} dirname {} | grep -v azure-cli-testsdk | xargs pip3 install --no-deps pip3 install -r ${WORKDIR}/src/azure-cli/requirements.py3.$(uname).txt +$WORKDIR/python_env/bin/python3 ${WORKDIR}/scripts/trim_sdk.py # Create create directory for debian build mkdir -p $WORKDIR/debian diff --git a/scripts/release/rpm/azure-cli.spec b/scripts/release/rpm/azure-cli.spec index b97be2b0a8a..12b6856ce83 100644 --- a/scripts/release/rpm/azure-cli.spec +++ b/scripts/release/rpm/azure-cli.spec @@ -52,6 +52,9 @@ source %{repo_path}/scripts/install_full.sh # cffi 1.15.0 doesn't work with RPM: https://foss.heptapod.net/pypy/cffi/-/issues/513 %{python_cmd} -m pip install cffi==1.14.6 +# Remove unused SDK version +%{python_cmd} %{repo_path}/scripts/trim_sdk.py + deactivate # Fix up %{buildroot} appearing in some files... From 80506cff72382bde40bbb0c19cf07dc7175cc1ee Mon Sep 17 00:00:00 2001 From: Hang Lei Date: Tue, 18 Apr 2023 14:41:47 +0800 Subject: [PATCH 29/29] Minor fix --- scripts/release/rpm/azure-cli.spec | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/release/rpm/azure-cli.spec b/scripts/release/rpm/azure-cli.spec index 12b6856ce83..e63f58f7be6 100644 --- a/scripts/release/rpm/azure-cli.spec +++ b/scripts/release/rpm/azure-cli.spec @@ -48,13 +48,12 @@ A great cloud needs great tools; we're excited to introduce Azure CLI, source %{buildroot}%{cli_lib_dir}/bin/activate %{python_cmd} -m pip install --upgrade pip setuptools source %{repo_path}/scripts/install_full.sh +# Remove unused SDK version +%{python_cmd} %{repo_path}/scripts/trim_sdk.py # cffi 1.15.0 doesn't work with RPM: https://foss.heptapod.net/pypy/cffi/-/issues/513 %{python_cmd} -m pip install cffi==1.14.6 -# Remove unused SDK version -%{python_cmd} %{repo_path}/scripts/trim_sdk.py - deactivate # Fix up %{buildroot} appearing in some files...