question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Set up tooling to run decaffeinate on popular open source projects

See original GitHub issue

decaffeinate has now gotten stable enough that it can run on some open source projects (e.g. hubot and autoprefixer) with no errors, and in some cases it’s possible to then run all of the tests and have them all pass. It would be cool to have a collection of these projects, especially to use them as a stress test to spot regressions and work through the long tail of rare correctness issues.

Here’s roughly what I have in mind:

  • Make a new project, maybe decaffeinate-examples. It will effectively be a collection of scripts to run decaffeinate on various existing codebases, but it won’t actually contain all of those codebases.
  • Create a generic system for describing everything about a repo to automatically run decaffeinate and all tests. For example:
    • A config file with things like the clone URL for the repo.
    • A bulk-decaffeinate.config.js file with the proper options and excluded files.
    • Common config files that should be added, like .babelrc and maybe .eslintrc.
    • A patch to the codebase that changes the build system to use babel (if necessary).
    • A script to run all tests and report the result.
  • For each supported project, make a directory in the decaffeinate-examples repo with the right config files, patch, etc.
  • For each project, the tool can then clone the repo, do npm install, put the config files in place, apply the patch, run bulk-decaffeinate, run all tests, and report the result. I guess ideally it would also handle any cases where decaffeinate can’t handle everything yet, and will report what files can be converted and what tests pass.
  • Potentially we could have a github org with JS forks of all of these projects, and automatically run the latest decaffeinate on the latest code every week to make sure everything still works.

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:8 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
eventualbuddhacommented, Jan 29, 2017

Thus is great! Made my day. 😊

0reactions
alangpiercecommented, Feb 17, 2017

CI is set up and there’s a table on the README. There are a few additional improvements that could be made, but it’s probably safe to call this task done, and a task has been filed for each individual repo to get it working fully.

Read more comments on GitHub >

github_iconTop Results From Across the Web

decaffeinate - GitHub
Run decaffeinate and related operations on a whole codebase, or just part of one. ... A tool to automatically run decaffeinate on some...
Read more >
From 200K lines of CoffeeScript to zero: making decaffeinate ...
I started contributing to the decaffeinate open source project, became the primary ... you can run arbitrary code at class setup time.
Read more >
Tools for Managing Open Source Programs - Linux Foundation
This guide provides details and scenarios for how to get your open source tool collection started, including information about the most important tools...
Read more >
Explore 10 popular open source development tools - TechTarget
Take a quick look at these top 10 open source development tools, include Git, Jenkins, Chef, Ansible and Emacs.
Read more >
bulk-decaffeinate - npm
Start using bulk-decaffeinate in your project by running `npm i bulk-decaffeinate`. ... npm install -g bulk-decaffeinate decaffeinate eslint .
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found