-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
{Packaging} Add setuptools
into dependency
#27196
base: dev
Are you sure you want to change the base?
Conversation
️✔️AzureCLI-FullTest
|
️✔️AzureCLI-BreakingChangeTest
|
Packaging |
9a9113d
to
8d6ea03
Compare
@@ -122,7 +122,6 @@ set PYTHON_EXE=%PYTHON_DIR%\python.exe | |||
robocopy %PYTHON_DIR% %BUILDING_DIR% /s /NFL /NDL | |||
|
|||
set CLI_SRC=%REPO_ROOT%\src | |||
%BUILDING_DIR%\python.exe -m pip install --no-warn-script-location --force-reinstall pycparser==2.18 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pycparser==2.18
does not work. It is in the requirements.txt and version is 2.19
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pycparser==2.18
was added by #7662. Funny thing is that no one knows why it was introduced in the first place.
@@ -129,6 +129,7 @@ requests-oauthlib==1.2.0 | |||
requests[socks]==2.31.0 | |||
scp==0.13.2 | |||
semver==2.13.0 | |||
setuptools |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think items under requirements.*.txt
should always be pinned as requirements.txt
is the output of pip freeze
. This gives us a stable dependency tree when building packages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do have a pinned version in requirements.*.txt
On the one hand, we always use latest setuptools
and pip
when build packages for now. We've used this strategy for years. #24992 (comment)
On the other hand, unpinned setuptools
caused a problem before: #25869
What dependencies still use the deprecated |
Some packages are installed from source code on MacOS. Not sure if this problem still exists. |
How does getting installed from source relate to my question? |
This is only related to MacOS. Details are provided in the PR. |
In 2.61.0, these two files still exists in HomeBrew, which means They might be created by |
@@ -144,6 +144,7 @@ | |||
'PyNaCl~=1.5.0', | |||
'scp~=0.13.2', | |||
'semver==2.13.0', | |||
'setuptools', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once it's added in setup.py
, brew will install setuptools
while installing azure-cli
.
The command is python3.xx -m pip --python=xxxxx/Cellar/azure-cli/2.xx.0/libexec/bin/python install buildpath/src/azure-cli
.
Description
setuptools
will not be installed when create venv in Python 3.12, see python/cpython#95299.But macOS dependencies are installed from source, some of them still use
__import__('pkg_resources').declare_namespace(__name__)
to declare the namespace package, which requiressetuptools
.Adding it into
setup.py
to make sure it is installed correctly when installazure-cli
in Homebrew.setuptools
can be removed if macOS dependencies do not usepkg_resources
anymore.setuptools
in all platforms:pip
andsetuptools
in build script.get-pip.py
to installsetuptools
inexplicitly.get-pip.py
to installsetuptools
inexplicitly.setuptools
when create venv, it will be removed in 3.12.Related issue:
--without-pip
Homebrew/brew#15792Testing Guide
History Notes
[Component Name 1] BREAKING CHANGE:
az command a
: Make some customer-facing breaking change[Component Name 2]
az command b
: Add some customer-facing featureThis checklist is used to make sure that common guidelines for a pull request are followed.
The PR title and description has followed the guideline in Submitting Pull Requests.
I adhere to the Command Guidelines.
I adhere to the Error Handling Guidelines.