Releases: FieryCod/holy-lambda
v0.6.6
See migration guide
- [bb layer] Upgrade Babashka to v0.7.4
- [holy-lambda] Simplify default & async retrievers
- [bb tasks] Fix tasks
hl:doctor
command - [holy-lambda] Add images of GraalVM 22.2.0
- [docs] Update docs
- [babashka] Fix typo in babashka tutorial
- [holy-lambda] Fix 1 arity of
#'hr/status
v0.6.5
See migration guide
- [bb layer] Update babashka runtime to version
0.6.5
. Babashka version included0.7.0
. - [holy-lambda] Bump jsonista to version
0.3.5
- [bb tasks] Update tasks debug info
- [holy-lambda-template] Bump HL version
v0.6.4
v0.6.3
0.6.3
See migration guide
- [bb layer] Update babashka runtime to version
0.6.3
. Put in ServerlessRepo's README.md all necessary information regarding the layer. - [bb layer] Update babashka to version
0.6.8
. - [holy-lambda] Remove
:envs
property from:ctx
to prevent security issues. UseSystem/getenv
instead! - [holy-lambda] Add analytics that sends the version of the framework + Java/Babashka version to AWS. Users can disable this option by setting
disable-analytics?=true
inh/entrypoint
. - [docs] Update documentation
v0.6.2
0.6.2
See migration guide
-
[bb tasks] Introduce
bb hl:update-bb-tasks
as an automation for updating to stable version of tasks. -
[bb layer] Update babashka runtime to version
0.6.2
. Runtime does not precalculates the classpath. Cold start should be lower now! :) -
[bb layer] Use
bb.edn
for specifying dependencies for babashka code instead of relying ondeps.edn
. -
[bb layer] Remove
babashka-shim
from the runtime, remove direct dependency onholy-lambda
.
Users should put the newestholy-lambda
version inbb.edn
and usebb hl:babashka:sync
to download the dependencies.
Pack dependencies in the layer and reference it's ARN intemplate.yml
.Example
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > Example basic lambda using `holy-lambda` micro library Parameters: Runtime: Type: String Default: provided Timeout: Type: Number Default: 40 MemorySize: Type: Number Default: 128 HL_ENTRYPOINT: Type: String Default: com.company.example-lambda.core Globals: Function: Runtime: !Ref Runtime Timeout: !Ref Timeout MemorySize: !Ref MemorySize Environment: Variables: HL_ENTRYPOINT: !Ref HL_ENTRYPOINT Resources: BabashkaDepsLayer: Type: AWS::Serverless::LayerVersion Properties: LayerName: BabashkaDepsLayer ContentUri: ./.holy-lambda/bb-clj-deps ExampleLambdaFunction: Type: AWS::Serverless::Function Properties: FunctionName: ExampleLambdaFunction Handler: com.company.example-lambda.core.ExampleLambda CodeUri: src Events: HelloEvent: Type: HttpApi Properties: ApiId: !Ref ServerlessHttpApi Path: / Method: GET Layers: - <HERE_PUT_PHISICAL_ID> - !Ref BabashkaDepsLayer ...
v0.6.1
v0.6.0
0.6.0
-
[holy-lambda] Improved performance of the runtime (benchmarks are broken unfortunately, since my network is not reliable)
-
[bb layer] Renamed the
Entrypoint
environment variable for Babashka runtimes toHL_ENTRYPOINT
. -
[bb tasks] Rename
hl:sync
tohl:babashka:sync
. Sync downloads onlypods
and Babashka deps. Dependencies for babashka should be specified in bb.edn. -
[bb tasks] Remove
:mvn/local-repo
fromdeps.edn
. Dependencies for Clojure & Native backend are not downloaded to a local directory. -
[bb tasks] Project compilation happens without Docker now.
-
[bb tasks] HL reverts allowance for not specifying the backend name.
-
[bb tasks] Rename
:runtime
inbb.edn
to:backend
to match the documentation. -
[bb tasks] Remove
:entrypoint
and:clj-alias
support. Use:compile-cmd
in:build
instead! -
[docker] Holy Lambda images are now available at ghcr. Please use the new
ghcr.io/fierycod/holy-lambda-builder
instead offierycod/graalvm-native-image
. Images don't includeaws
,aws sam
, andclojure
. -
[holy-lambda] Fix
application/json
content type detection -
[docker] Holy Lambda images are now available at ghcr. Please use the new
ghcr.io/fierycod/holy-lambda-builder
instead offierycod/graalvm-native-image
. Images don't includeaws
,aws sam
, andclojure
.
See here(https://github.com/FieryCod/holy-lambda/pkgs/container/holy-lambda-builder/versions) -
[docker] Holy Lambda now supports aarch64 for all of the runtimes and is now compatible with MacOS M1 :)
-
[docs] Documentation has been updated to match the newest version
-
[babashka] Old babashka artifact has been deprecated.
Use one of:
-
[babashka layer] Bump babashka to 0.6.2
-
[graalvm] Holy Lambda distributes configuration for GraalVM native-image to let the users use HL without
bb tasks
. -
[runtime] Fix
:awsRequestId
ctx property to point to runtime:invocation-id
. -
[native:conf] Remove warning:
WARNING: Could not resolve fierycod.holy_lambda.core$entrypoint$fn__6578 for reflection configuration. Reason: java.lang.ClassNotFoundException: fierycod.holy_lambda.core$entrypoint$fn__6578.
v0.5.0
Rationale
#68
- [bb tasks] Remove some of the bb tasks:
- bucket:create
- bucket:remove
- stack:invoke
- stack:api
- stack:pack
- stack:deploy
- stack:describe
- stack:destroy
- stack:logs
- [holy-lambda] Renamed tasks:
- bb hl:sync (renamed from bb stack:sync)
- bb hl:compile (renamed from bb stack:compile)
- bb hl:native:conf (renamed from bb native:conf)
- bb hl:native:executable (renamed from bb native:executable)
- bb hl:clean (renamed from bb stack:purge)
- bb hl:version (renamed from bb stack:version)
- bb hl:doctor (renamed from bb stack:doctor)
- [holy-lambda] Performance improvements
- [holy-lambda] Remove deflambda macro, merge mixins. Use plain
defn
for lambda definition.
Holy Lambda exposes a single macro from the core namespaceentrypoint
. native-runtime namespace has been renamed to
custom-runtime. custom-runtime namespace is internal, not for public consumption. - [holy-lambda] Remove interceptors support. For API's user can easily integrate Holy Lambda with ring or pedestal. The adapters for the mentioned libraries will be published soon.
- [docker] New compatible
fierycod/graalvm-native-image
images:- :ce - GraalVM CE 21.2.0
- :dev - GraalVM DEV 21.3.0-dev-20210910_2147
- [bb layer] Layer version matches the holy-lambda version. New release 0.5.1 includes the latest babashka 0.6.1. Layer should be deployed via serverless repository deploy button:
https://serverlessrepo.aws.amazon.com/applications/eu-central-1/443526418261/holy-lambda-babashka-runtime - Fix Clojure tools warnings, about not existing
.jar
file - Don't re-download HL tasks in CI environments
- New documentation
v0.2.3 Fixes & full support for arbitrary responses
-
[bb tasks] Add support for passing arguments to commands in
--
style.Example
bb stack:invoke --validation-fn '(fn [response] true)'
-
[ci] Run integration tests on all supported GraalVM images
-
[bb tasks] Add experimental support for setting some of HL options via AWS variables. This should ease pain of using HL with AWS vault.
-
[docker] Add
fierycod/graalvm-native-image:dev
which targets GraalVM CE dev releases :) -
[docker] Add zip program for CI based deployments where tasks are run in Docker context
-
[bb tasks] Remove clj-kondo from the required commands
-
[holy-lambda] Interceptors should not throw when response is byte encoded
-
[holy-lambda] Don't use -H:+AllowIncompleteClasspath on behalf of user
-
[holy-lambda] Use
DISABLE_SIGNAL_HANDLERS="true"
in bootstrap file -
[holy-lambda] Allow users to support arbitrary response if the response is byte encoded. Opens a way to support transit and other content-types.
-
[holy-lambda] Properly parse response. Add support for AWS Step Functions.
-
[holy-lambda] Use config-merge-dir instead of config-output-dir when executing bb native:conf. User should be allowed to specify custom configuration in
reflect-config.json
,resource-config.json
that should not be overriden. -
[holy-lambda] Add support for sending a base64 encoded images from HL
hr/png-image
v0.2.2 Support CI deployments. Stabilize HL
-
[docs] Add documentation about using GraalVM-EE
-
[examples] Add basic
cdk
example -
[holy-lambda]
System/exit 1
when handler is not found duringnative:conf
-
[bb tasks] Don't remove empty
.aws
folder since tasks might not have proper permissions set, bind~/.aws
folder at/.aws
path instead. -
[bb tasks] Add support for CI deployments.
-
[bb tasks] Add support for docker
:network
option -
[docs] Add FAQ, CI support documents
-
[bb tasks] Fix using docker in CI environment
-
[bb tasks] Remove broken
stack:lint
command. Use plainclj-kondo
instead -
[bb layer] Add a type hint & fix bb layer. Users should update to :runtime:version 0.1.2
-
[CI] Add full test suite for basic lambda examples
-
[bb tasks] Add support for multi-environment deployments
-
[bb tasks] Add
:validation-fn
forbb stack:invoke
command:bb stack:invoke :validation-fn '(fn [{:keys [body headers statusCode]}] (= body "Hello world"))'