-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Ship StepFunction JSONata dependency by default #12110
Conversation
@@ -66,7 +66,7 @@ | |||
"--mount-source/--no-mount-source", | |||
is_flag=True, | |||
default=True, | |||
help="Mount source files from localstack, localstack-ext, and moto into the container.", | |||
help="Mount source files from localstack and localstack-ext. Use --local-packages for optional dependencies such as moto.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
12% increase is image size is substantial.
I'm confused by this line. If JPype works with JRE 21, why is JRE 11 required? |
I fully agree and therefore trying out everything to avoid it 🤞
I'm still experimenting 🚧 My worries are based on our experience with JPype, which only supports one running JVM instance. I'm trying to validate if that only applies to multiple JPype instances (which we knew before and blew up around the v4 release) or also in interaction with other JREs used by packages such as |
It seems that sharing the JRE 21 with |
@joe4dev I fully agree with @viren-nadkarni that the additional image size is very substantial and should definitely be avoided if possible. I would propose in the short term to upgrade the Java version just for this package. A global upgrade should be handled in a different PR solely focusing on that one upgrade. But I can see that you are already on this :) 🚀 @viren-nadkarni What would you propose in the long run? How should the default version be handled? I remember this was a discussion when the Java installer has been introduced (#11139). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Thanks a lot for jumping on this issue / making sure that we include all stepfunctions dependencies by default! The changes are looking great, thanks especially for taking care that the docker image size does not increase too much by unifying the java version used to be the same as for DynamoDB (which is also included by default). 💯
The changes are looking great!
Motivation
A support case raised the issue that StepFunctions failed with an SSL error when downloading the JVM 11 dependency used by the JSONata feature. This blocks usage of the JSONata feature for customers behind a proxy in the default configuration.
Alternatively, we need to provide comprehensive documentation on configuring proxies with all possible LocalStack URLs downloaded dynamically.
Changes
jpype-jsonata
to make the JSONata package installable via lpmRemove unnecessary Jackson dependency (side effect from copying the event-ruler installer). Tested locally with the LocalStack dev run script and the SFN testIt turns out that the Jackson dependencies are needed, but it was implicit and unclear why. Added a comment to clarify and re-added the dependencytest_base_map_from_input
Implications
Shipping
jpype-jsonata
increases the size of the LocalStack image by ~2.3MB (477MB+2.3MB => +0.4%) because of the following dependencies:JRE 11: 60MB. JPype depends on Java and the default JRE 11 is not re-using the same JRE 21 already shipped with dynamodb local (which depends on JRE 17+).We can save this 60MB if we share JRE with another dependency.@viren-nadkarni @alexrashed @dominikschubert What do you think? Should we unify the JRE versions or live with the +60MB?
self.java_version = "21"
(🚧 implicit alignment) or change the default version (bigger blast radius)~~