You will need the following tools:
- Composer
- Node
- NPM
- Docker
- Git
- GitHub account
- An IDE of your choice, such as:
- PHP Storm (preferred)
- VSCode
We follow the GitHub Flow. Read more about it here
- External developers should fork and clone the repository, then create a branch.
- Project team developers should create a branch named with the issue tracker ID and description.
At project root /, execute the following commands:
npm installto install all the packagescomposer updateto install the libraries and dependencies
-
Coding Standards:
-
Development should be done in the
/load-html-filesproject subdirectory. This is the plugin development source. If you usewp-env(recommended), the mapping happens automatically. Otherwise, your development installation should map/meet-my-teamtoyour-local-install/wp-content/plugins/meet-my-team.In PHPStorm, you can use auto deployment mapping, or use a symbolic link or another method such as a local VSCode deployment method for this.
-
Local Development:
The project is setup so you can use
wp-envas a local dev environment. You will find a quick start guide here.If you require a local configuration of
wp-env, you can use.wp-env.override.json, which is ignored by Git. Runningwp-env start --xdebugin the project root starts a local dev environment with xdebug enabled onlocalhost:8720. Here,/load-html-fileis mapped into plugins.
Run composer check in the project file to check for issues. Pushing to GitHub will trigger the check automation.
Create a detailed pull request for review.
Ensure versions are updated in the root PHP and readme.txt.
Run gulp build. This command copies everything from /load-html-file to /dist, removes unnecessary development code, and creates a zip in /zipped.
Then, commit the branch and tag with the release e.g. 5.4.5. Merge the version branch with master and push it to GitHub.
Move the zip to the local wordpress.org directory and run the private script update_wp_free_plugin.
Periodically update this file if process changes, or if more clarity or extended information is required.