From ca5f2f309feac055ed52dde7a9bf8f855fc3e3e4 Mon Sep 17 00:00:00 2001 From: Curtis Vogt Date: Tue, 4 Feb 2025 10:11:32 -0600 Subject: [PATCH 1/6] Fix compatibility with AWS.jl 1.91+ --- Project.toml | 6 +++--- test/runtests.jl | 19 ++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Project.toml b/Project.toml index 7bae620..83bd8e2 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "GoAWS" uuid = "00b10cec-568b-4d01-83ea-8604cd7f25ae" authors = ["Beacon Biosignals", "Inc."] -version = "1.2.1" +version = "1.3.0" [deps] AWS = "fbe9abb3-538b-5e4e-ba9e-bc94f4f92ebc" @@ -10,11 +10,11 @@ YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" goaws_jll = "a437b02d-256c-57cc-b5c6-817ed6633e35" [compat] -AWS = "1.8 - 1.90" +AWS = "1.91" Aqua = "0.7.4" URIs = "1.5" YAML = "0.4.9" -goaws_jll = "0.4.5" +goaws_jll = "0.5" julia = "1.6" [extras] diff --git a/test/runtests.jl b/test/runtests.jl index 2cad7bc..5e9952a 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -54,19 +54,20 @@ port = 41231 @testset "with_go_aws" begin with_go_aws() do aws_config - result = parse(SQS.create_queue("my_queue"; aws_config)) - queue_url = result["CreateQueueResult"]["QueueUrl"] + parsed = parse(SQS.create_queue("my_queue"; aws_config)) + queue_url = parsed["QueueUrl"] - ret = parse(SQS.send_message("hello", queue_url; aws_config)) - id = ret["SendMessageResult"]["MessageId"] # looks like a UUID, but isn't documented to be one, so guess we should leave it as a string + parsed = parse(SQS.send_message("hello", queue_url; aws_config)) + id = parsed["MessageId"] # looks like a UUID, but isn't documented to be one, so guess we should leave it as a string - messages = parse(SQS.receive_message(queue_url, Dict("WaitTimeSeconds" => 1); + parsed = parse(SQS.receive_message(queue_url, Dict("WaitTimeSeconds" => 1); aws_config)) + @test length(parsed["Messages"]) == 1 - @test messages["ReceiveMessageResult"]["Message"]["Body"] == "hello" - receipt = messages["ReceiveMessageResult"]["Message"]["ReceiptHandle"] - @test startswith(receipt, id) - SQS.delete_message(queue_url, receipt; aws_config) + message = first(parsed["Messages"]) + @test message["Body"] == "hello" + @test startswith(message["ReceiptHandle"], id) + SQS.delete_message(queue_url, message["ReceiptHandle"]; aws_config) return SQS.delete_queue(queue_url; aws_config) end From 41a958824358b5fdb13c1e76f202ac98146a63b4 Mon Sep 17 00:00:00 2001 From: Curtis Vogt Date: Tue, 4 Feb 2025 10:53:12 -0600 Subject: [PATCH 2/6] Support older AWS.jl versions as well --- .github/workflows/CI.yml | 26 +++++++++++++++++++------- Project.toml | 6 ++++-- test/runtests.jl | 29 ++++++++++++++++++++++++----- 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index d0e544c..0e6487c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -13,30 +13,42 @@ concurrency: cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} jobs: test: - name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - AWS.jl ${{ matrix.aws-jl-version }} - ${{ github.event_name }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: version: - - '1.6' - - '1' - - 'nightly' + - "min" + - "lts" + - "nightly" os: - ubuntu-latest arch: - x64 + aws-jl-version: + - "1.63.0" # Oldest supported version + - "latest" steps: - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v1 + - uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.version }} arch: ${{ matrix.arch }} - - uses: julia-actions/cache@v1 + - uses: julia-actions/cache@v2 + - name: Set AWS.jl version + if: ${{ matrix.aws-jl-version != 'latest' }} + shell: julia --color=yes --project {0} + run: | + using Pkg + Pkg.add(PackageSpec(; name="AWS", version="${{ matrix.aws-jl-version }}"); + preserve=PRESERVE_ALL) - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 + with: + allow_reresolve: ${{ matrix.aws-jl-version == 'latest' }} - uses: julia-actions/julia-processcoverage@v1 - - uses: codecov/codecov-action@v3 + - uses: codecov/codecov-action@v5 with: files: lcov.info env: diff --git a/Project.toml b/Project.toml index 83bd8e2..8a82657 100644 --- a/Project.toml +++ b/Project.toml @@ -10,8 +10,9 @@ YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" goaws_jll = "a437b02d-256c-57cc-b5c6-817ed6633e35" [compat] -AWS = "1.91" +AWS = "1.63" Aqua = "0.7.4" +Compat = "4.11" URIs = "1.5" YAML = "0.4.9" goaws_jll = "0.5" @@ -19,7 +20,8 @@ julia = "1.6" [extras] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" +Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["Aqua", "Test"] +test = ["Aqua", "Compat", "Test"] diff --git a/test/runtests.jl b/test/runtests.jl index 5e9952a..3dac9dd 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -4,6 +4,8 @@ using AWS using Aqua using URIs +using Compat: pkgversion + @service SQS use_response_type = true @testset "Aqua" begin @@ -53,18 +55,35 @@ port = 41231 end @testset "with_go_aws" begin + is_sqs_json_response = pkgversion(AWS) >= v"1.91" + with_go_aws() do aws_config parsed = parse(SQS.create_queue("my_queue"; aws_config)) - queue_url = parsed["QueueUrl"] + queue_url = if is_sqs_json_response + parsed["QueueUrl"] + else + parsed["CreateQueueResult"]["QueueUrl"] + end parsed = parse(SQS.send_message("hello", queue_url; aws_config)) - id = parsed["MessageId"] # looks like a UUID, but isn't documented to be one, so guess we should leave it as a string + # Looks like a UUID, but isn't documented to be one, so guess we should leave it as a string + id = if is_sqs_json_response + parsed["MessageId"] + else + parsed["SendMessageResult"]["MessageId"] + end parsed = parse(SQS.receive_message(queue_url, Dict("WaitTimeSeconds" => 1); - aws_config)) - @test length(parsed["Messages"]) == 1 + aws_config)) + messages = if is_sqs_json_response + parsed["Messages"] + else + [parsed["ReceiveMessageResult"]["Message"]] + end + + @test length(messages) == 1 - message = first(parsed["Messages"]) + message = first(messages) @test message["Body"] == "hello" @test startswith(message["ReceiptHandle"], id) SQS.delete_message(queue_url, message["ReceiptHandle"]; aws_config) From 3b56bee5342a9c7459381dc0ab133c91738d6b4d Mon Sep 17 00:00:00 2001 From: Curtis Vogt Date: Tue, 4 Feb 2025 10:59:20 -0600 Subject: [PATCH 3/6] fixup! Support older AWS.jl versions as well --- .github/workflows/CI.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 0e6487c..4781d9c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -41,8 +41,7 @@ jobs: shell: julia --color=yes --project {0} run: | using Pkg - Pkg.add(PackageSpec(; name="AWS", version="${{ matrix.aws-jl-version }}"); - preserve=PRESERVE_ALL) + Pkg.add(PackageSpec(; name="AWS", version="${{ matrix.aws-jl-version }}")) - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: From 6c40b90544c4900a9b081b03fffd32c17cd1bde3 Mon Sep 17 00:00:00 2001 From: Curtis Vogt Date: Tue, 4 Feb 2025 11:01:56 -0600 Subject: [PATCH 4/6] Restrict AWS.jl version with compat on Compat.jl --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 8a82657..5f59d21 100644 --- a/Project.toml +++ b/Project.toml @@ -10,7 +10,7 @@ YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" goaws_jll = "a437b02d-256c-57cc-b5c6-817ed6633e35" [compat] -AWS = "1.63" +AWS = "1.78" Aqua = "0.7.4" Compat = "4.11" URIs = "1.5" From b765e72a1a933faab376f62444876c626820d903 Mon Sep 17 00:00:00 2001 From: Curtis Vogt Date: Tue, 4 Feb 2025 11:04:04 -0600 Subject: [PATCH 5/6] fixup! Restrict AWS.jl version with compat on Compat.jl --- .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 4781d9c..8f87b21 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -27,7 +27,7 @@ jobs: arch: - x64 aws-jl-version: - - "1.63.0" # Oldest supported version + - "1.78.0" # Oldest supported version - "latest" steps: - uses: actions/checkout@v4 From b581a21eb5c44429a7e2a409c7b45f98502db66b Mon Sep 17 00:00:00 2001 From: Curtis Vogt Date: Tue, 4 Feb 2025 11:07:02 -0600 Subject: [PATCH 6/6] Use pin to allow reresolve --- .github/workflows/CI.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 8f87b21..f4234ac 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -41,11 +41,11 @@ jobs: shell: julia --color=yes --project {0} run: | using Pkg - Pkg.add(PackageSpec(; name="AWS", version="${{ matrix.aws-jl-version }}")) + aws_pkg = PackageSpec(; name="AWS", version="${{ matrix.aws-jl-version }}") + Pkg.add(aws_pkg) + Pkg.pin(aws_pkg) - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 - with: - allow_reresolve: ${{ matrix.aws-jl-version == 'latest' }} - uses: julia-actions/julia-processcoverage@v1 - uses: codecov/codecov-action@v5 with: