-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4.0.0 - Simpler lambdas and the death of Template Haskell #81
Conversation
Sounds pretty awesome to me! Let me know if I can help with anything. |
Will look at the code a bit later, but some pointers to get you started on the documentation:
|
Wow, thanks @NickSeagull — this sounds fantastic! I'll also have a look later. I'm more than happy to contribute any work that needs doing and test stuff, just let me know. (Also it looks like you're using ormolu for formatting, excellent choice IMO) |
Thanks everyone for the comments, I'm gonna try pushing forward a minimal version of this for 4.0.0, I'd need some help with writing unit tests and integration too. |
Something we have discovered w.r.t. the custom runtime support: This has some implications that should be documented. Our needs are a bit more complicated than the norm - we have a single repo with multiple services and multiple libraries; simpler setups can probably put
We avoided problem No. 2 by using shell scripts to prepare our deployment packages. This means we still get the benefit of simpler and smaller endpoint executables. Sorry, that was a bit of a braindump; I hope that it helps. LMK if anything's unclear and I'll have another go at explaining. |
@endgame We have solved the relative build paths issue by building using Docker and passing in the root of the repo as the context. Our Makefiles look something like this. all:
@rm -rf ./build/*
DOCKER_BUILDKIT=1 docker build --file Dockerfile -t service ../../.
id=$$(docker create service); docker cp $$id:/root/output ./build; docker rm -v $$id |
Hey, just posting a message to say that I haven't abandoned this, just that I didn't have time due to life reasons. Will soon resume work on this :) |
I wonder if this is in progress? |
This is pretty much stalled right now, would be happy to help if someone wants to pick this up |
I see. Hopefully someone will pick this up :) |
Hi there, I am trying to implement multi-handler lambda and the template expansion does not allow it, as some modules are not exposed. In addition to that, while waiting for this pull request to be merged, I could work on a simpler change that would expose |
@fcracker79 can you open an issue for each of those topics so we can discuss over there? |
@NickSeagull thanks for your response. In addition to that, since I would like to proceed with my project and this pull request has been WIP for weeks, I was thinking of creating a new pull request with a simple change to export |
@fcracker79 I'm not actively working on this at this moment, so your PR would be well accepted. Regarding to #82 note that the issue is that the handler generator is hardcoded to look for the string |
Thanks @NickSeagull , currently it would be more than enough for my project to be able to copy and paste that generated code and then change all the hardcoded strings I want so that to implement multi handler entry point. |
Closing as #97 did this and more in a better way :) |
After the discussion at #78 , it is clear that the way to go is to have a simpler
runLambda
function that users can use in order to make better decisions regarding their applications.Apart from that, with the new additions for AWS SAM it makes even less sense to have a dynamic
dispatch
function. This autogenerated function not only was horrible for the users to debug, but the Template Haskell code that generated this function was horrible to maintain, and test, as well.The roadmap for the 4.0.0 version is:
runLambda
so it is easier to call from amain
function in an executable by the useramazonka
on cold starts, so users can write their code either in theAWST
monad,IO
or anything in betweenInviting @dnikolovv @lrworth @endgame for discussing this.