Releases: xojs/xo
v0.25.0
Breaking
- Require Node.js 8 8a213ef
- Upgrade to ESLint 6 698b043
- Enforce using the
.jsonextension for JSON files in imports 7e56730
New rules
- Add
prefer-named-capture-grouprule (for Node.js >=10 target) 21e7b57 - Add
default-param-lastrule - Add
prefer-regex-literalsrule - Add
no-import-assignrule - Add
unicorn/expiring-todo-commentsrule - Add
unicorn/no-nested-ternaryrule - Add
unicorn/prefer-reflect-applyrule - Add
unicorn/prefer-string-slicerule - Add
unicorn/prefer-datasetrule - Add
unicorn/no-for-looprule - Add
unicorn/no-zero-fractionsrule - Add
unicorn/prefer-includesrule - Add
unicorn/prefer-text-contentrule - Add
unicorn/prefer-node-removerule - Add
unicorn/prefer-event-keyrule - Add
unicorn/prefer-flat-maprule - Add
node/prefer-promises/fsrule a3d74a6 - Add
node/prefer-promises/dnsrule 8f8fc94
Enhancements
v0.24.0
Highlights
- You can now click/Command-click the rule IDs in the output to open the rule's docs. Preview. (Only in supported terminals) sindresorhus/eslint-formatter-pretty@7606f98
- Move default ESLint cache to
node_modules/.cache/xo. (#351) d1fd3e1 - Support parsing ES2019 61f9582
- Drop support for Babel 6 in the
import/no-unassigned-importrule dd2c015
New rules
padding-line-between-statementsno-useless-catchunicorn/prefer-query-selectorunicorn/prefer-node-appendunicorn/no-unreadable-array-destructuringunicorn/no-console-spaceseslint-comments/disable-enable-paireslint-comments/no-aggregating-enableeslint-comments/no-duplicate-disableeslint-comments/no-unused-disableeslint-comments/no-unused-enablenode/prefer-global/buffernode/prefer-global/consolenode/prefer-global/processnode/prefer-global/text-decoder(When targeting Node.js 11)node/prefer-global/text-encoder(When targeting Node.js 11)node/prefer-global/url-search-params(When targeting Node.js 10)node/prefer-global/url(When targeting Node.js 10)
All changes
v0.23.0
Highlights
- In v0.22.0, we added support for
.tsand.tsxextensions by default. This caused a lot of problems for non-TS projects, so it has been reverted pending a better solution. - The
quotesrule is now set to disallow using template literals when you're not using any interpolation. xojs/eslint-config-xo@ea693f3 - Removed the
no-use-before-definerule. It has too many false-positives. xojs/eslint-config-xo@1257597
New rules
require-awaitunicorn/prefer-exponentiation-operatorunicorn/catch-error-name(See this thread if you're wondering whyerroris preferred overerr) (Sorry about the churn, but this is an important milestone towards more readable code. Code is written once but read many times. We should optimize for the latter.)
All changes
v0.22.0
Highlights
- Upgraded to ESLint 5.
- Removed some patterns from the list of default ignores. They were too opinionated. 00d6b7c 8e4f435
fixture{-*,}.{js,jsx}fixture{s,}/**{test,tests,spec,__tests__}/fixture{s,}/****/bundle.js
- Added support for TypeScript and documented usage with Flow. 957b0d9
- Now respects
nodeVersionoption set in anoverrideblock. 98dee9a - Fixed the CLI's
--spaceoption parsing. f76c901
New rules
no-misleading-character-classrequire-atomic-updatesno-async-promise-executorava/no-import-test-file
All changes
v0.21.1
v0.21.0
Highlights
- Dropped support for Node.js 4 and 5 as they reached end of life. Node.js 6 is the minimum required version.
- Upgrade to Prettier 1.12.1.
- The default value for
trailingCommaPrettier option is nownone. f67ff58 - Disable unicorn/number-literal-case when using Prettier to avoid conflict. 4fd6991
- Ignore
prettier-ignorecomments in capitalized-comments rule. xojs/eslint-config-xo@6e417ff - Fix missed detection of incorrect indentation with indent rule. xojs/eslint-config-xo@145993e
- Allow named function in prefer-arrow-callback. xojs/eslint-config-xo@bda02cb
New rules
- valid-jsdoc
- promise/no-new-statics
- promise/valid-params
- import/no-self-import
- import/no-useless-path-segments
Removed rules
v0.20.0
This release is way overdue, so glad to finally have it out! It includes a major ESLint upgrade, huge performance improvements, Prettier support, lots of new rules, and bug fixes.
The project was recently moved to a GitHub organization, and we got a new team member, Pierre Vanduynslager ✨
We now also have configs for TypeScript (using tslint) and CSS & Sass (using stylelint). And don't forget, we already have a config for React.
Many of the new rules in this release are from the eslint-plugin-unicorn plugin, which could use some contributions.
Highlights
- Upgraded to ESLint 4. a11e288
- Added optional Prettier support. fd89175
- Improved performance. 552cbb1
- Now toggles rules based on the
enginesfield inpackage.json. 0d18368 - Disabled
linebreak-stylerule on Windows. xojs/eslint-config-xo@3f81796 - Made the
spaced-commentrule more lenient. xojs/eslint-config-xo@e4f1f36 - Now allows
_as argument name in theno-unused-varsrule. xojs/eslint-config-xo@dda366b - The
--openflag now opens errors first and not warnings. 6f6a606 - Removed deprecated
--compactCLI flag. 652a6e5 - Excluded
babel-registerandbabel-polyfillfrom theno-unassigned-importrule. 70d6ab4 - Sets
ecmaVersionto2018. 9859dfb
New rules
22 new rules!
semi-stylexojs/eslint-config-xo@0b1680efor-directionxojs/eslint-config-xo@c957c7fswitch-colon-spacingxojs/eslint-config-xo@c1c8fc7no-buffer-constructorxojs/eslint-config-xo@ee366cbgetter-returnxojs/eslint-config-xo@40e1442function-paren-newlinexojs/eslint-config-xo@9e90fdclines-between-class-membersxojs/eslint-config-xo@c7f63cdarray-bracket-newlinexojs/eslint-config-xo@e2f3748unicorn/prefer-add-event-listenerunicorn/prefer-spread ruleunicorn/no-unsafe-regexunicorn/error-messageunicorn/import-indexunicorn/new-for-builtinsunicorn/regex-shorthandunicorn/escape-caseunicorn/no-hex-escapepromise/no-return-wrap4273f8apromise/no-return-in-finally4273f8anode/no-unpublished-bin16fb8e2node/process-exit-as-throw16fb8e2node/no-deprecated-api16fb8e2
All changes
Why is this not 0.19.0? That version got tainted by an incorrect publish a long time ago.
0.18.2
We finally fixed all the gitignore issues. Thanks to hard work by @marionebl and @schnittstabil.
The --open flag now also supports VS Code.
0.18.1
Removes the promise/no-promise-in-callback and promise/no-callback-in-promise rules. They were more annoying than useful. You usually have to deal with a lot of non-Promise APIs, so I had to disable it too many times. Some APIs will also never be Promise, like events and streams. 2253852
0.18.0
Highlights
- The
esnextoption is nowtrueby default. This means it now enforces the use of as much ES2015+ syntax as Node.js 4 supports. 61c046c - 21 new rules:
- Unicorn plugin: sindresorhus/eslint-plugin-unicorn@v1.0.0...v2.1.0
- AVA plugin: avajs/eslint-plugin-ava@a0156f1
- Promise plugin: 3e1a318
- ESLint: xojs/eslint-config-xo@v0.17.0...v0.18.0
- 27 additional ESLint rules are now auto-fixable with
$ xo --fix. - Handle negative gitignore patterns correctly. f8e1e3d
- Vim plugin for XO.
- Added
--stdin-filenameCLI flag. 0d88cde - Added support for auto-fixing code from stdin. 6d6d642
- Added tip on how to use XO with monorepos. cb63c5f
- Removed the
import/no-dynamic-requirerule. 29a5263 - Ignores directories when receiving an empty extension. a0ae248
- Don't trigger import duplication errors for Flow type imports. da188e5