Skip to content

Simplify configuration #17

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

Merged
merged 16 commits into from
Jun 14, 2017
Merged

Simplify configuration #17

merged 16 commits into from
Jun 14, 2017

Conversation

michalsnik
Copy link
Member

@michalsnik michalsnik commented Jun 3, 2017

General purpose of this PR is to clean and simplify current code base to get a solid ground for upcoming v3.0.0-beta release.

Things, that I'm working on in this PR:

  • Separate and simplify configs (base + recommended in dedicated directory)
  • Improve rules' resolver
  • Update package.json
  • Update Readme
  • Update update-rules script
  • Replace TravisCI with CircleCI
  • Add jsx-uses-vars rule, that was previously available in eslint-plugin-vue (+ documentation and tests)

I intentionally removed mysticatea's config from .eslintrc so that we can make a deliberate decision about preferred styleguide in order to make this plugin's style match other internal projects. I think we should use something more general, like airbnb-base. But I'd like to hear your thoughts as well @chrisvfritz @mysticatea @yyx990803

@michalsnik michalsnik requested a review from mysticatea June 3, 2017 14:18
@michalsnik
Copy link
Member Author

Could you please review this PR in your spare time @mysticatea?

Copy link
Member

@mysticatea mysticatea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this PR!
Mostly looks good to me. I write some points.

.eslintrc.js Outdated
mocha: true,
},
extends: [
"plugin:eslint-plugin/recommended",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vue seems to use plugin:vue-libs/recommended: .eslintrc of vuejs/vue. I think good to follow it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, true. This might be a good idea 👍

override:
- npm test
- nvm use 6 && npm test
- nvm use 7 && npm test
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think good if we use 8 instead of 7.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can add 8 additionally. These tests run pretty fast and we'll be sure it's actually bulletproof.

config/base.js Outdated
},

env: {
browser: true,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally, I dislike browser environment because this environment includes many global variables which has general names: name, length, status, event, open, parent, etc.... It will possibly cause the problems about no-undef / no-unused-vars / no-shadow rules.

So I prefer that it defines fewer global variables than browser environment manually (then I use window.name instead of name) (browser.js is my config for frontend. This defines classes and whitelisted variables of browser environment).

However, I know I'm in the minority.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd keep this simple 'browser' setting for now, at least for v3.0.0-beta to get a better picture about possible issues with this during feedback gathering period. WDYT @mysticatea ?

@michalsnik
Copy link
Member Author

michalsnik commented Jun 12, 2017

I addressed your comments @mysticatea. If it's ok I can merge this and release v3.0.0-beta finally.

@mysticatea
Copy link
Member

mysticatea commented Jun 12, 2017

Oh, .eslintrc without extensions has been deprecated. Please use an extension.

package.json Outdated
},
"engines": {
"node": ">=4"
},
"peerDependencies": {
"eslint": "^3.18.0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Today, ESLint 4.0.0 has been released. I'd like to include 4.x in peerDependencies to avoid installation failure.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. peerDependencies updated

@michalsnik
Copy link
Member Author

I also added package-lock.json generated by npm 5.

@michalsnik
Copy link
Member Author

@mysticatea Please approve if you agree with my latest updates and I'll release beta. I removed recommendations for html-end-tags and no-duplicate-attributes because of those slight problems with parser we were discussing. We'll mark them recommended as soon as your new parser fixes mentioned issues.

Copy link
Member

@mysticatea mysticatea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you so much!

@michalsnik michalsnik merged commit 047b229 into dev Jun 14, 2017
@michalsnik michalsnik deleted the cleaning branch June 14, 2017 07:28
doug-wade pushed a commit to doug-wade/eslint-plugin-vue that referenced this pull request Apr 17, 2022
…d-contributing-templates

ASA-194: Add templates for bugs, feature requests and PRs
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

Successfully merging this pull request may close these issues.

2 participants