Azure / Azure/azure-cli

azure-cli package could lose some weight

Open
#7,387 59 comments 113 reactions 2 assignees Claimed by @bebound View on GitHub
act-platform-engineering-squad Feature Candidate feature-request Packaging Python SDK - mgmt plane
Dominant language
Python
Stars
4.6k
Forks
3.5k
Avg merge
3d 2h
Merged PRs (30d)
60

Description

The `azure-cli` package (Ubuntu Xenial) could stand to lose some weight.

😲 and 😳 don't begin to describe my reaction at the size difference between the AWS CLI and the Azure CLI packages.

```
Package: awscli
Version: 1.11.13-1ubuntu1~16.04.0
Depends: python3, python3-botocore (>= 1.4.70), python3-colorama, python3-docutils, python3-rsa, python3-s3transfer, python3:any (>= 3.3.2-2~)
Installed-Size: 2.9 MB

Package: azure-cli
Version: 2.0.45-1~xenial
Installed-Size: 347 MB
Depends: libc6 (>= 2.17), libssl1.0.0 (>= 1.0.2~beta3)
```

* Why must the package bundle its own version of Python 3.6? Couldn't it just depend on a system `python3` (on platforms where it is known there is a recent enough Python 3)?
* Why does that bundled version also include the Python 3.6 test suite (55.8 MB)?
* Why are all .py files precompiled to .pyc (twice in the case of the stdlib)?
* Why are the py2 versions of all files with `_py3` variants even included if `az` is always run with Python 3?

It's also not just about the size; install speed is also a thing. It takes 50 seconds to install the single `azure-cli` package on Azure machine, with its 39 000 files (`dpkg-query -L azure-cli | wc -l`: 39094), just a little less than installing the twentyish packages that comprise all of `awscli`'s dependencies (that can be used by other software on the system).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.