Skip to content

Conversation

@imabhichow
Copy link
Contributor

Issue #, if available:

Description of changes:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Check any applicable:

  • Were any files moved? Moving files changes their URL, which breaks all hyperlinks to the files.

@imabhichow imabhichow requested a review from a team as a code owner December 17, 2025 01:46
Comment on lines +15 to +20
# Portable sed for macOS and Linux
if [[ "$OSTYPE" == "darwin"* ]]; then
SED_CMD="sed -i ''"
else
SED_CMD="sed -i"
fi
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated the releaserc to run the commands in both operating systems, allowing us to see which files have been updated during the dry run, as well as the changelog.

.releaserc Outdated
[
"@semantic-release/exec",
{
"verifyReleaseCmd": "bash ./release-prepare.sh ${nextRelease.version}",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the point of also running the script as verifyRelease? prepare seems more accurate for what the script does.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It appears that when we run in dry-run mode, we will not be able to see which files are being updated. Above change allowed us to test file changes during dry-run mode.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe, I'll remove verifyRelease for this fix and cut a new PR after the release.

@kessplas kessplas merged commit d423d8d into main Dec 17, 2025
30 of 35 checks passed
aws-crypto-tools-ci-bot pushed a commit that referenced this pull request Dec 17, 2025
## [4.0.0](v3.6.0...v4.0.0) (2025-12-17)

### ⚠ BREAKING CHANGES

* The S3 Encryption Client now requires key committing algorithm suites by default.
See migration guide from 3.x to 4.x: [link](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide/java-v4-migration.html)

* `builder()` method has been removed; use `builderV4()` instead
* `builderV4()` now defaults to `commitmentPolicy` (REQUIRE_ENCRYPT_REQUIRE_DECRYPT) and `encryptionAlgorithm` (ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY)

* Updated expectations for custom implementations of the `CryptographicMaterialsManager` interface.
  * Custom implementations of the interface's `getEncryptionMaterials` method MUST set the `AlgorithmSuite` field on the returned `EncryptionMaterials`.
    * The provided `DefaultCryptoMaterialsManager`'s `getEncryptionMaterials` method sets this field from the `AlgorithmSuite` provided in the `EncryptionMaterialsRequest`.
    * If the custom implementation wraps the provided `DefaultCryptoMaterialsManager.getEncryptionMaterials` method, it's likely that no code updates are required. The provided logic has been updated with this change.
  * Custom implementations of the interface's `decryptMaterials` method MUST set the `KeyCommitment` field on the returned `DecryptionMaterials`.
    * The provided `DefaultCryptoMaterialsManager`'s `decryptMaterials` method sets this field from the `KeyCommitment` provided in the `DecryptMaterialsRequest`.
    * If the custom implementation wraps the provided `DefaultCryptoMaterialsManager.decryptMaterials` method, it's likely that no code updates are required. The provided logic has been updated with this change.

* Updated expectations for custom implementations of the `Keyring` interface.
  * Custom implementations of the interface's `onDecrypt` method MUST preserve the `KeyCommitment` field on the returned `DecryptionMaterials`.
    * The provided `S3Keyring`'s `onDecrypt` method (base class for all keyrings including `KmsKeyring`) preserves this field through the builder pattern when returning updated materials.
    * If the custom implementation wraps the provided `S3Keyring.onDecrypt` method or uses the builder pattern to return materials, it's likely that no code updates are required. The provided logic has been updated with this change.

### Features

* Updates to the S3 Encryption Client ([#491](#491)) ([9d4523e](9d4523e))

### Maintenance

* update releaserc ([#492](#492)) ([d423d8d](d423d8d))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants