diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml index 2e6dba9..7829c6d 100644 --- a/.github/workflows/run-unit-tests.yml +++ b/.github/workflows/run-unit-tests.yml @@ -16,11 +16,8 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.7, 3.8, 3.9, "3.10", 3.11] - # TODO: revert macOS-13 back to macOS-latest - # macOS-latest switched architectures and does not have older versions of python available - # https://github.com/actions/setup-python/issues/856 - os: [ubuntu-latest, macOS-13, windows-latest ] + python-version: [3.8, 3.9, "3.10", 3.11] + os: [ubuntu-latest, macOS-latest, windows-latest ] steps: - uses: actions/checkout@v2 diff --git a/README.md b/README.md index 3187335..22a9fe2 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,17 @@ access. For questions regarding Amazon Kinesis Service and the client libraries please visit the [Amazon Kinesis Forums][kinesis-forum] +## 🚨Important: Migration to Python KCL 2.2.0 or later with MultiLangDaemon - Credential Provider Changes Required +Java KCL version 2.7.0 and later uses AWS SDK for Java 2.x instead of AWS SDK for Java 1.x. For the KCL Python 2.x versions, +v2.2.0 is the first Python release to use Java KCL 2.7.0. All MultiLangDaemon users upgrading from earlier versions must update +their credential provider configuration in the `.properties` file to use credentials provider name for AWS SDK for Java 2.x. +Failure to do this will cause your multilang KCL application to fail during startup with credential provider construction errors. +Please check the following link for the credentials provider mapping and MultiLangDaemon credentials provider configuration guide + +- [AWS SDK for Java 1.x to 2.x Credentials Provider Mapping](aws.amazon.com/sdk-for-java/latest/developer-guide/migration-client-credentials.html#credentials-changes-mapping) +- [KCL Multilang Credentials Provider Configuration Guide](https://github.com/aws/amazon-kinesis-client/blob/master/docs/multilang/configuring-credential-providers.md) + + ## Running the Sample Using the `amazon_kclpy` package requires the MultiLangDaemon which is provided @@ -145,6 +156,12 @@ all languages. * The [Amazon Kinesis Forum][kinesis-forum] ## Release Notes +### Release 2.2.0 (2025-03-12) - IMPORTANT: See section ``Migration to Python KCL 2.2.0`` to ensure upgrading does not break compatibility +* [#1444](https://github.com/awslabs/amazon-kinesis-client/pull/1444) Fully remove dependency on the AWS SDK for Java 1.x which will reach [end-of-support by December 31st, 2025](https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-java-v1-x-on-december-31-2025/). + * The Glue Schema Registry integration functionality no longer depends on AWS SDK for Java 1.x. Previously, it required this as a transient dependency. + * Multilangdaemon has been upgraded to use AWS SDK for Java 2.x. It no longer depends on AWS SDK for Java 1.x. +* [#270](https://github.com/awslabs/amazon-kinesis-client-python/pull/270) Upgrade logback.version from 1.3.14 to 1.5.16 +* [#270](https://github.com/awslabs/amazon-kinesis-client-python/pull/270) Upgrade netty.version from 4.1.108.Final to 4.1.118.Final ### Release 2.1.6 (January 22, 2025) * Updates KCL version to use KCL 2.6.1. Brings in [changes from the KCL 2.6.1 release][2.6.1 changelog]. diff --git a/pom.xml b/pom.xml index ae089ab..3fb03db 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 2.25.64 1.12.668 - 2.6.1 + 2.7.0 4.1.118.Final 2.0.6 2.13.5 diff --git a/samples/sample.properties b/samples/sample.properties index 8f4b510..147c32e 100644 --- a/samples/sample.properties +++ b/samples/sample.properties @@ -17,13 +17,12 @@ streamName = kclpysample applicationName = PythonKCLSample # Users can change the credentials provider the KCL will use to retrieve credentials. -# The DefaultAWSCredentialsProviderChain checks several other providers, which is +# Expected key name (case-sensitive): +# AwsCredentialsProvider / AwsCredentialsProviderDynamoDB / AwsCredentialsProviderCloudWatch +# The DefaultCredentialsProvider checks several other providers, which is # described here: -# http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html -# -# For additional configuration, including nested properties, see: -# https://github.com/awslabs/amazon-kinesis-client/blob/master/docs/multilang/configuring-credential-providers.md -AWSCredentialsProvider = DefaultAWSCredentialsProviderChain +# https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/auth/credentials/DefaultCredentialsProvider.html +AwsCredentialsProvider = DefaultCredentialsProvider # Appended to the user agent of the KCL. Does not impact the functionality of the # KCL in any other way. diff --git a/setup.py b/setup.py index 8044153..868a736 100644 --- a/setup.py +++ b/setup.py @@ -42,7 +42,7 @@ PACKAGE_NAME = 'amazon_kclpy' JAR_DIRECTORY = os.path.join(PACKAGE_NAME, 'jars') -PACKAGE_VERSION = '2.1.6' +PACKAGE_VERSION = '2.2.0' PYTHON_REQUIREMENTS = [ 'boto3', # argparse is part of python2.7 but must be declared for python2.6