This is an important release which makes significant changes to improve the accuracy, performance, stability and maintainability of all sniffs, as well as making WordPressCS much better at handling modern PHP. WordPressCS 3.0.0 contains breaking changes, both for people using ignore annotations, people maintaining custom rulesets, as well as for sniff developers who maintain a custom PHPCS standard based on WordPressCS. If you are an end-user or maintain a custom WordPressCS based ruleset, please start by reading the [https://github.com/WordPress/WordPress-Coding-Standards/wiki/Upgrade-Guide-to-WordPressCS-3.0.0-for-ruleset-maintainers Upgrade Guide to WordPressCS 3.0.0 for ruleset maintainers] which lists the most important changes and contains a step by step guide for upgrading. If you are a maintainer of an external standard based on WordPressCS and any of your custom sniffs are based on or extend WordPressCS sniffs, please read the [https://github.com/WordPress/WordPress-Coding-Standards/wiki/Upgrade-Guide-to-WordPressCS-3.0.0-for-Developers-of-external-standards Upgrade Guide to WordPressCS 3.0.0 for Developers]. In all cases, please read the complete changelog carefully before you upgrade. This commit: * Updates the Composer dependencies to use the new version, including updating the underlying PHP_CodeSniffer dependency to the new minimum supported version for WPCS.[[BR]] Note: the Composer PHPCS installer plugin is no longer explicitly required as it is now a dependency of WPCS, so the dependency is inherited automatically. * Updates the ruleset for WPCS 3.0.0. This includes: * Raising the memory limit to be on the safe side as WPCS 3.0.0 contains a lot more sniffs. * Removing explicit inclusions of extra rules, which have now been added to the `WordPress-Core` ruleset.. * Updating property names for select sniffs. * Updating one exclusion — the `WordPress.CodeAnalysis.AssignmentInCondition` sniff has been (partially) replaced by the `Generic.CodeAnalysis.AssignmentInCondition` sniff. * Adding one new exclusion. * Downgrades one new error to a warning.[[BR]] The `Generic.Files.OneObjectStructurePerFile` sniff enforces that there is only one OO structure declaration per file. At this time, this sniff would yield 29 errors. By downgrading the sniff to a ''warning'', the build can pass and the issues can be fixed in due time. For now, the test directory will be excluded until the issues are fixed (as the test directory CS run does not allow for warnings). * Updates ignore annotations for WPCS 3.0.0. Reference: [https://github.com/WordPress/WordPress-Coding-Standards/releases/tag/3.0.0 WPCS 3.0.0 release notes]. Follow-up to [43571], [44574], [45600], [47927]. Props jrf, jorbin, desrosj. See #59161. git-svn-id: https://develop.svn.wordpress.org/trunk@56695 602fd350-edb4-49c9-b593-d223f7449a82 |
||
|---|---|---|
| .cache | ||
| .devcontainer | ||
| .github | ||
| src | ||
| tests | ||
| tools | ||
| .editorconfig | ||
| .env | ||
| .eslintignore | ||
| .eslintrc-jsdoc.js | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .jshintrc | ||
| .npmrc | ||
| .nvmrc | ||
| composer.json | ||
| CONTRIBUTING.md | ||
| docker-compose.yml | ||
| Gruntfile.js | ||
| jsdoc.conf.json | ||
| package-lock.json | ||
| package.json | ||
| phpcompat.xml.dist | ||
| phpcs.xml.dist | ||
| phpunit.xml.dist | ||
| README.md | ||
| SECURITY.md | ||
| webpack.config.js | ||
| wp-cli.yml | ||
| wp-config-sample.php | ||
| wp-tests-config-sample.php | ||
WordPress
Welcome to the WordPress development repository! Please check out the contributor handbook for information about how to open bug reports, contribute patches, test changes, write documentation, or get involved in any way you can.
Getting Started
Using GitHub Codespaces
To get started, create a codespace for this repository by clicking this 👇
A codespace will open in a web-based version of Visual Studio Code. The dev container is fully configured with softwares needed for this project.
Note: Dev containers is an open spec which is supported by GitHub Codespaces and other tools.
In some browsers the keyboard shortcut for opening the command palette (Ctrl/Command + Shift + P) may collide with a browser shortcut. The command palette can be opened via the F1 key or via the cog icon in the bottom left of the editor.
When opening your codespace, be sure to wait for the postCreateCommand to finish running to ensure your WordPress install is successfully set up. This can take a few minutes.
Local development
WordPress is a PHP, MySQL, and JavaScript based project, and uses Node for its JavaScript dependencies. A local development environment is available to quickly get up and running.
You will need a basic understanding of how to use the command line on your computer. This will allow you to set up the local development environment, to start it and stop it when necessary, and to run the tests.
You will need Node and npm installed on your computer. Node is a JavaScript runtime used for developer tooling, and npm is the package manager included with Node. If you have a package manager installed for your operating system, setup can be as straightforward as:
- macOS:
brew install node - Windows:
choco install nodejs - Ubuntu:
apt install nodejs npm
If you are not using a package manager, see the Node.js download page for installers and binaries.
Note: WordPress currently only officially supports Node.js 16.x and npm 8.x.
You will also need Docker installed and running on your computer. Docker is the virtualization software that powers the local development environment. Docker can be installed just like any other regular application.
Development Environment Commands
Ensure Docker is running before using these commands.
To start the development environment for the first time
Clone the current repository using git clone https://github.com/WordPress/wordpress-develop.git. Then in your terminal move to the repository folder cd wordpress-develop and run the following commands:
npm install
npm run build:dev
npm run env:start
npm run env:install
Your WordPress site will be accessible at http://localhost:8889. You can see or change configurations in the .env file located at the root of the project directory.
To watch for changes
If you're making changes to WordPress core files, you should start the file watcher in order to build or copy the files as necessary:
npm run dev
To stop the watcher, press ctrl+c.
To run a WP-CLI command
npm run env:cli -- <command>
WP-CLI has many useful commands you can use to work on your WordPress site. Where the documentation mentions running wp, run npm run env:cli -- instead. For example:
npm run env:cli -- help
To run the tests
These commands run the PHP and end-to-end test suites, respectively:
npm run test:php
npm run test:e2e
To restart the development environment
You may want to restart the environment if you've made changes to the configuration in the docker-compose.yml or .env files. Restart the environment with:
npm run env:restart
To stop the development environment
You can stop the environment when you're not using it to preserve your computer's power and resources:
npm run env:stop
To start the development environment again
Starting the environment again is a single command:
npm run env:start
Credentials
These are the default environment credentials:
- Database Name:
wordpress_develop - Username:
root - Password:
password
To login to the site, navigate to http://localhost:8889/wp-admin.
- Username:
admin - Password:
password
Note: With Codespaces, open the portforwarded URL from the ports tab in the terminal, and append /wp-admin to login to the site.
To generate a new password (recommended):
- Go to the Dashboard
- Click the Users menu on the left
- Click the Edit link below the admin user
- Scroll down and click 'Generate password'. Either use this password (recommended) or change it, then click 'Update User'. If you use the generated password be sure to save it somewhere (password manager, etc).