Fixed issue where an unflattened dependency tree in node_modules could result in Node.js issuing a MaxListenersExceededWarning
[11.0.0 - 11.0.3] 2024-02-05
Architect 11 (Cadborosaurus) is now fully based on aws-lite, and no longer makes use of the AWS SDK or CLI. This dramatically decreases installation time, while massively increasing speed in all AWS operations. Read more about this change at https://arc.codes.
Added
Added experimental --fast flag, which ships project to AWS without waiting around to determine if the deployment completed successfully. Use with care!
Improved cross-platform deployment of native modules to arm64 Lambda (the new default in Architect 11)
This means any non-arm64 and/or non-Linux machine will now best-effort deploy to arm64 Linux; users are highly encouraged to validate application functionality that relies on native modules
This is accomplished by adding the npm --cpu + --os flags, supported by npm v10.1+ – this version of npm is bundled with Node.js 18.19+ or 20.7+
If you are using pnpm, Yarn, or a version of npm < v10.1, you must continue to deploy Lambdas to arm64 as before
Changed
Architect no longer requires or makes use of the AWS SDK and AWS CLI
As such, installation, setup, and deployments are all significantly faster
Breaking change: Sandbox no longer includes aws-sdk + @aws-sdk/* as dependencies
Projects that rely on the AWS SDK should install those dependencies to their project directly
Breaking change: nodejs20.x and python3.12 are now the default Node.js and Python Lambda runtimes, respectively
The Node.js version is not itself a breaking change, however the version of AWS SDK available to your code will change from v2 to v3 – this is entirely an AWS decision, which we are managing as best we can (by way of offering aws-lite as an alternative)
For folks who need to continue using AWS SDK v2, simply set @aws runtime nodejs16.x in your project manifest
However, be warned: nodejs16.x (and AWS SDK v2 in Lambda) are scheduled for deprecation in a few months
Breaking change: arm64 is now the default Lambda architecture
This change only impacts projects that utilize native modules or Lambda layers with binaries; projects that make use of regular Node.js packages will not be impacted by this change
Breaking change: removed support for Node.js 14.x (now EOL, and no longer available to created in AWS Lambda)
Architect no longer requires the AWS CLI, nor Python. So if you'd like to remove either or both, feel free!
Deploy no longer writes sam.json + sam.yaml files upon each deploy
However, if you do want to see the sam.json being deployed, use the --dry-run or --debug|-d CLI flags
AWS Lambda no longer supports Go-specific runtimes; as such, go and golang runtime aliases are no longer available
Added Node.js 20.x to test matrix
Fixed
Fixed issue where ignoreDependencies would not work if only a single dependency was ignored; thanks @andybee!
Fixed issues surrounding correctly toggling @cdn (experimental + undocumented) as enabled or disabled
Potentially breaking fix: resolved mismatch between RouteSelectionExpression in deployed Architect apps vs. locally in Sandbox
The RouteSelectionExpression is now $request.body.action, meaning WebSocket code running locally can now be the same as production code, like so: ws.send(JSON.stringify({ action: 'custom-endpoint', ... }))
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps @architect/architect from 11.0.2 to 11.0.4.
Changelog
Sourced from
@architect/architect
's changelog.... (truncated)
Commits
9077c82
11.0.433350b8
Update deps and changelog001d522
11.0.3e33ae82
Update deps and changelogDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show