WordPress-Coding-Standards icon indicating copy to clipboard operation
WordPress-Coding-Standards copied to clipboard

"Hidden" standard with helper tools for WPCS maintainers

Open jrfnl opened this issue 6 years ago • 1 comments

There are a number of lists in WPCS which should be updated on a regular basis - on every WP release - and gathering the information needed for this manually is a big maintenance burden.

Think:

  • List of WP native global variables - also see #924
  • List of deprecated hooks
  • List of deprecated functions
  • List of deprecated function arguments
  • List of all class names in the correct case
  • ... etc

It would be relatively easy to create a few sniffs which could be run over WP Core to gather this information. Those sniffs however would have no value for the end-users of WPCS, only for WPCS developers.

So, what I'm proposing is as follows:

  • Add a new folder AnalyseWPCore with a ruleset.xml and sniff directory.
  • Add this folder to .gitattributes to be export-ignored. This way it will not be available in released versions of WPCS, but will only be available in git clones.
  • Over time add some custom sniffs to that directory which can gather the information we need to easily update the above mentioned lists.

Potentially future enhancements:

  • Add some custom reports which would pre-format the output of certain sniffs in a way that the output could just be copy/pasted into the right lists.
  • Add a bash script to run the reports in one go and potentially even update the lists in WPCS automatically.
  • Potentially run the reports via GH Actions on a cron schedule an automatically open an issue/PR/post to Slack when an update is needed. Note: we need to be careful about running against WP trunk though as we don't want WPCS to start flagging things which haven't been released et.

Opinions ?

FYI: I've already got a variation of the PrefixAllGlobals sniff ready for instance to allows us to update the global variables list easily.

jrfnl avatar Sep 23 '19 18:09 jrfnl

FYI: I've made a very very preliminary start with this as the sniffs have to be checked against WP Core for the WPCS 3.0.0 release again and manually checking everything is time consuming, error prone and tedious.

jrfnl avatar Jul 02 '23 21:07 jrfnl