Skip to content

Bring couch-chakra into Apache CouchDB #1334

@wohali

Description

@wohali

@dmunch has done great work with his dmunch/chakra-core project. (Thanks, Daniel!) At present, it is the best option forward to replace couchjs and our dependence on the aging SpiderMonkey 1.8.5 library.

To complete the work, we must:

  1. Perform the standard CLA / IP clearance process with @dmunch (as he is the only contributor to couch-chakra).
  2. Import the repo, including all outstanding issues
  3. Update the configure/build process to allow optional inclusion of the new viewserver.
  4. Update the documentation to include reference to the new experimental viewserver.
  5. I recommend we remove mention of the abandoned V8 viewserver.

Once this is done, we can add tickets to cover the remaining things couch-chakra doesn't do. Drawing from the repo's README:

1. NO for each, so you'll have to patch views.js before running the query server tests
1. NO cURL bindings
1. NO -T command line flag for test suite specific functions
1. NO -u command line argument
1. NO --no-eval command line argument

1 I think is only for the Ruby-based query server tester, but need to confirm.

We can dispense with 2, 3 and 4 above if we can complete migration of our JS test suite to elixir (see https://github.com/apache/couchdb/tree/elixir-suite). If we can't do this quickly, an option would be to build old-style SM 1.8.5 couchjs just as a test harness (meaning only CouchDB devs suffer with SM 1.8.5 for just a little longer!)

5 is critical for sandboxing. We should add eval to the sandbox blacklist (I don't know if the evalcx definition is sufficient) and support --eval as a CLI flag for people who think they know what they're doing (or, our test suite). Or, we could put our feet down and say "no more eval() in chakrajs" once the Elixir test suite is done.

Thanks to #1333 for reminding me to bring this ticket into GitHub issues from JIRA/other places.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions