maestro icon indicating copy to clipboard operation
maestro copied to clipboard

Deprecate Rhino JavaScript engine

Open bartekpacia opened this issue 1 year ago • 2 comments

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 #announcements channel
    • [ ] In v1.39.0 release Medium post
    • [ ] In v1.39.0 CHANGELOG.md
    • [ ] In our JavaScript docs

Phase 2 - soft warning

  • [ ] Add warning (in both CLI and Maestro Cloud) if GraalJS is not used to execute a flow (i.e. jsEngine: graaljs is not set, or MAESTRO_USE_GRAALJS env 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 RhinoJS completely from Maestro codebase
  • [ ] Display warning if jsEngine or MAESTRO_USE_GRAALJS are 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.

bartekpacia avatar Sep 12 '24 14:09 bartekpacia