GH Actions: add automation for generating output examples for the wiki (#20)
* GH Actions: prepare the workflow for auto-generating output snippets
* Run phpcs/phpcbf commands to auto-generate output blocks
* GH Actions/basic QA: add shellcheck job
As this repo now contains a shell script to find & replace placeholders for output snippets in the wiki files with real output, let's also run a minimal QA check on the code of the shell script.
Refs:
* https://github.com/koalaman/shellcheck
* https://github.com/koalaman/shellcheck/wiki
---------
Co-authored-by: jrfnl <[email protected] >
Co-authored-by: Dan Wallis <[email protected] >
Wiki/Usage: update paths in commands
The `CodeSniffer` directory is a directory from way back in PHPCS 2.0 and is not really relevant to these output examples anyway, so let's use more generic names.
GH Actions/publish-wiki: auto-generate table of contents (#6)
This commit adds steps to the workflow to auto-generate a GitHub wiki compatible table of contents in most wiki pages.
This reduces the risk of a TOC being out-of-date or containing incorrectly formatted links, as well as reduces the maintenance burden.
This action uses the `doctoc` pages to generate the table of contents and this can be tested locally using the same steps as used in the GH Actions workflow:
```
npm install -g doctoc
cp -v -a wiki _wiki
doctoc ./_wiki/ --github --maxlevel 4 --update-only
doctoc ./_wiki/Version-4.0-User-Upgrade-Guide.md --github --maxlevel 3 --update-only
```
Notes:
* The files are copied to a `_wiki` directory - which is `.gitignore`d - before pre-processing to reduce the risk of the source files being accidentally updated (and committed), which would undo the automation.
* The `--github` flag puts the TOC generation in GitHub compatible mode.
* The `--update-only` flag means that only markdown files containing the `<!-- START doctoc -->` and `<!-- END doctoc -->` markers will be updated and files without those markers will be left alone.
* By default, the TOC will contain all headers up to the indicated `--maxlevel`.
For the V 4.0 Dev upgrade guide, this looked weird, what with some "Upgrading" headers being at level 4 and some at level 5.
To mitigate this, a couple of headers have been turned into "bold phrases" instead.
Along the same lines, for the V 4.0 User upgrade guide, the level 4 headers were always "Upgrading". Those belong with their parent heading and IMO do not need to be separately called out in the TOC, which explains the second call to `doctoc` to overrule the TOC for that file specifically with a `--maxlevel 3` setting.
* The start/end markers have been added to all files which contained a TOC, except for one: `Reporting.md`.
The reason for this exception is that the section order in the file does not match the current TOC order, with the existing TOC order making sense from a TOC point of view, while the section order makes sense from a "types of reports most used" point of view.
Whether this page should be re-organized or not, is outside the scope of this PR.
To allow contributors to review the resulting pre-processed wiki files, the files are uploaded as an artifact when a PR dry-run is being executed and a comment is posted on the PR requesting the contributor to review the pre-processed files.
Includes adding a TOC to the Coding Standards Tutorial page and adding "back to top" links within the page.
Ref:
* https://github.com/thlorenz/doctoc
GH Actions: add a workflow to automatically deploy the wiki
This commit introduces a workflow, which will:
* Automatically deploy the wiki files to the [PHP_CodeSniffer repo wiki](https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki) on every push to the `main` branch.
* Will do a dry-run, without actually deploying, whenever a PR is created which would update the wiki files.
This way, the wiki is opened up to contributions via pull requests and is no longer limited to only edits made by committers.
A prominent warning is automatically added as a (hidden) comment at the top of each wiki file to warn committers not to edit the wiki file in the GitHub wiki interface.
Any edits made via the GitHub wiki interface or by directly pushing to the wiki repository, will be lost and overwritten via this workflow the next time a change is pushed to the `main` branch of this repo.
This commit also adds a `_Footer.md` file, which will automatically be displayed at the bottom of each wiki page to point out that the wiki is editable via PRs to this repo.
Notes:
* The files are copied to a `_wiki` directory - which is `.gitignore`d - before pre-processing to reduce the risk of the source files being accidentally updated (and committed), which would undo the automation.
* Commits for "push" events to the `main` branch will get the same commit message for the wiki as the _last_ commit on the `main` branch.
For that reason, merge commits are not allowed in this repo and PRs with only one commit are strongly preferred.
* Dry-run commits for PR events and commits triggered by other events, will get a simplified message referencing the sha of the last commit.
* If the net effect of a commit results in no changes to the wiki files (CI changes and such), no commit will be made to the wiki.
* The workflow is set up to fail if GitHub has an outage for git operations.
That should protect the wiki from going down by a broken/partial commit and allows for retriggering a deploy once the outage has passed by re-running the failed build.
Future scope (upcoming):
* Automate generation of the Table of Contents for wiki pages.
* Automate re-generation of output examples used in the wiki pages.
Refs:
* https://github.com/Andrew-Chen-Wang/github-wiki-action
* https://github.com/crazy-max/ghaction-github-status
Usage, Advanced Usage: improve readability and clarity
jrfnl
committed
May 9, 2025
Remove ablist language and other textual improvements
jrfnl
committed
May 8, 2025
Update/add table of contents for various pages
Generated table of contents using https://bitdowntoc.derlin.ch/
Includes adding additional "back to top" links.
jrfnl
committed
May 8, 2025
CS/markdownlint: various whitespace fixes
jrfnl
committed
May 8, 2025
CS/markdownlint: consistent list item indentation
jrfnl
committed
May 8, 2025
CS/markdownlint: code blocks should always specify language
When the code block contains plain text, use `text`.
jrfnl
committed
May 8, 2025
Usage: update help output for PHPCS 3.13.0
jrfnl
committed
May 7, 2025
Merge progress reporting sections
When I created the new section about progress reporting on the "Reporting" page, I'd overlooked that the "Usage" page already contained a section on progress reporting.
This commit now removes the section from the "Reporting" page again and merges some of the information which was contained in that section, into the information about progress reporting on the "Usage" page.
Includes various tweaks and updates to the pre-existing information:
* Make it explicit how progress reporting can be enabled.
* Shorten the example output for progress.
* Mention the name of the configuration option to enable progress reporting by default.
* Refresh the example output for the verbose example.
jrfnl
committed
May 7, 2025
Fixing Errors: update the "help" output
Oops... forgot to update this when the new help screen was released. Fixed now.
Includes updating the "Usage" page with the latest changes which will be included in PHPCS 3.12.0.
jrfnl
committed
Mar 11, 2025
Usage: update the "explain" output
The PSR1 standard now contains 8 sniffs, not 7.
jrfnl
committed
May 16, 2024
Usage: use fenced code blocks
jrfnl
committed
May 16, 2024
Usage: update the help information
As per the revamped help screen. See PR PHPCSStandards/PHP_CodeSniffer#447
jrfnl
committed
May 16, 2024
Update sniff code vs error code + additional info about this in Reporting and Advanced Usage
Refs: #319, #328
Co-authored-by: Joachim Noreiko <[email protected] >
jrfnl
committed
Feb 6, 2024
Add information about the new Performance report
Ref: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/60
jrfnl
committed
Nov 12, 2023
Add missing PSR12 standard to installed standards list
... and remove the PHPCS standard which was removed in PHPCS 3.0.
jrfnl
committed
Nov 12, 2023
Fix references to deprecated ignore syntaxes
jrfnl
committed
Nov 12, 2023
Add "back to top" links under each section
... on long pages which contain a table of contents.
jrfnl
committed
Nov 12, 2023
Use highlighted blocks for important information
Ref: https://github.com/orgs/community/discussions/16925
jrfnl
committed
Nov 12, 2023
Update URLs to point to the PHPCSStandards repo
jrfnl
committed
Nov 12, 2023
Fix case of available filters - see #3877
jrfnl
committed
Aug 19, 2023
Added info about listing sniffs inside a standard