Skip to content

Segmentation fault, error: (CC::Analyzer::Engine::EngineFailure) engine eslint:eslint-2 failed with status 139 and stderr #111

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

Closed
shahulhameedp opened this issue Aug 1, 2016 · 17 comments

Comments

@shahulhameedp
Copy link

shahulhameedp commented Aug 1, 2016

I got this error after running CODECLIMATE_DEBUG=1 codeclimate analyze
Running the ESLint without codeclimate (eslint .) was successful in local without any issue.

I also tried with different formats and that also returning the error (CODECLIMATE_DEBUG=1 codeclimate analyze -f json, CODECLIMATE_DEBUG=1 codeclimate analyze -f html).

[DEBUG] eslint:eslint-2 engine output:
error: (CC::Analyzer::Engine::EngineFailure) engine eslint:eslint-2 failed with status 139 and stderr

ESLint is running with the parser.
Segmentation fault

[DEBUG] backtrace: /usr/src/app/lib/cc/analyzer/raising_container_listener.rb:23:in `finished'
    /usr/src/app/lib/cc/analyzer/composite_container_listener.rb:17:in `block in finished'
    /usr/src/app/lib/cc/analyzer/composite_container_listener.rb:17:in `each'
    /usr/src/app/lib/cc/analyzer/composite_container_listener.rb:17:in `finished'
    /usr/src/app/lib/cc/analyzer/container.rb:74:in `run'
    /usr/src/app/lib/cc/analyzer/engine.rb:52:in `run'
    /usr/src/app/lib/cc/analyzer/engines_runner.rb:60:in `block in run_engine'
    /usr/src/app/lib/cc/analyzer/formatters/plain_text_formatter.rb:74:in `with_spinner'
    /usr/src/app/lib/cc/analyzer/formatters/plain_text_formatter.rb:55:in `block in engine_running'
    /usr/src/app/lib/cc/analyzer/formatters/formatter.rb:18:in `engine_running'
    /usr/src/app/lib/cc/analyzer/formatters/plain_text_formatter.rb:54:in `engine_running'
    /usr/src/app/lib/cc/analyzer/engines_runner.rb:59:in `run_engine'
    /usr/src/app/lib/cc/analyzer/engines_runner.rb:23:in `block in run'
    /usr/src/app/lib/cc/analyzer/engines_runner.rb:23:in `each'
    /usr/src/app/lib/cc/analyzer/engines_runner.rb:23:in `run'
    /usr/src/app/lib/cc/cli/analyze.rb:20:in `block in run'
    /usr/src/app/lib/cc/cli/analyze.rb:18:in `chdir'
    /usr/src/app/lib/cc/cli/analyze.rb:18:in `run'
    /usr/src/app/lib/cc/cli/command.rb:24:in `execute'
    /usr/src/app/lib/cc/cli/runner.rb:22:in `run'
    /usr/src/app/lib/cc/cli/runner.rb:8:in `run'
    /usr/src/app/bin/codeclimate:6:in `<main>'
@wfleming
Copy link
Contributor

wfleming commented Aug 1, 2016

Hi @shahulhameedp,

Sorry for the trouble. In the past, we've seen segfaults caused by ESLint outputting an extremely high volume of issues on minified JS files. When you used the json formatter (CODECLIMATE_DEBUG=1 codeclimate analyze -f json), did you see issues output for any minified files? If so, we recommend excluding any minified files from analysis.

@shahulhameedp
Copy link
Author

shahulhameedp commented Aug 1, 2016

Hi @wfleming,

Thanks for replying.

