From aac442a2dbbb5e72d0a3eca8313cf65e7e1cac2f Mon Sep 17 00:00:00 2001 From: Michael Graeb Date: Mon, 12 Feb 2024 09:24:13 -0800 Subject: [PATCH 1/4] BUILDER_VERSION: v0.9.55 (#80) --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 491de8c..10d245e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ on: - 'main' env: - BUILDER_VERSION: v0.9.43 + BUILDER_VERSION: v0.9.55 BUILDER_SOURCE: releases BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net PACKAGE_NAME: aws-checksums From 08845863016f02119b966626dcabfb97b637e56b Mon Sep 17 00:00:00 2001 From: Joseph Klix Date: Mon, 29 Apr 2024 12:51:09 -0500 Subject: [PATCH 2/4] rebase CRC32DATA32VALUE (#87) --- tests/crc_test.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/crc_test.c b/tests/crc_test.c index ec9d2a4..c975791 100644 --- a/tests/crc_test.c +++ b/tests/crc_test.c @@ -13,6 +13,7 @@ static const uint32_t KNOWN_CRC32C_32_ZEROES = 0x8A9136AA; static const uint8_t DATA_32_VALUES[32] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}; +static const uint32_t KNOWN_CRC32_32_VALUES = 0x91267E8A; static const uint32_t KNOWN_CRC32C_32_VALUES = 0x46DD794E; static const uint8_t TEST_VECTOR[] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'}; @@ -56,6 +57,7 @@ static int s_test_known_crc( static int s_test_known_crc32(const char *func_name, crc_fn *func) { int res = 0; res |= s_test_known_crc(func_name, func, DATA_NAME(DATA_32_ZEROS), KNOWN_CRC32_32_ZEROES); + res |= s_test_known_crc(func_name, func, DATA_NAME(DATA_32_VALUES), KNOWN_CRC32_32_VALUES); res |= s_test_known_crc(func_name, func, DATA_NAME(TEST_VECTOR), KNOWN_CRC32_TEST_VECTOR); return res; } From 785e1b5e5abae85408a9cd782123855e9800b362 Mon Sep 17 00:00:00 2001 From: Michael Graeb Date: Wed, 12 Jun 2024 11:44:57 -0700 Subject: [PATCH 3/4] clang-format 18 (#91) see: https://github.com/awslabs/aws-c-common/pull/1113 --- .github/workflows/clang-format.yml | 10 +++---- format-check.py | 47 ++++++++++++++++++++++++++++++ format-check.sh | 24 --------------- 3 files changed, 51 insertions(+), 30 deletions(-) create mode 100755 format-check.py delete mode 100755 format-check.sh diff --git a/.github/workflows/clang-format.yml b/.github/workflows/clang-format.yml index cca2eb7..36388d6 100644 --- a/.github/workflows/clang-format.yml +++ b/.github/workflows/clang-format.yml @@ -5,14 +5,12 @@ on: [push] jobs: clang-format: - runs-on: ubuntu-20.04 # latest + runs-on: ubuntu-24.04 # latest steps: - name: Checkout Sources - uses: actions/checkout@v1 + uses: actions/checkout@v4 - name: clang-format lint - uses: DoozyX/clang-format-lint-action@v0.3.1 - with: - # List of extensions to check - extensions: c,h + run: | + ./format-check.py diff --git a/format-check.py b/format-check.py new file mode 100755 index 0000000..b9e3520 --- /dev/null +++ b/format-check.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +import argparse +import os +from pathlib import Path +import re +from subprocess import list2cmdline, run +from tempfile import NamedTemporaryFile + +CLANG_FORMAT_VERSION = '18.1.6' + +INCLUDE_REGEX = re.compile( + r'^(include|source|tests|verification)/.*\.(c|h|inl)$') +EXCLUDE_REGEX = re.compile(r'^$') + +arg_parser = argparse.ArgumentParser(description="Check with clang-format") +arg_parser.add_argument('-i', '--inplace-edit', action='store_true', + help="Edit files inplace") +args = arg_parser.parse_args() + +os.chdir(Path(__file__).parent) + +# create file containing list of all files to format +filepaths_file = NamedTemporaryFile(delete=False) +for dirpath, dirnames, filenames in os.walk('.'): + for filename in filenames: + # our regexes expect filepath to use forward slash + filepath = Path(dirpath, filename).as_posix() + if not INCLUDE_REGEX.match(filepath): + continue + if EXCLUDE_REGEX.match(filepath): + continue + + filepaths_file.write(f"{filepath}\n".encode()) +filepaths_file.close() + +# use pipx to run clang-format from PyPI +# this is a simple way to run the same clang-format version regardless of OS +cmd = ['pipx', 'run', f'clang-format=={CLANG_FORMAT_VERSION}', + f'--files={filepaths_file.name}'] +if args.inplace_edit: + cmd += ['-i'] +else: + cmd += ['--Werror', '--dry-run'] + +print(f"{Path.cwd()}$ {list2cmdline(cmd)}") +if run(cmd).returncode: + exit(1) diff --git a/format-check.sh b/format-check.sh deleted file mode 100755 index 89f1e1a..0000000 --- a/format-check.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -if [[ -z $CLANG_FORMAT ]] ; then - CLANG_FORMAT=clang-format -fi - -if NOT type $CLANG_FORMAT 2> /dev/null ; then - echo "No appropriate clang-format found." - exit 1 -fi - -FAIL=0 -SOURCE_FILES=`find source include tests -type f \( -name '*.h' -o -name '*.c' -o -name '*.inl' \)` -for i in $SOURCE_FILES -do - $CLANG_FORMAT -output-replacements-xml $i | grep -c " /dev/null - if [ $? -ne 1 ] - then - echo "$i failed clang-format check." - FAIL=1 - fi -done - -exit $FAIL From f84fcbe0eb13afeac9b551c300819e08d2f28b09 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Khan Date: Wed, 17 Jul 2024 15:14:02 -0700 Subject: [PATCH 4/4] Update MacOS to arm64 (#92) --- .github/workflows/ci.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10d245e..4e96dd7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ on: - 'main' env: - BUILDER_VERSION: v0.9.55 + BUILDER_VERSION: v0.9.62 BUILDER_SOURCE: releases BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net PACKAGE_NAME: aws-checksums @@ -137,8 +137,8 @@ jobs: run: | python .\aws-checksums\build\deps\aws-c-common\scripts\appverifier_ctest.py --build_directory .\aws-checksums\build\aws-checksums - osx: - runs-on: macos-12 # latest + macos: + runs-on: macos-14 # latest steps: - name: Build ${{ env.PACKAGE_NAME }} + consumers run: | @@ -146,8 +146,17 @@ jobs: chmod a+x builder ./builder build -p ${{ env.PACKAGE_NAME }} - osx-no-cpu-extensions: - runs-on: macos-12 # latest + macos-x64: + runs-on: macos-14-large # latest + steps: + - name: Build ${{ env.PACKAGE_NAME }} + consumers + run: | + python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder')" + chmod a+x builder + ./builder build -p ${{ env.PACKAGE_NAME }} + + macos-no-cpu-extensions: + runs-on: macos-14 # latest steps: - name: Build ${{ env.PACKAGE_NAME }} + consumers run: |