From e90f777bdbd921195942cd7913f265c5b5e47c24 Mon Sep 17 00:00:00 2001 From: Joseph Klix Date: Thu, 5 Oct 2023 11:47:21 -0700 Subject: [PATCH 1/7] readme cleanup --- README.md | 67 +++++-------------------------------------------------- 1 file changed, 6 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index a7284f89..d41c182f 100644 --- a/README.md +++ b/README.md @@ -2,30 +2,14 @@ [![Version](https://img.shields.io/pypi/v/awsiotsdk.svg?style=flat)](https://pypi.org/project/awsiotsdk/) -This document provides information about the AWS IoT Device SDK v2 for Python. - -If you have any issues or feature requests, please file an issue or pull request. - -API documentation: https://aws.github.io/aws-iot-device-sdk-python-v2/ - -This SDK is built on the AWS Common Runtime, a collection of libraries -([aws-c-common](https://github.com/awslabs/aws-c-common), -[aws-c-io](https://github.com/awslabs/aws-c-io), -[aws-c-mqtt](https://github.com/awslabs/aws-c-mqtt), -[aws-c-compression](https://github.com/awslabs/aws-c-compression), -[aws-c-http](https://github.com/awslabs/aws-c-http), -[aws-c-cal](https://github.com/awslabs/aws-c-cal), -[aws-c-auth](https://github.com/awslabs/aws-c-auth), -[s2n](https://github.com/awslabs/s2n) ...) written in C to be -cross-platform, high-performance, secure, and reliable. The libraries are bound -to Python by the `awscrt` package ([PyPI](https://pypi.org/project/awscrt/)) ([Github](https://github.com/awslabs/aws-crt-python)). +This document provides information about the AWS IoT Device SDK v2 for Python. This SDK is built on the [AWS Common Runtime](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html) *__Jump To:__* * [Installation](#installation) * [Samples](samples) * [Getting Help](#getting-help) * [FAQ](./documents/FAQ.md) -* [Giving Feedback and Contributions](#giving-feedback-and-contributions) +* [API Docs](https://aws.github.io/aws-iot-device-sdk-python-v2/) * [MQTT5 User Guide](./documents/MQTT5_Userguide.md) @@ -67,50 +51,19 @@ sed -i "s/__version__ = '1.0.0-dev'/__version__ = ''/" aws-iot-devi python3 -m pip install ./aws-iot-device-sdk-python-v2 ``` - -### Installation Issues - -`awsiotsdk` depends on [awscrt](https://github.com/awslabs/aws-crt-python), which makes use of C extensions. Precompiled wheels are downloaded when installing on major platforms (Mac, Windows, Linux, Raspberry Pi OS). If wheels are unavailable for your platform, your machine must compile some C libraries. For example: - -```bash -# 1. Create a workspace directory to hold all the CRT files -mkdir crt-workspace -cd crt-workspace - -# 2. Clone the repository, you could select the version you would like to use. You can find the awscrt version used by the current SDK from the file "./aws-iot-device-sdk-python-v2/setup.py". Update the version number in "./aws-iot-device-sdk-python-v2/setup.py" can change the awscrt version you would like to use in awsiotsdk -git clone -b https://github.com/awslabs/aws-crt-python.git - -# 3. Update the submodules -cd aws-crt-python -git submodule update --init --recursive - -# 4. (Optional) Setup the version number of your local build. Similar to the awsiotsdk, the default version for awscrt is set to "1.0.0-dev", you can set the version number of the local build in "./aws-crt-python/awscrt/__init__.py". The awscrt version set here need to match the version specified in "./aws-iot-device-sdk-python-v2/setup.py" so that the awsiotsdk could locate the correct awscrt library. -sed -i "s/__version__ = '1.0.0.dev0'/__version__ = ''/" awscrt/__init__.py - -# 5. Install using Pip -python3 -m pip install . -``` -If you need aws-crt-python to use the libcrypto included on your system, set environment variable AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 while building from source: -``` -AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 python3 -m pip install --no-binary :all: --verbose awscrt -``` -( --no-binary :all: ensures you do not use the precompiled wheel from PyPI) - -If you encounter issues, see [Installation Issues](./documents/PREREQUISITES.md#installation-issues) and try again. - ## Samples [Samples README](samples) ## Getting Help -The best way to interact with our team is through GitHub. You can [open an issue](https://github.com/aws/aws-iot-device-sdk-python-v2/issues) and choose from one of our templates for guidance, bug reports, or feature requests. You may also find help on community resources such as [StackOverFlow](https://stackoverflow.com/questions/tagged/aws-iot) with the tag #aws-iot or If you have a support plan with [AWS Support](https://aws.amazon.com/premiumsupport/), you can also create a new support case. +The best way to interact with our team is through GitHub. You can open a [discussion](https://github.com/aws/aws-iot-device-sdk-python-v2/discussions) for guidance questions or an [issue](https://github.com/aws/aws-iot-device-sdk-python-v2/issues/new/choose) for bug reports, or feature requests. You may also find help on community resources such as [StackOverFlow](https://stackoverflow.com/questions/tagged/aws-iot) with the tag [#aws-iot](https://stackoverflow.com/questions/tagged/aws-iot) or If you have a support plan with [AWS Support](https://aws.amazon.com/premiumsupport/), you can also create a new support case. Please make sure to check out our resources too before opening an issue: -* Our [FAQ](./documents/FAQ.md) -* [API documentation](https://aws.github.io/aws-iot-device-sdk-python-v2/) -* Our [Developer Guide](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) ([source](https://github.com/awsdocs/aws-iot-docs)) +* [FAQ](./documents/FAQ.md) +* [API Docs](https://aws.github.io/aws-iot-device-sdk-python-v2/) +* [Developer Guide](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) ([source](https://github.com/awsdocs/aws-iot-docs)) * Check for similar [Issues](https://github.com/aws/aws-iot-device-sdk-python-v2/issues) * [AWS IoT Core Documentation](https://docs.aws.amazon.com/iot/) * [Dev Blog](https://aws.amazon.com/blogs/?awsf.blog-master-iot=category-internet-of-things%23amazon-freertos%7Ccategory-internet-of-things%23aws-greengrass%7Ccategory-internet-of-things%23aws-iot-analytics%7Ccategory-internet-of-things%23aws-iot-button%7Ccategory-internet-of-things%23aws-iot-device-defender%7Ccategory-internet-of-things%23aws-iot-device-management%7Ccategory-internet-of-things%23aws-iot-platform) @@ -118,15 +71,7 @@ Please make sure to check out our resources too before opening an issue: [Device Shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) and [Jobs](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html) is provided by code that been generated from a model of the service. - -## Giving Feedback and Contributions - -We need your help in making this SDK great. Please participate in the community and contribute to this effort by submitting issues, participating in discussion forums and submitting pull requests through the following channels. - * [Contributions Guidelines](./documents/CONTRIBUTING.md) -* Articulate your feature request or upvote existing ones on our [Issues](https://github.com/aws/aws-iot-device-sdk-python-v2/issues?q=is%3Aissue+is%3Aopen+label%3Afeature-request) page. -* Create discussion questions [here](https://github.com/aws/aws-iot-device-sdk-python-v2/discussions) -* Find a bug open an [issue](https://github.com/aws/aws-iot-device-sdk-python-v2/issues) ## License From f7638b737f03fbc542018d70557c488777e964e0 Mon Sep 17 00:00:00 2001 From: Joseph Klix Date: Thu, 5 Oct 2023 11:50:13 -0700 Subject: [PATCH 2/7] Update FAQ.md --- documents/FAQ.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/documents/FAQ.md b/documents/FAQ.md index 1737e8a3..8f2df6a0 100644 --- a/documents/FAQ.md +++ b/documents/FAQ.md @@ -3,6 +3,7 @@ *__Jump To:__* * [Where should I start](#where-should-i-start) * [How do I enable logging](#how-do-i-enable-logging) +* [Installation Issues](#installation-issues) * [I keep getting AWS_ERROR_MQTT_UNEXPECTED_HANGUP](#i-keep-getting-aws_error_mqtt_unexpected_hangup) * [I am experiencing deadlocks](#i-am-experiencing-deadlocks) * [Mac-Only TLS Behavior](#mac-only-tls-behavior) @@ -21,6 +22,37 @@ io.init_logging(io.LogLevel.Error, 'stderr') ``` You can also enable [CloudWatch logging](https://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.html) for IoT which will provide you with additional information that is not available on the client side sdk. +### Installation Issues + +`awsiotsdk` depends on [awscrt](https://github.com/awslabs/aws-crt-python), which makes use of C extensions. Precompiled wheels are downloaded when installing on major platforms (Mac, Windows, Linux, Raspberry Pi OS). If wheels are unavailable for your platform, your machine must compile some C libraries. For example: + +```bash +# 1. Create a workspace directory to hold all the CRT files +mkdir crt-workspace +cd crt-workspace + +# 2. Clone the repository, you could select the version you would like to use. You can find the awscrt version used by the current SDK from the file "./aws-iot-device-sdk-python-v2/setup.py". Update the version number in "./aws-iot-device-sdk-python-v2/setup.py" can change the awscrt version you would like to use in awsiotsdk +git clone -b https://github.com/awslabs/aws-crt-python.git + +# 3. Update the submodules +cd aws-crt-python +git submodule update --init --recursive + +# 4. (Optional) Setup the version number of your local build. Similar to the awsiotsdk, the default version for awscrt is set to "1.0.0-dev", you can set the version number of the local build in "./aws-crt-python/awscrt/__init__.py". The awscrt version set here need to match the version specified in "./aws-iot-device-sdk-python-v2/setup.py" so that the awsiotsdk could locate the correct awscrt library. +sed -i "s/__version__ = '1.0.0.dev0'/__version__ = ''/" awscrt/__init__.py + +# 5. Install using Pip +python3 -m pip install . +``` +If you need aws-crt-python to use the libcrypto included on your system, set environment variable AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 while building from source: +``` +AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 python3 -m pip install --no-binary :all: --verbose awscrt +``` +( --no-binary :all: ensures you do not use the precompiled wheel from PyPI) + +If you encounter issues, see [Installation Issues](./PREREQUISITES.md#installation-issues) and try again. + + ### I keep getting AWS_ERROR_MQTT_UNEXPECTED_HANGUP This could be many different things but it most likely is a policy issue. Start with using a super permissive IAM policy called AWSIOTFullAccess which looks like this: From 144396a0f280b5dad800e190bd2c804b99073782 Mon Sep 17 00:00:00 2001 From: Joseph Klix Date: Thu, 5 Oct 2023 13:23:17 -0700 Subject: [PATCH 3/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d41c182f..0d30a413 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ python3 -m pip install ./aws-iot-device-sdk-python-v2 ## Getting Help -The best way to interact with our team is through GitHub. You can open a [discussion](https://github.com/aws/aws-iot-device-sdk-python-v2/discussions) for guidance questions or an [issue](https://github.com/aws/aws-iot-device-sdk-python-v2/issues/new/choose) for bug reports, or feature requests. You may also find help on community resources such as [StackOverFlow](https://stackoverflow.com/questions/tagged/aws-iot) with the tag [#aws-iot](https://stackoverflow.com/questions/tagged/aws-iot) or If you have a support plan with [AWS Support](https://aws.amazon.com/premiumsupport/), you can also create a new support case. +The best way to interact with our team is through GitHub. You can open a [discussion](https://github.com/aws/aws-iot-device-sdk-python-v2/discussions) for guidance questions or an [issue](https://github.com/aws/aws-iot-device-sdk-python-v2/issues/new/choose) for bug reports, or feature requests. You may also find help on community resources such as [StackOverFlow](https://stackoverflow.com/questions/tagged/aws-iot) with the tag [#aws-iot](https://stackoverflow.com/questions/tagged/aws-iot) or if you have a support plan with [AWS Support](https://aws.amazon.com/premiumsupport/), you can also create a new support case. Please make sure to check out our resources too before opening an issue: From e561fea6d24d1c93c9271e06156b8e2993bd1d29 Mon Sep 17 00:00:00 2001 From: Joseph Klix Date: Thu, 5 Oct 2023 13:26:22 -0700 Subject: [PATCH 4/7] Update README.md --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0d30a413..a0acc3d7 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,11 @@ cd sdk-workspace # 2. Clone the repository. You could select the version of the SDK you desire to use. git clone -b https://github.com/aws/aws-iot-device-sdk-python-v2.git -# 3. (Optional) Setup the version number of your local build. The default version for awsiotsdk is set to "1.0.0-dev", you can set the version number of the local build in "aws-iot-device-sdk-python-v2/awsiot/__init__.py" -sed -i "s/__version__ = '1.0.0-dev'/__version__ = ''/" aws-iot-device-sdk-python-v2/awsiot/__init__.py +# 3. (Optional) Setup the version number of your local build. The default version +# for awsiotsdk is set to "1.0.0-dev", you can set the version number of the +# local build in "aws-iot-device-sdk-python-v2/awsiot/__init__.py" +sed -i "s/__version__ = '1.0.0-dev'/__version__ = ''/" \ + aws-iot-device-sdk-python-v2/awsiot/__init__.py # 4. Install using Pip (use 'python' instead of 'python3' on Windows) python3 -m pip install ./aws-iot-device-sdk-python-v2 From 9cfbd2cfec3b177f9167116a98ab13bbc2eb51fe Mon Sep 17 00:00:00 2001 From: Joseph Klix Date: Thu, 5 Oct 2023 13:28:10 -0700 Subject: [PATCH 5/7] Update FAQ.md --- documents/FAQ.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/documents/FAQ.md b/documents/FAQ.md index 8f2df6a0..34548aa4 100644 --- a/documents/FAQ.md +++ b/documents/FAQ.md @@ -31,14 +31,21 @@ You can also enable [CloudWatch logging](https://docs.aws.amazon.com/iot/latest/ mkdir crt-workspace cd crt-workspace -# 2. Clone the repository, you could select the version you would like to use. You can find the awscrt version used by the current SDK from the file "./aws-iot-device-sdk-python-v2/setup.py". Update the version number in "./aws-iot-device-sdk-python-v2/setup.py" can change the awscrt version you would like to use in awsiotsdk +# 2. Clone the repository, you could select the version you would like to use. You can find the awscrt +# version used by the current SDK from the file "./aws-iot-device-sdk-python-v2/setup.py". Update +# the version number in "./aws-iot-device-sdk-python-v2/setup.py" can change the awscrt version +# you would like to use in awsiotsdk git clone -b https://github.com/awslabs/aws-crt-python.git # 3. Update the submodules cd aws-crt-python git submodule update --init --recursive -# 4. (Optional) Setup the version number of your local build. Similar to the awsiotsdk, the default version for awscrt is set to "1.0.0-dev", you can set the version number of the local build in "./aws-crt-python/awscrt/__init__.py". The awscrt version set here need to match the version specified in "./aws-iot-device-sdk-python-v2/setup.py" so that the awsiotsdk could locate the correct awscrt library. +# 4. (Optional) Setup the version number of your local build. Similar to the awsiotsdk, the default +# version for awscrt is set to "1.0.0-dev", you can set the version number of the local build in +# "./aws-crt-python/awscrt/__init__.py". The awscrt version set here need to match the version +# specified in "./aws-iot-device-sdk-python-v2/setup.py" so that the awsiotsdk could locate the +# correct awscrt library. sed -i "s/__version__ = '1.0.0.dev0'/__version__ = ''/" awscrt/__init__.py # 5. Install using Pip From 5fdba4f0e066e2c4deb33a6d27e1ab9bdfd90a33 Mon Sep 17 00:00:00 2001 From: Joseph Klix Date: Tue, 10 Oct 2023 10:28:04 -0700 Subject: [PATCH 6/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a0acc3d7..e6f32b26 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Please make sure to check out our resources too before opening an issue: * [FAQ](./documents/FAQ.md) * [API Docs](https://aws.github.io/aws-iot-device-sdk-python-v2/) -* [Developer Guide](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) ([source](https://github.com/awsdocs/aws-iot-docs)) +* [IoT Guide](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) ([source](https://github.com/awsdocs/aws-iot-docs)) * Check for similar [Issues](https://github.com/aws/aws-iot-device-sdk-python-v2/issues) * [AWS IoT Core Documentation](https://docs.aws.amazon.com/iot/) * [Dev Blog](https://aws.amazon.com/blogs/?awsf.blog-master-iot=category-internet-of-things%23amazon-freertos%7Ccategory-internet-of-things%23aws-greengrass%7Ccategory-internet-of-things%23aws-iot-analytics%7Ccategory-internet-of-things%23aws-iot-button%7Ccategory-internet-of-things%23aws-iot-device-defender%7Ccategory-internet-of-things%23aws-iot-device-management%7Ccategory-internet-of-things%23aws-iot-platform) From df72ab3abb98e07a9388e4c8f354f5dd6074ec04 Mon Sep 17 00:00:00 2001 From: Joseph Klix Date: Tue, 17 Oct 2023 10:20:54 -0700 Subject: [PATCH 7/7] codebuild trigger