Skip to content

Commit 8707d2b

Browse files
authored
Merge branch 'main' into python-dafny-changes
2 parents e77acc2 + 139c856 commit 8707d2b

File tree

153 files changed

+35493
-1354
lines changed

Some content is hidden

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

153 files changed

+35493
-1354
lines changed

.github/actions/install_smithy_dafny_codegen_dependencies/action.yml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,6 @@ runs:
3030
python -m pip install --upgrade black
3131
python -m pip install --upgrade docformatter
3232
33-
- name: Install Go
34-
uses: actions/setup-go@v5
35-
with:
36-
go-version: "1.23"
37-
38-
- name: Install Go imports
39-
shell: bash
40-
run: |
41-
go install golang.org/x/tools/cmd/goimports@latest
42-
4333
# Without this the if-dafny-at-least command includes "Downloading ..." output
4434
- name: Arbitrary makefile target to force downloading Gradle
4535
shell: bash

.github/actions/polymorph_codegen/action.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,12 @@ runs:
141141
run: |
142142
make polymorph_dotnet ${{ steps.dependencies.outputs.PROJECT_DEPENDENCIES }}
143143
144+
- name: Regenerate Go code using smithy-dafny
145+
working-directory: ./${{ inputs.library }}
146+
shell: bash
147+
run: |
148+
make polymorph_go
149+
144150
- name: Check regenerated code against commited code
145151
# Composite action inputs seem to not actually support booleans properly for some reason
146152
if: inputs.diff-generated-code == 'true'

.github/workflows/ci_codegen.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
# in this workflow
1919
dotnet-version: ["6.0.x"]
2020
os: [ubuntu-22.04]
21+
go-version: [1.23]
2122
runs-on: ${{ matrix.os }}
2223
defaults:
2324
run:
@@ -48,6 +49,15 @@ jobs:
4849
with:
4950
dotnet-version: ${{ matrix.dotnet-version }}
5051

52+
- name: Install Go
53+
uses: actions/setup-go@v5
54+
with:
55+
go-version: ${{ matrix.go-version }}
56+
57+
- name: Install Go imports
58+
run: |
59+
go install golang.org/x/tools/cmd/goimports@latest
60+
5161
- name: Create temporary global.json
5262
run: echo '{"sdk":{"rollForward":"latestFeature","version":"6.0.0"}}' > ./global.json
5363

.github/workflows/ci_examples_java.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ on:
2626
jobs:
2727
testJava:
2828
strategy:
29-
max-parallel: 1
3029
matrix:
3130
java-version: [8, 11, 16, 17]
3231
os: [macos-13]

.github/workflows/ci_test_go.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ on:
2626
jobs:
2727
testGo:
2828
strategy:
29+
fail-fast: false
2930
matrix:
3031
library: [DynamoDbEncryption, TestVectors]
3132
os: [ubuntu-22.04, macos-13]
32-
go-version: ["1.23"]
33+
go-version: ["1.23", "1.24"]
3334
runs-on: ${{ matrix.os }}
3435
permissions:
3536
id-token: write
@@ -108,6 +109,11 @@ jobs:
108109
- name: Install Smithy-Dafny codegen dependencies
109110
uses: ./.github/actions/install_smithy_dafny_codegen_dependencies
110111

112+
- name: Install Go imports
113+
shell: bash
114+
run: |
115+
go install golang.org/x/tools/cmd/goimports@latest
116+
111117
- name: Build ${{ matrix.library }} implementation
112118
shell: bash
113119
working-directory: ./${{ matrix.library }}

.github/workflows/ci_test_java.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ on:
2626
jobs:
2727
testJava:
2828
strategy:
29+
fail-fast: false
2930
matrix:
3031
library: [DynamoDbEncryption]
3132
java-version: [8, 11, 16, 17]

