Skip to content

Commit 6704eec

Browse files
authored
Merge branch 'main' into imabhichow/fix-dafny-interop
2 parents 355efd0 + e9ea870 commit 6704eec

File tree

120 files changed

+271033
-7409
lines changed

Some content is hidden

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

120 files changed

+271033
-7409
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/workflows/ci_test_go.yml

Lines changed: 9 additions & 2 deletions
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", "1.25"]
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 }}
@@ -134,8 +140,9 @@ jobs:
134140
run: |
135141
make test_go
136142
137-
- name: Test Examples
143+
- name: Run and Test Examples
138144
if: matrix.library == 'DynamoDbEncryption'
139145
working-directory: ./Examples/runtimes/go
140146
run: |
141147
go run main.go
148+
go test ./...

.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: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
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 ./submodules/MaterialProviders/scripts/go-release-automation.sh
76+
RELEASE_DIR_NAME=$(./submodules/MaterialProviders/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 ./submodules/MaterialProviders/scripts/go-release-automation.sh
88+
./submodules/MaterialProviders/scripts/go-release-automation.sh run_release_script ${{ github.event.inputs.project-name }} ${{ github.event.inputs.version }}
89+
90+
- name: print diff between development and release directory
91+
run: |
92+
DIFF_FILES=$(diff -qr $PROJECT_NAME/runtimes/go/ImplementationFromDafny-go releases/go/$RELEASE_DIR_NAME || true)
93+
echo $DIFF_FILES
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 }}

DynamoDbEncryption/Makefile

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,7 @@ SERVICE_DEPS_DynamoDbEncryptionTransforms := \
102102
DynamoDbEncryption/dafny/DynamoDbItemEncryptor
103103

104104
# Go
105-
# TODO-Go-ORR: Define the name later https://sim.amazon.com/issues/CrypTool-5444
106-
# This will probably get changes to */releases/go/* but I will bring this to the team later.
107-
GO_MODULE_NAME="github.com/aws/aws-database-encryption-sdk-dynamodb"
105+
GO_MODULE_NAME="github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk"
108106

109107
GO_DEPENDENCY_MODULE_NAMES := \
110108
--dependency-library-name=aws.cryptography.primitives=github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives \
@@ -114,10 +112,10 @@ GO_DEPENDENCY_MODULE_NAMES := \
114112
--dependency-library-name=aws.cryptography.keyStore=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \
115113
--dependency-library-name=sdk.com.amazonaws.dynamodb=github.com/aws/aws-sdk-go-v2/service/dynamodb \
116114
--dependency-library-name=sdk.com.amazonaws.kms=github.com/aws/aws-sdk-go-v2/service/kms \
117-
--dependency-library-name=aws.cryptography.dbEncryptionSdk.structuredEncryption=github.com/aws/aws-database-encryption-sdk-dynamodb \
118-
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb=github.com/aws/aws-database-encryption-sdk-dynamodb \
119-
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.itemEncryptor=github.com/aws/aws-database-encryption-sdk-dynamodb \
120-
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.transforms=github.com/aws/aws-database-encryption-sdk-dynamodb
115+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.structuredEncryption=github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk \
116+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb=github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk \
117+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.itemEncryptor=github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk \
118+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.transforms=github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk
121119

