Opened 4 years ago

Closed 2 years ago

#60452 closed request (fixed)

Please update or make make a new py-awscli port for awscli v2

Reported by: gittes (Christopher Stewart) Owned by: dgilman (David Gilman)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: judaew (Vadym-Valdis Yudaiev)
Port: py-awscli

Description

Hello,

I would like to request, please, to update the port py-awscli or make a new port to support the new version 2 releases of awscli at version version 2.0.12. It seems v1 and v2 cannot coexist so maybe it should still be unfortunately a single port to maintain.

The version 2 branch of awscli has been out for a few months now and the latest version just came out:
https://github.com/aws/aws-cli/blob/2.0.12/CHANGELOG.rst

It looks like it has it's own embedded python for the MacOS pkg official download but there are instruction to build the "CLI Dev Version" that involves installing requirements.txt:
https://github.com/aws/aws-cli/blob/v2/README.rst#cli-dev-version

Here's the official MacOS pkg install instructions and cliv2 migration documentation for reference:
https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html
https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration.html

Homebrew seems to have v1 and v2 separated and blindly just follows those instructions by gladly doing "pip install -r requirements.txt" in a common python3 virtualenv so they don't have to worry about defining python requirements:
https://github.com/Homebrew/homebrew-core/blob/master/Formula/awscli.rb

requirements.txt:

tox>=2.3.1,<3.0.0
wheel==0.24.0
ruamel.yaml>=0.15.0,<0.16.0
-r requirements-test.txt
-r requirements-build.txt
https://github.com/boto/botocore/zipball/v2#egg=botocore

requirements-test.txt:

jsonschema==2.5.1
nose==1.3.7
mock==1.3.0

requirements-build.txt:

# Requirements we need to run our build jobs for the installers.
# We create the separation for cases where we're doing installation
# from a local dependency directory instead of requirements.txt.
cryptography==2.8
PyInstaller==3.5

I didn't do much digging but it seems the port was updated in March 22 of this year for a minor version that was not even the latest of the v1.x branch so maybe that should at least be bumped in the meantime:
https://github.com/macports/macports-ports/commit/cc27020ec21e875dc928234c51b509383b549784

Newest version of v1 branch is 1.18.55:
https://github.com/aws/aws-cli/blob/develop/CHANGELOG.rst

I'll make another ticket to bump v1 in the meantime.

Thank you in advance,
Chris

Change History (7)

comment:1 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: awscli removed

comment:2 Changed 3 years ago by judaew (Vadym-Valdis Yudaiev)

Cc: judaew added

comment:3 Changed 3 years ago by judaew (Vadym-Valdis Yudaiev)

Outdated Python dependencies make it difficult to build AWS CLI 2 package for MacPorts. That is why the first version is still supported, more details here: https://github.com/aws/aws-cli/issues/4947#issuecomment-586046886

I think the user will be easier to install the pre-compiled package from the official site. At least until the dependencies situation improves.

comment:4 Changed 3 years ago by Tatsh (Andrew Udvare)

This is going to be a mess to support now that Amazon really seems to hate PyPI for no good reason. They have now made botocore v2 required and that won't go on PyPI either.

https://bugs.gentoo.org/710434#c4

Best option would be to treat it like a binary as we can't trust that they won't release 2.1 rewritten in Rust tomorrow.

comment:5 Changed 3 years ago by imgx64

The AWS CLI team has posted a proposal for releasing source tarballs for v2 that can be built and installed using ./configure && make && make install. This will make packaging it much easier.

Link: https://github.com/aws/aws-cli/pull/6352

comment:6 Changed 3 years ago by judaew (Vadym-Valdis Yudaiev)

Unfortunately, awscli2 still relies on beta/dev or outdated dependencies. I have no idea how and why to create a port for an awscli2 with such versions of the dependencies:

[metadata]
requires_dist =
        botocore==2.0.0dev146
        colorama>=0.2.5,<0.4.4
        docutils>=0.10,<0.16
        cryptography>=3.3.2,<3.4.0
        ruamel.yaml>=0.15.0,<0.16.0
        s3transfer>=0.4.2,<0.5.0
        wcwidth<0.2.0
        prompt-toolkit>=2.0.0,<3.0.0
        distro>=1.5.0,<1.6.0
        awscrt==0.11.24

Here are the current versions of these dependencies in MacPorts:

$ port info --version py-botocore py-docutils py-cryptography py-wcwidth py-prompt_toolkit

py-botocore       -- version: 1.21.42
py-docutils       -- version: 0.17.1
py-cryptography   -- version: 3.4.8
py-wcwidth        -- version: 0.2.5
py-prompt_toolkit -- version: 3.0.20

comment:7 Changed 2 years ago by dgilman (David Gilman)

Owner: set to dgilman
Resolution: fixed
Status: newclosed

In 9d43182d2bc54cd3f3f9b092b5ea635c42e22ccd/macports-ports (master):

py-awscli2: new port

Closes: #60452

Note: See TracTickets for help on using tickets.