.github/workflows/daily_ci.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,27 @@ jobs:
7676
uses: ./.github/workflows/ci_examples_net.yml
7777
with:
7878
dafny: ${{needs.getVersion.outputs.version}}
79+
notify:
80+
needs:
81+
[
82+
getVersion,
83+
getVerifyVersion,
84+
daily-ci-format,
85+
daily-ci-codegen,
86+
daily-ci-verification,
87+
daily-ci-test-vector-verification,
88+
daily-ci-java,
89+
daily-ci-java-test-vectors,
90+
daily-ci-java-examples,
91+
daily-ci-net,
92+
daily-ci-rust,
93+
daily-ci-go,
94+
daily-ci-net-test-vectors,
95+
daily-ci-net-examples,
96+
]
97+
if: ${{ failure() }}
98+
uses: aws/aws-cryptographic-material-providers-library/.github/workflows/slack-notification.yml@main
99+
with:
100+
message: "Daily CI failed on `${{ github.repository }}`. View run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
101+
secrets:
102+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_CI }}

.github/workflows/go-release.yml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
name: Go Release Automation
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
project-name:
7+
description: "Project name (e.g., DynamoDbEncryption)"
8+
required: true
9+
type: string
10+
version:
11+
description: "Version (e.g., v0.1.0)"
12+
required: true
13+
type: string
14+
15+
jobs:
16+
get-dafny-version:
17+
uses: ./.github/workflows/dafny_version.yml
18+
19+
go-release:
20+
needs: get-dafny-version
21+
runs-on: macos-13
22+
permissions:
23+
contents: write
24+
pull-requests: write
25+
id-token: write
26+
27+
steps:
28+
- name: Support longpaths on Git checkout
29+
run: |
30+
git config --global core.longpaths true
31+
32+
# KMS and MPL tests need to use credentials which can call KMS
33+
- name: Configure AWS Credentials
34+
uses: aws-actions/configure-aws-credentials@v4
35+
with:
36+
aws-region: us-west-2
37+
role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-DDBEC-Dafny-Role-us-west-2
38+
role-session-name: GoRelease-DBESDK-Tests
39+
40+
- name: Checkout repository
41+
uses: actions/checkout@v4
42+
with:
43+
fetch-depth: 0
44+
token: ${{ secrets.GITHUB_TOKEN }}
45+
46+
- name: Update submodules
47+
run: |
48+
git submodule update --init --recursive
49+
50+
- name: Setup Dafny
51+
uses: dafny-lang/[email protected]
52+
with:
53+
dafny-version: ${{ needs.get-dafny-version.outputs.version }}
54+
55+
- name: Install Go
56+
uses: actions/setup-go@v5
57+
with:
58+
go-version: "1.23"
59+
60+
- name: Install Go imports
61+
run: |
62+
go install golang.org/x/tools/cmd/goimports@latest
63+
64+
- name: Install Smithy-Dafny codegen dependencies
65+
uses: ./.github/actions/install_smithy_dafny_codegen_dependencies
66+
67+
- name: Configure Git
68+
run: |
69+
git config --global user.name "GitHub Actions"
70+
git config --global user.email "[email protected]"
71+
72+
- name: Get release directory name
73+
id: release-dir
74+
run: |
75+
chmod +x ./scripts/go-release-automation.sh
76+
RELEASE_DIR_NAME=$(./scripts/go-release-automation.sh get_release_dir_name "${{ github.event.inputs.project-name }}" "${{ github.event.inputs.version }}")
77+
echo "releaseDirName=$RELEASE_DIR_NAME" >> $GITHUB_OUTPUT
78+
79+
- name: Generate a changelog
80+
uses: orhun/git-cliff-action@v4
81+
with:
82+
config: releases/go/.git-cliff.toml
83+
args: --bump -u --prepend releases/go/${{ steps.release-dir.outputs.releaseDirName }}/CHANGELOG.md
84+
85+
- name: Run Go release automation script
86+
run: |
87+
chmod +x ./scripts/go-release-automation.sh
88+
./scripts/go-release-automation.sh run_release_script ${{ github.event.inputs.project-name }} ${{ github.event.inputs.version }}
89+
90+
- name: Create Pull Request
91+
env:
92+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
93+
run: |
94+
PROJECT_NAME="${{ github.event.inputs.project-name }}"
95+
VERSION="${{ github.event.inputs.version }}"
96+
97+
# Get the release directory name using the sourced function
98+
RELEASE_DIR_NAME="${{ steps.release-dir.outputs.releaseDirName }}"
99+
100+
BRANCH_NAME="golang-release-staging-branch/$RELEASE_DIR_NAME/$VERSION"
101+
102+
DIFF_FILES=$(diff -qr $PROJECT_NAME/runtimes/go/ImplementationFromDafny-go releases/go/$RELEASE_DIR_NAME || true)
103+
104+
# Create PR using GitHub CLI
105+
gh pr create \
106+
--title "chore(go): Release $RELEASE_DIR_NAME Go module $VERSION" \
107+
--body "This PR was automatically created by the Go Release Automation workflow. It releases version $VERSION of the $RELEASE_DIR_NAME Go module. The diff between $PROJECT_NAME/runtimes/go/ImplementationFromDafny-go and releases/go/$RELEASE_DIR_NAME is below:
108+
109+
$DIFF_FILES
110+
" \
111+
--base main \
112+
--head "$BRANCH_NAME" \
113+
--label "golang" \
114+
--draft
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Issue Created Notification
2+
on:
3+
issues:
4+
types: [opened, reopened]
5+
issue_comment:
6+
types: [created]
7+
8+
jobs:
9+
notify-issue:
10+
if: github.event_name == 'issues'
11+
uses: aws/aws-cryptographic-material-providers-library/.github/workflows/slack-notification.yml@main
12+
with:
13+
message: "New github issue `${{ github.event.issue.title }}`. Link: ${{ github.event.issue.html_url }}"
14+
secrets:
15+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_GHI }}
16+
17+
notify-comment:
18+
if: github.event_name == 'issue_comment' && !github.event.issue.pull_request
19+
uses: aws/aws-cryptographic-material-providers-library/.github/workflows/slack-notification.yml@main
20+
with:
21+
message: "New comment on issue `${{ github.event.issue.title }}`. Link: ${{ github.event.comment.html_url }}"
22+
secrets:
23+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_GHI }}

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# Changelog
22

