maestro
maestro copied to clipboard
Deprecate Rhino JavaScript engine
TL;DR
We will deprecate Rhino JavaScript engine, thus making GraalJS the only choice.
To prepare for this, explicitly set jsEngine: graaljs in front-matter of every flow that uses JavaScript:
appId: com.example.app
jsEngine: graaljs # <-- Opt-in to use GraalJS engine
---
- launchApp
- runScript: ./myScript.js
Plan
Let's do it in phases, to spare our users sudden breakages.
Phase 1 - communicate
- Communicate to community our intent to deprecate RhinoJS
- [ ] In our public Slack workspace, in the
#announcementschannel - [ ] In v1.39.0 release Medium post
- [ ] In v1.39.0 CHANGELOG.md
- [ ] In our JavaScript docs
- [ ] In our public Slack workspace, in the
Phase 2 - soft warning
- [ ] Add warning (in both CLI and Maestro Cloud) if GraalJS is not used to execute a flow (i.e.
jsEngine: graaljsis not set, orMAESTRO_USE_GRAALJSenv var is not set). - [ ] Ping the community once again about our intent to deprecate GraalJS
Phase 3 - change default
- [ ] Change default JS engine to GraalJS (in both CLI and Maestro Cloud)
- [ ] Display warning if RhinoJS is used (with
jsEngine: rhinojs)
Phase 4 - remove RhinoJS
- [ ] Remove
RhinoJScompletely from Maestro codebase - [ ] Display warning if
jsEngineorMAESTRO_USE_GRAALJSare set - say that "these config options don't have any effect anymore"
Notes
- GraalJS was implemented in PR #1147
- As we move ahead with phases, we will listen for user feedback and help them migrate to GraalJS, by fixing possible bugs in Maestro when GraalJS is used and improving docs.