v1, v1.1, v2, and v3 Roadmap #8
Description
Overview
There are many issues with the current configuration here of eslint-config-wordpress
as such here's a roadmap for the next 3 versions of eslint-config-wordpress
.
The first milestone release v1 will peel back the vast majority of rules to a minimal viable product which in this case is to match the current WordPress implementation of JSHint.
The second milestone v2 is based on the JSCS wordpress
"preset, this configuration is widely used and is built on top the JSCS jquery
"preset" and WordPress' .jshintrc
The third milestone v3 builds on the v1 and v2 milestones by implementing the eslint-plugin-wordpress
"recommended" shared config which implements and iterates on the continually evolving WordPress JavaScript Coding Standards
The end result of the above will facilitate the use of eslint-config-wordpress
being able to be used as a "drop in" replacement for JSHint via v1.0.0, for JSCS via 2.0.0, and with v3 being the major branch moving forwards implementing the full suite of WordPress' JavaScript Coding Standards.
V1.0.0 https://github.com/ntwb/eslint-config-wordpress/milestones/1.0.0
The v1 release will be based on WordPress' current .jshintrc
file:
• https://core.trac.wordpress.org/browser/trunk/.jshintrc
This is currently a shared config in eslint-plugin-wordpress
:
• https://github.com/ntwb/eslint-plugin-wordpress/blob/master/lib/configs/jshint.js
• https://github.com/ntwb/eslint-plugin-wordpress/blob/master/lib/configs/rules/jshint.js
As this shared config cannot be "shared" with the plugin I'll manually replicate the config here.
V1.1.0 https://github.com/ntwb/eslint-config-wordpress/milestones/1.1.0
The v1.1 release will also be based on WordPress' current .jshintrc
file:
• https://core.trac.wordpress.org/browser/trunk/.jshintrc
This 1.1 milestone adds ESLint rules for the deprecated JSHint onevar
, and trailing
rules with their ESLint counterpart rules one-var
and no-trailing-spaces
respectively, see #WP28236
This is currently a shared config in eslint-plugin-wordpress
:
• https://github.com/ntwb/eslint-plugin-wordpress/blob/master/lib/configs/jshint.js
• https://github.com/ntwb/eslint-plugin-wordpress/blob/master/lib/configs/rules/jshint.js
As this shared config cannot be "shared" with the plugin I'll manually replicate the config here.
V2.0.0 https://github.com/ntwb/eslint-config-wordpress/milestones/2.0.0
Next up, v2 release will be based on JSCS' WordPress "preset:
• https://github.com/jscs-dev/node-jscs/blob/master/presets/wordpress.json
This is currently a shared config in eslint-plugin-wordpress
:
• https://github.com/ntwb/eslint-plugin-wordpress/blob/master/lib/configs/jscs.js
• https://github.com/ntwb/eslint-plugin-wordpress/blob/master/lib/configs/rules/jscs.js
As this shared config cannot be "shared" with the plugin I'll manually replicate the config here.
V3.0.0 https://github.com/ntwb/eslint-config-wordpress/milestones/3.0.0
Next up, v3 release will be based on eslint-plugin-wordpress
"recommended" shared config:
This is currently a shared config in eslint-plugin-wordpress
:
• https://github.com/ntwb/eslint-plugin-wordpress/blob/master/lib/configs/recommended.js
• https://github.com/ntwb/eslint-plugin-wordpress/blob/master/lib/configs/rules/recommended.js
Rules for this shared configuration need to be audited and tested against the WordPress JavaScript Coding Standards, all work regarding this should be perfomed via issues and pull requests in the https://github.com/ntwb/eslint-plugin-wordpress repo.