3+
## [3.9.0](https://github.com/aws/aws-database-encryption-sdk-dynamodb/compare/v3.8.1...v3.9.0) (2025-06-25)
4+
5+
This release is available in the following languages:
6+
7+
- Java
8+
9+
### Maintenance
10+
11+
- **dafny:** Add ExecuteStatement test ([#1932](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1932)) ([66a19ab](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/66a19ab7d9ddea1018cbb01da053020148e4a1e7))
12+
- **dafny:** Add Update and delete test ([#1942](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1942)) ([3bd48ba](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/3bd48bacc6e9ca458931031062ee97f351f9de32))
13+
- **dafny:** change nat to uint64 in many places ([#1852](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1852)) ([ec22b7d](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/ec22b7d316678f4d836837e751bdfcf41f461441))
14+
- **dafny:** further performance enhancements ([#1834](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1834)) ([ea94693](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/ea9469327109a61e544425479dfb2c6be514ce5a))
15+
- **dafny:** improve performance ([#1900](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1900)) ([ccf61d6](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/ccf61d6a9c49385f1cccde0cda9c0609ba050455))
16+
- **dafny:** improve performance of searchable encryption ([#1931](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1931)) ([8b71004](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/8b710042e1bc0516b70a9f9674edab7f775d236f))
17+
- **dafny:** reduce use of BigInteger ([#1872](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1872)) ([eb7679a](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/eb7679afa9fb6383a76fd71f9e7a4e40bbe53c8a))
18+
- **dafny:** test ExecuteTransaction and BatchExecuteStatement ([#1941](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1941)) ([69c37c6](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/69c37c6a8491b2a5aadf74c4f80355b0593aed32))
19+
- **deps:** Bump MPL version to 1.11.0 ([#1945](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1945)) ([efdd373](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/efdd373ab91fc7465be0f0d05d8018f59131ee6f))
20+
- further performance improvements ([#1826](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1826)) ([3194054](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/3194054eea95c640d0ac469911e950fc76953dd6))
21+
- improve performance ([#1622](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1622)) ([8ca2883](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/8ca288345fe7371711c1c51e1d064538686e25f1))
22+
- update README for missing info ([#1939](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1939)) ([354f4f6](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/354f4f6c48ed6c60914f5ce0feaba64de7ed2587))
23+
324
## [3.8.1](https://github.com/aws/aws-database-encryption-sdk-dynamodb/compare/v3.8.0...v3.8.1) (2025-04-01)
425

526
This release is available in the following languages:

0 commit comments

Comments
 (0)