From Fedora Project Wiki

Revision as of 13:19, 22 June 2023 by Amoloney (talk | contribs) (Change Accepted)


Retire AWS CLI version 1 package awscli

Summary

As a result of the publication of the awscli2 package, the original version of 'awscli' is no longer necessary. This would mark the retirement of the original AWS CLI package version in favor of the awscli version 2. The AWS CLI version 2 is the most recent major version of the AWS CLI and supports all of the latest features. Some features introduced in version 2 are not backported to version 1 and users must upgrade to access those features.

Owner


Current status

  • Targeted release: Fedora Linux 39
  • Last updated: 2023-06-22
  • devel thread
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

The AWS CLI v2 has been [available](https://aws.amazon.com/blogs/developer/aws-cli-v2-is-now-generally-available/) for more than 2 years. There has been a considerable amount of discussion around the decisions made upstream and attempts to create collaborative efforts with the new Amazon Linux 2023 led to a lot of discussions related to the supporting libraries included in the AWS Common Runtime bindings. It took a long time to find a model that was consistent and appropriate. A fair amount of effort went into building this on multiple occassions. Nikola Forro completed work on the package integration and is actively working on support for packit with the upstream providers. Since the awscli version is in what we would consider a maintenance phase, there are many new services and features that are not available without the awscli2. See the new features and changes in the 'Migration Guide' section of the AWS Documentation for more details on variations in the functionality and moving your workflow to the later release.

Feedback

Benefit to Fedora

The benefit to Fedora is that users will have access to the most recent command line tooling for working with Amazon Web Services features and services. They will have access to new features of the CLI as well as consistency in the docker and AWS Cloudshell experiences. That means more consistency in pipeline requirements and other programmatic access

Scope

  • Proposal owners:

Identify the awscli as retired. No additional branches will be built in support of new releases

  • Other developers:

developers will need to review the breaking changes and determine if they are affected. Issues may required changes to manage pager support or identify the results encoding where necessary in scripting.

use of the AWS CLI version 1 in fedora-infra scripts will need to be tested with the awscli2 prior to the retirement.

  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Community Initiatives:

We believe that the is is consistent with Community initiatives.

Upgrade/compatibility impact

From the AWS Documentation, the following breaking changes are expected:

  • Environment variable added to set text file encoding
  • Binary parameters are passed as base64-encoded strings by default
  • Improved Amazon S3 handling of file properties and tags for multipart copies
  • No automatic retrieval of http:// or https:// URLs for parameters
  • Pager used for all output by default
  • Timestamp output values are standardized to ISO 8601 format
  • Improved handling of CloudFormation deployments that result in no changes
  • Changed default behavior for Regional Amazon S3 endpoint for us-east-1 Region
  • Changed default behavior for Regional AWS STS endpoints
  • ecr get-login removed and replaced with ecr get-login-password
  • AWS CLI version 2 support for plugins is changing
  • Hidden alias support removed
  • The api_versions configuration file setting is not supported
  • AWS CLI version 2 uses only Signature v4 to authenticate Amazon S3 requests
  • AWS CLI version 2 is more consistent with paging parameters
  • AWS CLI version 2 provides more consistent return codes across all commands

How To Test

No special requirements are necessary for testing.

User Experience

The AWS CLI version 2 covers all of the functionality of the version 1 of the AWS CLI. The AWS CLI version 1 is set to be retired in the future and it would not be beneficial to any of the users to continue to take dependencies upon it as it is already not the latest version of the AWS CLI. There are some "breaking" changes from version 1 that might require you to change your scripts. For a list of breaking changes in version 2, see Breaking changes in the AWS CLI version 2 User Guide.

Dependencies

No currently known dependencies, but an email was sent to the devel mailing list to provide more visibility for anyone using it actively.


Contingency Plan

In the event that this version is not retired, both versions will be maintained. The awscli2 already includes a Provides: awscli directive and that would probably need to be removed to ensure that we distinguish between the two major releases.

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: 2023-06-13
  • Blocks release? No


Documentation

The AWS CLI v2 provides a Migration Guide for users who are moving from the AWS CLI version 1 'awscli' to the AWS CLI version 2 'awscli2'.

Release Notes

The 'awscli' package has been retired and replaced with the awscli2. The awscli2 is the most recent major version of the AWS CLI and supports all of the latest features. Some features introduced in version 2 are not backported to version 1 and you must upgrade to access those features. There are some "breaking" changes from version 1 that might require you to change your scripts. For a list of breaking changes in version 2, see Migrating from AWS CLI version 1 to version 2.