122120
TRANSLATION_RECORD_GO := \
123121
submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git b/DynamoDbEncryption/runtimes/net/Generated/DynamoDbEncryption/TypeConversion.cs a/DynamoDbEncryption/runtimes/net/Generated/DynamoDbEncryption/TypeConversion.cs
2+
index 82bbffe6a..87ae5c0e9 100644
3+
--- b/DynamoDbEncryption/runtimes/net/Generated/DynamoDbEncryption/TypeConversion.cs
4+
+++ a/DynamoDbEncryption/runtimes/net/Generated/DynamoDbEncryption/TypeConversion.cs
5+
@@ -7,10 +7,6 @@ namespace AWS.Cryptography.DbEncryptionSDK.DynamoDb
6+
{
7+
public static class TypeConversion
8+
{
9+
- private const string ISO8601DateFormat = "yyyy-MM-dd\\THH:mm:ss.fff\\Z";
10+
-
11+
- private const string ISO8601DateFormatNoMS = "yyyy-MM-dd\\THH:mm:ss\\Z";
12+
-
13+
public static AWS.Cryptography.DbEncryptionSDK.DynamoDb.AsSet FromDafny_N3_aws__N12_cryptography__N15_dbEncryptionSdk__N8_dynamoDb__S5_AsSet(software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.types._IAsSet value)
14+
{
15+
software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.types.AsSet concrete = (software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.types.AsSet)value; AWS.Cryptography.DbEncryptionSDK.DynamoDb.AsSet converted = new AWS.Cryptography.DbEncryptionSDK.DynamoDb.AsSet(); return converted;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git b/DynamoDbEncryption/runtimes/net/Generated/DynamoDbEncryptionTransforms/TypeConversion.cs a/DynamoDbEncryption/runtimes/net/Generated/DynamoDbEncryptionTransforms/TypeConversion.cs
2+
index 08aa59190..fa42225e6 100644
3+
--- b/DynamoDbEncryption/runtimes/net/Generated/DynamoDbEncryptionTransforms/TypeConversion.cs
4+
+++ a/DynamoDbEncryption/runtimes/net/Generated/DynamoDbEncryptionTransforms/TypeConversion.cs
5+
@@ -7,10 +7,6 @@ namespace AWS.Cryptography.DbEncryptionSDK.DynamoDb.Transforms
6+
{
7+
public static class TypeConversion
8+
{
9+
- private const string ISO8601DateFormat = "yyyy-MM-dd\\THH:mm:ss.fff\\Z";
10+
-
11+
- private const string ISO8601DateFormatNoMS = "yyyy-MM-dd\\THH:mm:ss\\Z";
12+
-
13+
public static AWS.Cryptography.DbEncryptionSDK.DynamoDb.AsSet FromDafny_N3_aws__N12_cryptography__N15_dbEncryptionSdk__N8_dynamoDb__S5_AsSet(software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.types._IAsSet value)
14+
{
15+
software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.types.AsSet concrete = (software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.types.AsSet)value; AWS.Cryptography.DbEncryptionSDK.DynamoDb.AsSet converted = new AWS.Cryptography.DbEncryptionSDK.DynamoDb.AsSet(); return converted;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git b/DynamoDbEncryption/runtimes/net/Generated/DynamoDbItemEncryptor/TypeConversion.cs a/DynamoDbEncryption/runtimes/net/Generated/DynamoDbItemEncryptor/TypeConversion.cs
2+
index b4a90d1b4..b5d5046a4 100644
3+
--- b/DynamoDbEncryption/runtimes/net/Generated/DynamoDbItemEncryptor/TypeConversion.cs
4+
+++ a/DynamoDbEncryption/runtimes/net/Generated/DynamoDbItemEncryptor/TypeConversion.cs
5+
@@ -7,10 +7,6 @@ namespace AWS.Cryptography.DbEncryptionSDK.DynamoDb.ItemEncryptor
6+
{
7+
public static class TypeConversion
8+
{
9+
- private const string ISO8601DateFormat = "yyyy-MM-dd\\THH:mm:ss.fff\\Z";
10+
-
11+
- private const string ISO8601DateFormatNoMS = "yyyy-MM-dd\\THH:mm:ss\\Z";
12+
-
13+
public static System.Collections.Generic.Dictionary<string, AWS.Cryptography.DbEncryptionSDK.StructuredEncryption.CryptoAction> FromDafny_N3_aws__N12_cryptography__N15_dbEncryptionSdk__N8_dynamoDb__S16_AttributeActions(Dafny.IMap<Dafny.ISequence<char>, software.amazon.cryptography.dbencryptionsdk.structuredencryption.internaldafny.types._ICryptoAction> value)
14+
{
15+
return value.ItemEnumerable.ToDictionary(pair => FromDafny_N3_aws__N12_cryptography__N15_dbEncryptionSdk__N8_dynamoDb__S16_AttributeActions__M3_key(pair.Car), pair => FromDafny_N3_aws__N12_cryptography__N15_dbEncryptionSdk__N8_dynamoDb__S16_AttributeActions__M5_value(pair.Cdr));

0 commit comments

Comments
 (0)