I did remove the minified & libraries like this

    exclude_paths:
      - "spec/**/*"
      - "test/**/*"
      - "**/vendor/**/*"
      - "public/**/*"
      - "log/**/*"
      - "tmp/**/*"
      - "app/assets/node_modules/**/*"
      - "app/assets/**/node_modules/**/*"
      - "app/assets/lib/**/*"
      - "app/assets/cssimg/**/*"
      - "app/assets/images/**/*"
      - "app/assets/login/partials/**/*"
      - "app/assets/rover/css/*"
      - "app/assets/shared/lib/*"
      - "app/assets/rover/partials/**/*"
      - "app/assets/rover/rvLocales/**/*"
      - "app/assets/stylesheets/**/*"
      - "app/assets/type/**/*"
      - "app/assets/admin/adLocales/**/*"
      - "app/assets/admin/css/*"
      - "app/assets/admin/partials/**/*"

I didnt find any libraries being analyzed in a successful run. I have also added the .eslintignore to ensure that.

@shahulhameedp
Copy link
Author

Adding more info.

[DEBUG] eslint:eslint-2 engine output: {"type":"issue","categories":["Style"],"check_name":"indent","description":"Expected indentation of 4 space characters but found 0.","content":{"body":"# enforce consistent indentation (indent)\n\n(fixable) The `--fix` option on the [command line](../user-guide/command-line-interface#fix) automatically fixes problems reported by this rule.\n\nThere are several common guidelines which require specific indentation of nested blocks and statements, like:\n\n```js\nfunction hello(indentSize, type) {\n    if (indentSize === 4 && type !== 'tab') {\n        console.log('Each next indentation will increase on 4 spaces');\n    }\n}\n```\n\nThese are the most common scenarios recommended in different style guides:\n\n* Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix\n* Tabs: jQuery\n* Four spaces: Crockford\n\n## Rule Details\n\nThis rule enforces a consistent indentation style. The default style is `4 spaces`.\n\n## Options\n\nThis rule has a mixed option:\n\nFor example, for 2-space indentation:\n\n```json\n{\n    \"indent\": [\"error\", 2]\n}\n```\n\nOr for tabbed indentation:\n\n```json\n{\n    \"indent\": [\"error\", \"tab\"]\n}\n```\n\nExamples of **incorrect** code for this rule with the default options:\n\n```js\n/*eslint indent: \"error\"*/\n\nif (a) {\n  b=c;\n  function foo(d) {\n    e=f;\n  }\n}\n```\n\nExamples of **correct** code for this rule with the default options:\n\n```js\n/*eslint indent: \"error\"*/\n\nif (a) {\n    b=c;\n    function foo(d) {\n        e=f;\n    }\n}\n```\n\nThis rule has an object option:\n\n* `\"SwitchCase\"` (default: 0) enforces indentation level for `case` clauses in `switch` statements\n* `\"VariableDeclarator\"` (default: 1) enforces indentation level for `var` declarators; can also take an object to define separate rules for `var`, `let` and `const` declarations.\n\nLevel of indentation denotes the multiple of the indent specified. Example:\n\n* Indent of 4 spaces with `VariableDeclarator` set to `2` will indent the multi-line variable declarations with 8 spaces.\n* Indent of 2 spaces with `VariableDeclarator` set to `2` will indent the multi-line variable declarations with 4 spaces.\n* Indent of 2 spaces with `VariableDeclarator` set to `{\"var\": 2, \"let\": 2, \"const\": 3}` will indent the multi-line variable declarations with 4 spaces for `var` and `let`, 6 spaces for `const` statements.\n* Indent of tab with `VariableDeclarator` set to `2` will indent the multi-line variable declarations with 2 tabs.\n* Indent of 2 spaces with `SwitchCase` set to `0` will not indent `case` clauses with respect to `switch` statements.\n* Indent of 2 spaces with `SwitchCase` set to `2` will indent `case` clauses with 4 spaces with respect to `switch` statements.\n* Indent of tabs with `SwitchCase` set to `2` will indent `case` clauses with 2 tabs with respect to `switch` statements.\n\n### tab\n\nExamples of **incorrect** code for this rule with the `\"tab\"` option:\n\n```js\n/*eslint indent: [\"error\", \"tab\"]*/\n\nif (a) {\n     b=c;\nfunction foo(d) {\n           e=f;\n }\n}\n```\n\nExamples of **correct** code for this rule with the `\"tab\"` option:\n\n```js\n/*eslint indent: [\"error\", \"tab\"]*/\n\nif (a) {\n/*tab*/b=c;\n/*tab*/function foo(d) {\n/*tab*//*tab*/e=f;\n/*tab*/}\n}\n```\n\n### SwitchCase\n\nExamples of **incorrect** code for this rule with the `2, { \"SwitchCase\": 1 }` options:\n\n```js\n/*eslint indent: [\"error\", 2, { \"SwitchCase\": 1 }]*/\n\nswitch(a){\ncase \"a\":\n    break;\ncase \"b\":\n    break;\n}\n```\n\nExamples of **correct** code for this rule with the `2, { \"SwitchCase\": 1 }` option:\n\n```js\n/*eslint indent: [\"error\", 2, { \"SwitchCase\": 1 }]*/\n\nswitch(a){\n  case \"a\":\n    break;\n  case \"b\":\n    break;\n}\n```\n\n### VariableDeclarator\n\nExamples of **incorrect** code for this rule with the `2, { \"VariableDeclarator\": 1 }` options:\n\n```js\n/*eslint indent: [\"error\", 2, { \"VariableDeclarator\": 1 }]*/\n/*eslint-env es6*/\n\nvar a,\n    b,\n    c;\nlet a,\n    b,\n    c;\nconst a = 1,\n    b = 2,\n    c = 3;\
error: (JSON::ParserError) 757: unexpected token at '{"type":"issue","categories":["Style"],"check_name":"indent","description":"Expected indentation of 4 space characters but found 0.","content":{"body":"# enforce consistent indentation (indent)\n\n(fixable) The `--fix` option on the [command line](../user-guide/command-line-interface#fix) automatically fixes problems reported by this rule.\n\nThere are several common guidelines which require specific indentation of nested blocks and statements, like:\n\n```js\nfunction hello(indentSize, type) {\n    if (indentSize === 4 && type !== 'tab') {\n        console.log('Each next indentation will increase on 4 spaces');\n    }\n}\n```\n\nThese are the most common scenarios recommended in different style guides:\n\n* Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix\n* Tabs: jQuery\n* Four spaces: Crockford\n\n## Rule Details\n\nThis rule enforces a consistent indentation style. The default style is `4 spaces`.\n\n## Options\n\nThis rule has a mixed option:\n\nFor example, for 2-space indentation:\n\n```json\n{\n    \"indent\": [\"error\", 2]\n}\n```\n\nOr for tabbed indentation:\n\n```json\n{\n    \"indent\": [\"error\", \"tab\"]\n}\n```\n\nExamples of **incorrect** code for this rule with the default options:\n\n```js\n/*eslint indent: \"error\"*/\n\nif (a) {\n  b=c;\n  function foo(d) {\n    e=f;\n  }\n}\n```\n\nExamples of **correct** code for this rule with the default options:\n\n```js\n/*eslint indent: \"error\"*/\n\nif (a) {\n    b=c;\n    function foo(d) {\n        e=f;\n    }\n}\n```\n\nThis rule has an object option:\n\n* `\"SwitchCase\"` (default: 0) enforces indentation level for `case` clauses in `switch` statements\n* `\"VariableDeclarator\"` (default: 1) enforces indentation level for `var` declarators; can also take an object to define separate rules for `var`, `let` and `const` declarations.\n\nLevel of indentation denotes the multiple of the indent specified. Example:\n\n* Indent of 4 spaces with `VariableDeclarator` set to `2` will indent the multi-line variable declarations with 8 spaces.\n* Indent of 2 spaces with `VariableDeclarator` set to `2` will indent the multi-line variable declarations with 4 spaces.\n* Indent of 2 spaces with `VariableDeclarator` set to `{\"var\": 2, \"let\": 2, \"const\": 3}` will indent the multi-line variable declarations with 4 spaces for `var` and `let`, 6 spaces for `const` statements.\n* Indent of tab with `VariableDeclarator` set to `2` will indent the multi-line variable declarations with 2 tabs.\n* Indent of 2 spaces with `SwitchCase` set to `0` will not indent `case` clauses with respect to `switch` statements.\n* Indent of 2 spaces with `SwitchCase` set to `2` will indent `case` clauses with 4 spaces with respect to `switch` statements.\n* Indent of tabs with `SwitchCase` set to `2` will indent `case` clauses with 2 tabs with respect to `switch` statements.\n\n### tab\n\nExamples of **incorrect** code for this rule with the `\"tab\"` option:\n\n```js\n/*eslint indent: [\"error\", \"tab\"]*/\n\nif (a) {\n     b=c;\nfunction foo(d) {\n           e=f;\n }\n}\n```\n\nExamples of **correct** code for this rule with the `\"tab\"` option:\n\n```js\n/*eslint indent: [\"error\", \"tab\"]*/\n\nif (a) {\n/*tab*/b=c;\n/*tab*/function foo(d) {\n/*tab*//*tab*/e=f;\n/*tab*/}\n}\n```\n\n### SwitchCase\n\nExamples of **incorrect** code for this rule with the `2, { \"SwitchCase\": 1 }` options:\n\n```js\n/*eslint indent: [\"error\", 2, { \"SwitchCase\": 1 }]*/\n\nswitch(a){\ncase \"a\":\n    break;\ncase \"b\":\n    break;\n}\n```\n\nExamples of **correct** code for this rule with the `2, { \"SwitchCase\": 1 }` option:\n\n```js\n/*eslint indent: [\"error\", 2, { \"SwitchCase\": 1 }]*/\n\nswitch(a){\n  case \"a\":\n    break;\n  case \"b\":\n    break;\n}\n```\n\n### VariableDeclarator\n\nExamples of **incorrect** code for this rule with the `2, { \"VariableDeclarator\": 1 }` options:\n\n```js\n/*eslint indent: [\"error\", 2, { \"VariableDeclarator\": 1 }]*/\n/*eslint-env es6*/\n\nvar a,\n    b,\n    c;\nlet a,\n    b,\n    c;\nconst a = 1,\n    b = 2,\n    c = 3;\'
[DEBUG] backtrace: /usr/lib/ruby/gems/2.2.0/gems/json-1.8.3/lib/json/common.rb:155:in `parse'
    /usr/lib/ruby/gems/2.2.0/gems/json-1.8.3/lib/json/common.rb:155:in `parse'
    /usr/src/app/lib/cc/analyzer/issue.rb:50:in `parsed_output'
    /usr/src/app/lib/cc/analyzer/issue.rb:21:in `as_json'
    /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/json/encoding.rb:35:in `encode'
    /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/json/encoding.rb:22:in `encode'
    /usr/lib/ruby/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/core_ext/object/json.rb:37:in `to_json_with_active_support_encoder'
    /usr/src/app/lib/cc/analyzer/engine_output.rb:5:in `to_json'
    /usr/src/app/lib/cc/analyzer/engine.rb:46:in `block in run'
    /usr/src/app/lib/cc/analyzer/container.rb:115:in `call'
    /usr/src/app/lib/cc/analyzer/container.rb:115:in `block (2 levels) in read_stdout'
    /usr/src/app/lib/cc/analyzer/container.rb:112:in `each_line'
    /usr/src/app/lib/cc/analyzer/container.rb:112:in `block in read_stdout'
Starting analysis

cc @wfleming

@wfleming
Copy link
Contributor

wfleming commented Aug 2, 2016

Sorry for my delayed reply, @shahulhameedp. I haven't been able to reproduce this behavior locally, so haven't been able to determine any potential causes. Is there any chance the project you're seeing this on is open source so we can reproduce this?

@ABaldwinHunter
Copy link
Contributor

@shahulhameedp thanks for the report. I'm currently looking into this issue and will report back as soon as we have an update.

@wfleming Found a reproducible case here: https://github.com/ABaldwinHunter/strider/tree/abh-test

@ABaldwinHunter
Copy link
Contributor

@shahulhameedp: For the open source project I linked to, excluding a few third party directories fixed the issue, seconding @wfleming's explanation from earlier.

Alack I see you've already excluded several likely suspects.

While we continue to investigate this issue, here are some steps you could take locally to identify any directories or files that might happen to be hitting this weak point:

  1. Run

    codeclimate analyze -e eslint -f json >> results.json 
    

    to see the issue output produced and where the process dies. (The json formatter outputs issues as it goes so you can see progress.)

  2. Experiment with some additional excludes. You could also run eslint on targeted directories to see which one blows up:

    codeclimate analyze -e eslint app/assets
    

    Thanks for your feedback. Let me know how it goes!

@shahulhameedp
Copy link
Author

Hi @ABaldwinHunter,

Thank you for responding.

Regarding your first point, I ran the same and I got the same error (error: (CC::Analyzer::Engine::EngineFailure) engine eslint:eslint-2 failed with status 139 and stderr) and I've sent the log to your colleague named Jenna Smith.
I also tried against the HTML format by running the following command CODECLIMATE_DEBUG=1 codeclimate analyze -e eslint -f html and that also resulted in the same error.

Regarding your second point,
Yes, I tried for smaller directories and it was successful but as soon as I ran against a directory having 20 files or more it breaks.
But if I run eslint without codeclimate for our entire codebase it is completing successfully.

Thanks,
Shahul

@leftees
Copy link
Contributor

leftees commented Aug 11, 2016

Hey @shahulhameedp,

Thanks for all your time and extra help with tracking this down.

I see you mentioned that you sent the log for a command you ran locally to me, but I double checked and it doesn't look like I've received anything from you. Do you want to try sending that to me again?

Also, would you be able to run CODECLIMATE_DEBUG=1 codeclimate analyze -f json again locally and send me the full output you see? I double checked on the thread above and it looks like you may have only sent part of the output. Having the full output would be super helpful.

Thanks Shahul. I'll be ready to help out further once I hear back from you.

@jon-stayntouch
Copy link

Hi @leftees I have emailed you the full output on August 3. Please let me know if you need me to resend it.

@shahulhameedp
Copy link
Author

Hi @leftees

just for your information, @jon-stayntouch is my colleague and I was in that mail loop :)

Thanks,
Shahul

@leftees
Copy link
Contributor

leftees commented Aug 11, 2016

Hey @shahulhameedp @jon-stayntouch -

I'm sorry -- you're right. I do see you attached it in your response on 8/3.

I just took a look at it, and it looks like the process dies when trying to analyze your app/assets/admin/controllers/adAddCampaignCtrl.js file.

By any chance would you be able to share that file with us? If that's ok with you, I'd recommend sending it to me in the thread that we have going via email for privacy/security reasons, as this is an open source thread.

@ABaldwinHunter
Copy link
Contributor

@shahulhameedp Thanks for all of your patience here.

Happy to report that we just introduced a change to the eslint-2 engine channel to skip files that appear minified:
#114

We suspect that this change may permit your analysis to run.

You should see a description of the skipped files in the ESLint tab on the build page:
screen shot 2016-08-11 at 5 58 28 pm

Could you try running a new analysis with eslint-2 on .com or CLI ( CODECLIMATE_DEBUG=1 codeclimate analyze -e eslint) and let us know the result?

@shahulhameedp
Copy link
Author

@ABaldwinHunter @leftees I responded over the email, please review

gdiggs added a commit that referenced this issue Aug 15, 2016
Related to #111, a Segfault occurs when we hammer STDOUT with issues.
Switching from alpine to a debian-based image seems to behave better in
this scenario.
@pbrisbin
Copy link
Contributor

@gordondiggs do you believe this issue has been resolved? Do you think #99 is a duplicate and could also be closed?

@gdiggs
Copy link
Contributor

gdiggs commented Aug 17, 2016

@pbrisbin Yep. I know @shahulhameedp ran into another issue that @leftees is helping with separately, but this specific issue should be resolved

@pbrisbin
Copy link
Contributor

Thanks. I'm going to go ahead and close then.

@ABaldwinHunter
Copy link
Contributor

👍 thanks

pointlessone pushed a commit that referenced this issue Feb 23, 2017
Related to #111, a Segfault occurs when we hammer STDOUT with issues.
Switching from alpine to a debian-based image seems to behave better in
this scenario.
pointlessone pushed a commit that referenced this issue Feb 23, 2017
Related to #111, a Segfault occurs when we hammer STDOUT with issues.
Switching from alpine to a debian-based image seems to behave better in
this scenario.
pointlessone pushed a commit that referenced this issue Feb 23, 2017
Related to #111, a Segfault occurs when we hammer STDOUT with issues.
Switching from alpine to a debian-based image seems to behave better in
this scenario.
gdiggs pushed a commit that referenced this issue Feb 28, 2017
* Monkey patch eslint, instead of modifying it

- Add access to ESLint docs
- Add support for parametrized Docker builds, building different
  versions of the documentation
- Automatically detect which version of the docs we should be including

* Use eslint-2.4.0

Fixes:

    npm WARN eslint-config-airbnb@6.2.0 requires a peer of eslint@^2.4.0 but none was installed.
    npm WARN codeclimate-eslint@0.0.3 No license field.
    Cloning into 'eslint'...
    npm ERR! peer dep missing: eslint@^2.4.0, required by eslint-config-airbnb@6.2.0
    npm ERR! code 1
    error: pathspec 'vnull' did not match any file(s) known to git.

* Comment loadPackage override

Fixes:

    /usr/src/app/node_modules/meld/meld.js:67
                      if (typeof target[pointcut] === 'function') {
                                        ^

    TypeError: Cannot read property 'loadPackage' of undefined
        at meld (/usr/src/app/node_modules/meld/meld.js:67:23)
        at Function.around (/usr/src/app/node_modules/meld/meld.js:436:12)
        at patcher (/usr/src/app/lib/eslint-patch.js:21:8)
        at Object.<anonymous> (/usr/src/app/bin/eslint.js:11:44)
        at Module._compile (module.js:397:26)
        at Object.Module._extensions..js (module.js:404:10)
        at Module.load (module.js:343:32)
        at Function.Module._load (module.js:300:12)
        at Function.Module.runMain (module.js:429:10)
        at startup (node.js:139:18)

* Update babel-eslint to v6

Fixes #91

* Update dependencies

```
eslint@2.4.0               -> eslint@2.10.2
eslint-config-airbnb@6.0.2 -> eslint-config-airbnb@9.0.1
eslint-plugin-babel@2.1.1  -> eslint-config-airbnb@3.2.0
eslint-plugin-react@4.0.0  -> eslint-config-react@5.1.1
```

* Add standard style plugin and shared config

* Vendor additional Standard Style config packages (#102)

Many users using [Standard Style][] also use these configuration packages when
writing React/JSX.

[Standard Style]: https://github.com/feross/standard

This commit vendors the [eslint-config-standard-react] and
[eslint-config-standard-jsx] packages.

[eslint-config-standard-react]: https://github.com/feross/eslint-config-standard-react
[eslint-config-standard-jsx]: https://github.com/feross/eslint-config-standard-jsx

* Add eslint-config-google as available plugin

* Added supporto for ESLint plugin Flowtype

* Add support for eslint-config-angular

* Add task to update npm-shrinkwrap.json

* Update package.json (#112)

eslint-2: Vendor eslint-plugin-angular package

* add eslint-config-ember package

* Switch base image to avoid Segfault

Related to #111, a Segfault occurs when we hammer STDOUT with issues.
Switching from alpine to a debian-based image seems to behave better in
this scenario.

* Update babel-eslint & eslint-flowtype

We're a bit behind on these. Flowtype in particular has new rules we
weren't supporting.

Looks like we hadn't actually filled in the shrinkwrap file before now,
either, so that's done.

* Add --gecos "" to avoid adduser prompt

* add hapi config support

hapi eslint config is based on eslint-config-hapi
and eslint-plugin-hapi packages

* Add eslint-config-airbnb-base as a top-level dep

eslint-config-airbnb-base is a transitive dependency of
eslint-config-airbnb, but it is useful in its own right and should be
included at the top level such that it has proper support in the eslint
engine.

* Update circle to trigger build

* Upgrade to Node 6.5.0

* Update packages for ESLint 3

* eslint-3: Added ESLint plugins (#131)

* eslint-3: Added ESLint plugins

* Added appropriate eslint-plugin rule categorizations

* Shifted category mappings to individual JSON file

* Alphabetized ESLint plugin rule category mapping

* Bump eslint to 3.6.1 & eslint-plugin-import to 1.16.0 (#136)

The eslint bump was necessitated by `airbnb-config-base` wanting it.
There's also a 2.0.0 of `eslint-plugin-import` available, but attempting
to jump that far gave some peer package errors, so maybe we can't
support that yet.

* Support eslint-plugin-ember-suave. (#140)

* Allow ignoring warnings from configuration.

* Add CONTRIBUTING.md.
The file, for now, shows how to create a local engine image for testing.

* Add ignore_warnings to README

As requested in #144.

* Update README.md

* Update project README

- Update project/documentation links
- Use open source Code Climate badge
- Hard-wrap text
- Fix YAML identation

* Upgrade ESLint & some packages

* We're several point releases behind on ESLint
* After updating just that, I got some errors from shrinkwrap for two
  other packages we support, so I upgraded those too.

* Add support for eslint-plugin-react-intl plugin (#154)

* chore(packages): upgrade eslint

* docs(CONTRIBUTING): fix .codeclimate.yml example

* feat(config): add eslint-config-simplifield

* Switch to yarn for installing dependencies

This seems more intuitive to me today, and I hope will make it easier
for contributors who want to add or upgrade plugins.

Note: this is using nightly yarn, because there's a fix for Circle CI +
Docker + Yarn compatibility that is made but not officially released
yet. We can switch to stable yarn once 0.18.0 leaves pre-release. The
fix was PR 1837 on the Yarn repo.

* Upgrade eslint-config-google to 0.7.1

* Add eslint-plugin-meteor

Close #155

Just ran: `bin/yarn add eslint-plugin-meteor`

* Add eslint-plugin-immutable

`bin/yarn add eslint-plugin-immutable`

* Add eslint-plugin-import-order

`bin/yarn add eslint-plugin-import-order`

* Add eslint-plugin-jasmine

`bin/yarn add eslint-plugin-jasmine`

* Add eslint-config-semistandard

`bin/yarn add eslint-config-semistandard`

* Yarn add eslint-config-react-app
Yarn upgrade babel-eslint ^7.0.0
Yarn upgrade eslint-plugin-flowtype to ^2.21.0
Yarn upgrade eslint-plugin-import to ^2.0.1
Yarn upgrade eslint-plugin-jsx-a11y to ^2.2.3
Yarn upgrade eslint-plugin-react to ^6.4.1

* added eslint-plugin-xogroup plugin

* Upgrade eslint

```
make
bin/yarn upgrade eslint
```

We'd like to pull in a fix for a bug that prevents using this rule:
http://eslint.org/docs/2.0.0/rules/generator-star-spacing

* add support for eslint prettier plugin

* Add config upgrader

Automatically upgrade pre-ESLint 3 config to ESLint 3-compatible format.

* Fix null-config issue with upgrader

When upgrader encountered a project that had no .eslintrc* but had an
unrelated package.json that had no ESLint-related options in it an
exception was thrown.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants