Skip to content

Commit c312b54

Browse files
authored
Merge branch 'main' into cmake-gnu-include
2 parents 87ec9ed + 17ee24a commit c312b54

File tree

92 files changed

+52287
-974
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+52287
-974
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
name: "🐛 Bug Report"
3+
description: Report a bug
4+
title: "(short issue description)"
5+
labels: [bug, needs-triage]
6+
assignees: []
7+
body:
8+
- type: textarea
9+
id: description
10+
attributes:
11+
label: Describe the bug
12+
description: What is the problem? A clear and concise description of the bug.
13+
validations:
14+
required: true
15+
- type: textarea
16+
id: expected
17+
attributes:
18+
label: Expected Behavior
19+
description: |
20+
What did you expect to happen?
21+
validations:
22+
required: true
23+
- type: textarea
24+
id: current
25+
attributes:
26+
label: Current Behavior
27+
description: |
28+
What actually happened?
29+
30+
Please include full errors, uncaught exceptions, stack traces, and relevant logs.
31+
If service responses are relevant, please include wire logs.
32+
validations:
33+
required: true
34+
- type: textarea
35+
id: reproduction
36+
attributes:
37+
label: Reproduction Steps
38+
description: |
39+
Provide a self-contained, concise snippet of code that can be used to reproduce the issue.
40+
For more complex issues provide a repo with the smallest sample that reproduces the bug.
41+
42+
Avoid including business logic or unrelated code, it makes diagnosis more difficult.
43+
The code sample should be an SSCCE. See http://sscce.org/ for details. In short, please provide a code sample that we can copy/paste, run and reproduce.
44+
validations:
45+
required: true
46+
- type: textarea
47+
id: solution
48+
attributes:
49+
label: Possible Solution
50+
description: |
51+
Suggest a fix/reason for the bug
52+
validations:
53+
required: false
54+
- type: textarea
55+
id: context
56+
attributes:
57+
label: Additional Information/Context
58+
description: |
59+
Anything else that might be relevant for troubleshooting this bug. Providing context helps us come up with a solution that is most useful in the real world.
60+
validations:
61+
required: false
62+
63+
- type: input
64+
id: aws-c-mqtt-version
65+
attributes:
66+
label: aws-c-mqtt version used
67+
validations:
68+
required: true
69+
70+
- type: input
71+
id: compiler-version
72+
attributes:
73+
label: Compiler and version used
74+
validations:
75+
required: true
76+
77+
- type: input
78+
id: operating-system
79+
attributes:
80+
label: Operating System and version
81+
validations:
82+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 💬 General Question
4+
url: https://github.com/awslabs/aws-c-mqtt/discussions/categories/q-a
5+
about: Please ask and answer questions as a discussion thread
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: "📕 Documentation Issue"
3+
description: Report an issue in the API Reference documentation or Developer Guide
4+
title: "(short issue description)"
5+
labels: [documentation, needs-triage]
6+
assignees: []
7+
body:
8+
- type: textarea
9+
id: description
10+
attributes:
11+
label: Describe the issue
12+
description: A clear and concise description of the issue.
13+
validations:
14+
required: true
15+
16+
- type: textarea
17+
id: links
18+
attributes:
19+
label: Links
20+
description: |
21+
Include links to affected documentation page(s).
22+
validations:
23+
required: true
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
name: 🚀 Feature Request
3+
description: Suggest an idea for this project
4+
title: "(short issue description)"
5+
labels: [feature-request, needs-triage]
6+
assignees: []
7+
body:
8+
- type: textarea
9+
id: description
10+
attributes:
11+
label: Describe the feature
12+
description: A clear and concise description of the feature you are proposing.
13+
validations:
14+
required: true
15+
- type: textarea
16+
id: use-case
17+
attributes:
18+
label: Use Case
19+
description: |
20+
Why do you need this feature? For example: "I'm always frustrated when..."
21+
validations:
22+
required: true
23+
- type: textarea
24+
id: solution
25+
attributes:
26+
label: Proposed Solution
27+
description: |
28+
Suggest how to implement the addition or change. Please include prototype/workaround/sketch/reference implementation.
29+
validations:
30+
required: false
31+
- type: textarea
32+
id: other
33+
attributes:
34+
label: Other Information
35+
description: |
36+
Any alternative solutions or features you considered, a more detailed explanation, stack traces, related issues, links for context, etc.
37+
validations:
38+
required: false
39+
- type: checkboxes
40+
id: ack
41+
attributes:
42+
label: Acknowledgements
43+
options:
44+
- label: I may be able to implement this feature request
45+
required: false
46+
- label: This feature might incur a breaking change
47+
required: false

