-
Notifications
You must be signed in to change notification settings - Fork 3
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
RFC: support for pluggable evaluators #25
Conversation
On the topic of the change: This seems a reasonable change - I had considered that using a full javascript interpreter may make sense in some use cases and that some of the todo items on the roadmap (#16) might be pushing things too far with jsonnet (state, non-deterministic native functions). I've stuck with jsonnet because I have a soft spot for it (it made my early k8s life much easier allowing me to avoid yaml), but I do recognise its limitations. Turning jig into a more generic dynamic grpc dispatcher is possibly a more valuable tool so I think I'm good with this. I may need to rethink some of my plans in this context though to see if they still make sense. Some high-level comments on this PR, noting them for current/future consideration:
Some specific comments on this PR:
Thanks for your contribution. |
I did wonder about this - there's structure inside the blob already, but it's implicit, so it would be great if it had a concrete type.
Sounds good, will do 👍 |
One other thought I had was that at some point we might want to extend the "Evaluator" interface to also support creating "bones", as the bones are currently tied to Jsonnet. I think that's okay to do later though, unless you disagree. |
Yeah, bones changes can wait. Current bones output is almost javascript so code could be reused for that. |
Support for pluggable evaluator, so that we can run jig with other scripting languages such as JS. Introduce Evaluator interface assuming we will add methods for scaffolding with "jig bones". This PR is a continuation of @alecthomas ' RFC: #25 Pull-Request: #28
Most of the ideas in this PR where merged in #28 - so I will close it for now. |
The default is Jsonnet, but it could be a JS interpreter, Starlark, raw JSON, whatever.