Jump to content

Recommended Posts

Posted

This week we have ProcessWire 3.0.266 on the dev branch. The focus of this version has primarily been on expanding our documentation tools and API.md documentation files. As part of the process, WireTests files are added for each documented class. In addition, the WireApiDocs class got several major upgrades, plus its own documentation file: https://processwire.com/api/ref/wire-api-docs/

Other classes that gained custom API.md documentation and tests files this week were:

The Fieldtype API.md was written by Claude Sonnet, Selectors/Selector was written by Claude Opus, PagesVersions was written by Kimi K2.7 and the rest were written by MiMo Pro. Each goes through multiple rounds of proofreading and testing. Proofreading is either done by GPT 5.5 or Claude Sonnet. Following that, GPT 5.5 builds tests for the class using the WireTests framework. After running tests, we find items to fix either in the API.md or the core. Then I do a round of proofreading and edits. Finally, both the class API.md file and the tests are committed to the core. At this point, most of the major classes in ProcessWire have their own API.md documentation files and tests, so now we're focused on some of the more specific tools and classes.

I also wanted to mention that the Modules class got some major CLI improvements. Here's the full CLI command set available for the $modules API now:

Modules
=======
php index.php modules list [site|core]             List installed modules, optionally limited to site or core modules
php index.php modules unlist [site|core]           List uninstalled modules, optionally limited to site or core modules
php index.php modules info <name> [property]       Get JSON of all info for module or optionally info property
php index.php modules install <name>               Install module
php index.php modules uninstall <name>             Uninstall module
php index.php modules exists <name>                Does given class name resolve to a module? (Yes/No)
php index.php modules installed <name>             Is module installed? (Yes/No)
php index.php modules config <name>                Get configuration data for module as JSON
php index.php modules config <name> <property>     Get value for property in module config
php index.php modules dir <name>                   Query ProcessWire modules directory for module info
php index.php modules updates [name]               List available updates for installed site modules, or check one module
php index.php modules download <name> [--install]  Download module from PW modules directory (+ optionally install)
php index.php modules download <url> [--install]   Download module ZIP file from https URL (+ optionally install)
php index.php modules update <name> [--force]      Download and apply an available module update
php index.php modules delete <name>                Delete/erase uninstalled module from file system

Optionally append --json to any of the above commands for more verbose JSON output

While I'm posting CLI commands, here's the full command set for the updated WireApiDocs class:

WireApiDocs
===========
php index.php docs list                     List classes with API.md docs
php index.php docs list 'Class*'            List classes matches wildcard pattern
php index.php docs list-verbose             List classes with API.md docs in verbose mode
php index.php docs list-verbose 'Class*'    List classes matching pattern in verbose mode
php index.php docs get <class>              Get API docs for given class
php index.php docs toc <class>              Get table of contents for given class
php index.php docs chapter <class> <num>    Get body for given class and chapter number
php index.php docs chapter <class> 'Title'  Get body for given class and chapter title
php index.php docs methods <class>          Get public methods for given class (* prefix = hookable)
php index.php docs method <class> <method>  Get details for a single method (JSON only)
php index.php docs classinfo <class>        Get class info: parent, interfaces, traits
php index.php docs constants <class>        Get public constants for a class
php index.php docs properties <class>       Get @property annotations for a class
php index.php docs groups <class>           Get #pw-summary-[group] descriptions for a class
php index.php docs vars                     List all API variables and the classes they represent

WireApiDocs commands return JSON by default. To make command return plain text (not JSON),
append `-text` to the command name, i.e. `list-text`

See the dev branch commit log for additional core updates this week: https://github.com/processwire/processwire/commits/dev/. If using AgentTools, grab this week's new version too. More next week. Thanks for reading and have a great weekend! 

  • Like 6

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...