ecspresso v3 cleans up the features deprecated in v2 and unifies the behavior that differed by command. Most users are not affected by the breaking changes. See docs/v2-v3.md for the details.
Upgrading from v2
- GitHub Action: the action has moved to kayac/ecspresso-action. Replace
uses: kayac/ecspresso@v2withuses: kayac/ecspresso-action@v3.kayac/ecspresso@v3is a deprecated wrapper that calls it. (#1120) required_version: a constraint that excludes v3 (e.g.>= 2.0.0, < 3) makes v3 fail to load the configuration. Update it when you upgrade. (#1139)
Breaking changes
- YAML configuration files must be valid YAML before template rendering. Quote a template that begins a scalar value. (#1023)
- Keys in definition files and the configuration file are case-sensitive. Files generated by
ecspresso initare not affected. (#1126) --wait-untildefaults todeployedin every command that waits for a service deployment, anddeployapplies it also when it creates a new service. (#1149)rollbackrequires an active deployment. Use--with-previous-task-definitionfor the v2 behavior. (#1047)run --count Nwaits for every started task, and fails if any of them fails. (#1117)- Commands that describe the service fail when
DescribeServiceRevisionsfails. The IAM principal needsecs:DescribeServiceRevisions. (#1107) - Plain numbers of durations in the configuration are interpreted as seconds, not nanoseconds. (#1028)
- Remove the deprecated
filter_commandconfiguration field. (#1024) - Remove the deprecated flags of
execandtasks. Use the subcommands instead. (#1025) - Remove
diff --unified/--no-unified. (#1027) verifyno longer validatesearlySuccessCriteria. (#1131)
New features
- Plugin functions (
tfstate,cloudformation,ssm,secretsmanager) in top-level configuration fields (#1023) - Pause lifecycle hooks: the
continuecommand and--wait-until=paused(#1047, #1070) gatewayConnectorsfor Amazon ECS Gateway (#1108)diff --exit-code(#1140)jsonrpcmode of theexternalplugin (#1041)verifyauthenticates to Amazon ECR Public (#1112)- A signed packslip manifest is attached to each release (#1105)
- The migration guides are available by the
docscommand (#1048, #1061)
Bug fixes
Library
- The Go module path is
github.com/kayac/ecspresso/v3(#1132) - Go 1.27 or later is required (#1111, #1126)
- Sentinel errors, unexported internals, and
ParseCLI(#1029) - Add
WithPluginInstance(#1031)
Also released in v2.8.x
These changes are included in v2.8.5 or later as well.
- Add
optional: trueto the tfstate plugin (#1017) - Add
App.HasDiff(#1019) - Support
--wait-until ecs:<lifecycle stage>fordeploy(#1065, #1067) - Support early success criteria for rolling deployments (#1083)
- Wait for the service deployment created late after
UpdateService(#1093) - Support
hookDetailsof deployment lifecycle hooks (#1125) - Update the base image to distroless static-debian13 (#1127)
- Fix diff of
availabilityZoneRebalancingomitted in the definition (#1130)
Other changes
- Remove dead
createdispatch case (#1026) - Embed the version in the source (#1022)
- Port fixes and dependency updates from v2 (#1021, #1094, #1095, #1110)
- Add an end-to-end test against AWS Emulator (#1141, #1142)
- Release and CI settings for the v3 branch (#1116, #1133, #1136, #1145)
Full Changelog: v2.8.9...v3.0.0