.github/workflows/ci.yml

Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,23 @@ name: CI
22

33
on:
44
push:
5-
branches:
6-
- '*'
7-
- '!main'
5+
branches-ignore:
6+
- 'main'
87

98
env:
10-
BUILDER_VERSION: v0.8.27
9+
BUILDER_VERSION: v0.9.43
1110
BUILDER_SOURCE: releases
1211
BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net
1312
PACKAGE_NAME: aws-c-mqtt
14-
LINUX_BASE_IMAGE: ubuntu-16-x64
13+
LINUX_BASE_IMAGE: ubuntu-18-x64
1514
RUN: ${{ github.run_id }}-${{ github.run_number }}
1615
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
1716
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
1817
AWS_REGION: us-east-1
19-
18+
2019
jobs:
2120
linux-compat:
22-
runs-on: ubuntu-latest
21+
runs-on: ubuntu-20.04 # latest
2322
strategy:
2423
matrix:
2524
image:
@@ -36,10 +35,10 @@ jobs:
3635
- name: Build ${{ env.PACKAGE_NAME }}
3736
run: |
3837
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
39-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }} downstream
38+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DASSERT_LOCK_HELD=ON
4039
4140
linux-compiler-compat:
42-
runs-on: ubuntu-latest
41+
runs-on: ubuntu-20.04 # latest
4342
strategy:
4443
matrix:
4544
compiler:
@@ -59,10 +58,10 @@ jobs:
5958
- name: Build ${{ env.PACKAGE_NAME }}
6059
run: |
6160
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
62-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} --spec downstream
61+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} --cmake-extra=-DASSERT_LOCK_HELD=ON
6362
6463
clang-sanitizers:
65-
runs-on: ubuntu-latest
64+
runs-on: ubuntu-20.04 # latest
6665
strategy:
6766
matrix:
6867
sanitizers: [",thread", ",address,undefined"]
@@ -71,51 +70,71 @@ jobs:
7170
- name: Build ${{ env.PACKAGE_NAME }}
7271
run: |
7372
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
74-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=clang-11 --cmake-extra=-DENABLE_SANITIZERS=ON --cmake-extra=-DSANITIZERS="${{ matrix.sanitizers }}"
73+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=clang-11 --cmake-extra=-DENABLE_SANITIZERS=ON --cmake-extra=-DASSERT_LOCK_HELD=ON --cmake-extra=-DSANITIZERS="${{ matrix.sanitizers }}"
7574
7675
linux-shared-libs:
77-
runs-on: ubuntu-latest
76+
runs-on: ubuntu-20.04 # latest
7877
steps:
7978
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
8079
- name: Build ${{ env.PACKAGE_NAME }}
8180
run: |
8281
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
83-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBUILD_SHARED_LIBS=ON
82+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBUILD_SHARED_LIBS=ON --cmake-extra=-DASSERT_LOCK_HELD=ON
8483
8584
windows:
86-
runs-on: windows-latest
85+
runs-on: windows-2022 # latest
8786
steps:
8887
- name: Build ${{ env.PACKAGE_NAME }} + consumers
8988
run: |
9089
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
91-
python builder.pyz build -p ${{ env.PACKAGE_NAME }}
90+
python builder.pyz build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DASSERT_LOCK_HELD=ON
9291
9392
windows-vc14:
94-
runs-on: windows-latest
93+
runs-on: windows-2019 # windows-2019 is last env with Visual Studio 2015 (v14.0)
9594
strategy:
9695
matrix:
9796
arch: [x86, x64]
9897
steps:
9998
- name: Build ${{ env.PACKAGE_NAME }} + consumers
10099
run: |
101100
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
102-
python builder.pyz build -p ${{ env.PACKAGE_NAME }} --target windows-${{ matrix.arch }} --compiler msvc-14
101+
python builder.pyz build -p ${{ env.PACKAGE_NAME }} --target windows-${{ matrix.arch }} --compiler msvc-14 --cmake-extra=-DASSERT_LOCK_HELD=ON
103102
104103
windows-shared-libs:
105-
runs-on: windows-latest
104+
runs-on: windows-2022 # latest
106105
steps:
107106
- name: Build ${{ env.PACKAGE_NAME }} + consumers
108107
run: |
109108
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
110-
python builder.pyz build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBUILD_SHARED_LIBS=ON
109+
python builder.pyz build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBUILD_SHARED_LIBS=ON --cmake-extra=-DASSERT_LOCK_HELD=ON
110+
111+
windows-app-verifier:
112+
runs-on: windows-2022 # latest
113+
steps:
114+
- name: Build ${{ env.PACKAGE_NAME }} + consumers
115+
run: |
116+
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
117+
python builder.pyz build -p ${{ env.PACKAGE_NAME }} run_tests=false --cmake-extra=-DBUILD_TESTING=ON
118+
- name: Run and check AppVerifier
119+
run: |
120+
python .\aws-c-mqtt\build\deps\aws-c-common\scripts\appverifier_ctest.py --build_directory .\aws-c-mqtt\build\aws-c-mqtt
111121
112122
osx:
113-
runs-on: macos-latest
123+
runs-on: macos-12 # latest
114124
steps:
115125
- name: Build ${{ env.PACKAGE_NAME }} + consumers
116126
run: |
117127
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder')"
118128
chmod a+x builder
119-
./builder build -p ${{ env.PACKAGE_NAME }} default-downstream
120-
129+
./builder build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DASSERT_LOCK_HELD=ON
121130
131+
# Test downstream repos.
132+
# This should not be required because we can run into a chicken and egg problem if there is a change that needs some fix in a downstream repo.
133+
downstream:
134+
runs-on: ubuntu-20.04 # latest
135+
steps:
136+
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
137+
- name: Build ${{ env.PACKAGE_NAME }}
138+
run: |
139+
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
140+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build downstream -p ${{ env.PACKAGE_NAME }}

.github/workflows/clang-format.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ on: [push]
55
jobs:
66
clang-format:
77

8-
runs-on: ubuntu-latest
8+
runs-on: ubuntu-20.04 # latest
99

1010
steps:
1111
- name: Checkout Sources
1212
uses: actions/checkout@v1
13-
13+
1414
- name: clang-format lint
1515
uses: DoozyX/clang-format-lint-action@v0.3.1
1616
with:
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: Closed Issue Message
2+
on:
3+
issues:
4+
types: [closed]
5+
jobs:
6+
auto_comment:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: aws-actions/closed-issue-message@v1
10+
with:
11+
# These inputs are both required
12+
repo-token: "${{ secrets.GITHUB_TOKEN }}"
13+
message: |
14+
### ⚠️COMMENT VISIBILITY WARNING⚠️
15+
Comments on closed issues are hard for our team to see.
16+
If you need more assistance, please either tag a team member or open a new issue that references this one.
17+
If you wish to keep having a conversation with other community members under this issue feel free to do so.

.github/workflows/codecov.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Code coverage check
2+
3+
on:
4+
push:
5+
6+
env:
7+
BUILDER_VERSION: v0.9.29
8+
BUILDER_SOURCE: releases
9+
BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net
10+
PACKAGE_NAME: aws-c-mqtt
11+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
12+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
13+
AWS_REGION: us-east-1
14+
15+
jobs:
16+
codecov-linux:
17+
runs-on: ubuntu-22.04
18+
steps:
19+
- name: Checkout Sources
20+
uses: actions/checkout@v3
21+
- name: Build ${{ env.PACKAGE_NAME }} + consumers
22+
run: |
23+
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder')"
24+
chmod a+x builder
25+
./builder build -p ${{ env.PACKAGE_NAME }} --compiler=gcc-9 --coverage
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: HandleStaleDiscussions
2+
on:
3+
schedule:
4+
- cron: '0 */4 * * *'
5+
discussion_comment:
6+
types: [created]
7+
8+
jobs:
9+
handle-stale-discussions:
10+
name: Handle stale discussions
11+
runs-on: ubuntu-latest
12+
permissions:
13+
discussions: write
14+
steps:
15+
- name: Stale discussions action
16+
uses: aws-github-ops/handle-stale-discussions@v1
17+
env:
18+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

0 commit comments

Comments
 (0)