dev

Quy trình phát triển cho plugin WordPress ActivityPub bao gồm thiết lập wp-env, lệnh kiểm thử, linting và quy trình xây dựng. Sử dụng khi thiết lập môi trường phát triển…

npx skills add https://github.com/automattic/wordpress-activitypub --skill dev

ActivityPub Development Cycle

Quick reference for common development workflows in the WordPress ActivityPub plugin.

Quick Reference

Environment Management

npm run env-start    # Start WordPress at http://localhost:8888.
npm run env-stop     # Stop WordPress environment.

Testing Commands

npm run env-test                      # Run all PHP tests.
npm run env-test -- --filter=pattern  # Run tests matching pattern.
npm run env-test -- path/to/test.php  # Run specific test file.
npm run env-test -- --group=name      # Run tests with @group annotation.
npm run test:e2e                      # Run Playwright E2E tests.
npm run test:e2e:debug                # Debug E2E tests.

Code Quality

composer lint         # Check PHP coding standards.
composer lint:fix     # Auto-fix PHP issues.
npm run lint:js       # Check JavaScript.
npm run lint:css      # Check CSS styles.
npm run format        # Format all code (wp-scripts).

Building Assets

npm run build         # Build for production (formatted and minified).
npm run dev           # Start development watch mode.

Code Coverage

npm run env-start -- --xdebug=coverage    # Start with coverage support.
npm run env-test -- --coverage-text       # Generate text coverage report.
npm run env-test -- --coverage-html ./coverage  # Generate HTML report.

Comprehensive Documentation

See docs/development-environment.md for detailed setup instructions.

See tests/README.md for comprehensive testing guidance.

See docs/code-linting.md for linting configuration and standards.

Pre-commit Hooks

The repository uses automated pre-commit hooks (.githooks/pre-commit) that run automatically on git commit:

  1. Sort PHP imports - Automatically organizes use statements.
  2. Check unused imports - Prevents unused use statements.
  3. Validate test patterns - Blocks remove_all_filters('pre_http_request').
  4. Run PHPCS auto-fix - Applies coding standards automatically.
  5. Format JavaScript - Runs wp-scripts formatter.

IMPORTANT: Hooks modify staged files automatically. Always review changes before committing. If hooks make changes, you'll need to stage them and commit again.

Setup: Hooks are installed by npm run prepare (runs automatically after npm install).

Common Development Workflows

Initial Setup

git clone git@github.com:Automattic/wordpress-activitypub.git
cd wordpress-activitypub
npm install           # Also runs 'npm run prepare' to install hooks.
composer install
npm run env-start     # WordPress at http://localhost:8888.

Making Changes Workflow

# 1. Make code changes.

# 2. Run relevant tests.
npm run env-test -- --filter=FeatureName

# 3. Check code quality (optional - pre-commit hook does this).
composer lint
npm run lint:js

# 4. Commit (pre-commit hook runs automatically).
git add .
git commit -m "Description"
# Hook may modify files - review and stage again if needed.

When the admin app imports from a @wordpress/* package that the build externalizes to a wp.* global, check the export against what the plugin's minimum WordPress version ships (wp-includes/js/dist/<package>.js, or typeof wp.<package>.<name> in the browser), not against node_modules. Newer npm versions export names the shipped global does not have.

Before Creating PR

# Run full test suite.
npm run env-test

# Build assets.
npm run build

# Final lint check.
composer lint
npm run lint:js

Debugging Failing Tests

# Run with verbose output.
npm run env-test -- --verbose --filter=test_name

# Run single test file to isolate issue.
npm run env-test -- tests/phpunit/tests/path/to/test.php

# Check test groups.
npm run env-test -- --list-groups
npm run env-test -- --group=specific_group

Fresh Environment

npm run env-stop
npm run env-start
# wp-env automatically sets up WordPress with debug mode and test users.

Key Files

  • package.json - npm scripts and dependencies.
  • composer.json - PHP dependencies and lint scripts.
  • .wp-env.json - wp-env configuration.
  • phpcs.xml - PHP coding standards (custom WordPress rules).
  • .githooks/pre-commit - Pre-commit automation.

Thêm skills từ automattic

reader-protocol-pr-review
automattic
Use when reviewing PRs that touch the Reader's multi-protocol social surfaces (`client/reader/social/`, `client/reader/atmosphere/`, `client/reader/mastodon/`,…
testing-js
automattic
Hướng dẫn kiểm tra tệp JavaScript để tìm lỗi cú pháp
setup
automattic
Xác minh rằng dn CLI đã được cài đặt và cấu hình. Sử dụng khi người dùng lần đầu cài đặt plugin domain-names, hoặc khi lệnh dn thất bại vì CLI đã…
studio-cli
automattic
Sử dụng Studio CLI để quản lý các trang WordPress cục bộ, xác thực và các trang xem trước. Kích hoạt kỹ năng này khi bạn cần chạy các lệnh Studio CLI, quản lý…
dn-info
automattic
Lấy thông tin chi tiết về một tên miền đã đăng ký bằng dn CLI. Sử dụng khi người dùng muốn xem chi tiết tên miền như ngày hết hạn, máy chủ tên, thông tin liên hệ,…
qa
automattic
So sánh nội dung WXR đã trích xuất với trang web nguồn gốc ban đầu từng trang một. Tìm văn bản, tiêu đề, hình ảnh và liên kết bị thiếu. Khắc phục bằng cách vá WXR hoặc…
add-skill
automattic
Thêm một kỹ năng mới vào plugin a8c-design. Sử dụng khi bạn đã xây dựng một kỹ năng Claude Code và muốn đóng góp nó vào plugin a8c-design dùng chung của Automattic —…
design-foundations
automattic
Xây dựng một JSON nền tảng thiết kế mạch lạc từ một trang web đã được giải phóng — các vai trò ngữ nghĩa về màu sắc/kiểu chữ/khoảng cách kèm dấu vết bằng chứng. Sử dụng khung sườn một phần…