Thank you for your interest in contributing. This project is maintained by Development Gateway and welcomes contributions from the community.
- Development Setup
- Branching Model
- Making Changes
- Code Style
- Changesets (versioning)
- Opening a Pull Request
- License
- Security
- Node.js 22+
- pnpm 10+ —
corepack enable && corepack prepare pnpm@latest --activate - Docker — for the full WordPress stack
pnpm installpnpm builddocker compose upWarning: The default
docker-compose.ymluses placeholder passwords (wordpress,somewordpress). These are for local development only. Never use these defaults in a production or internet-facing deployment.
The block namespace and category are configured via constants exported from @devgateway/dvz-wp-commons:
BLOCKS_NS— WordPress block namespace (e.g.viz)BLOCKS_CATEGORY— WordPress block category slug
When extending this project, import these constants rather than hardcoding strings:
import { BLOCKS_NS, BLOCKS_CATEGORY } from '@devgateway/dvz-wp-commons';mainis the stable branch and the base for all pull requests.- Create a feature branch off
mainfor every change:task/short-descriptionorfix/short-description. - Do not push directly to
main.
- Fork the repository and create a branch off
main. - Make your changes and ensure all tests and linting pass.
- Run
pnpm changesetto document your change (see Changesets). - Open a pull request against
main.
This project uses @wordpress/scripts for linting and formatting.
# Lint JavaScript/TypeScript
pnpm lint
# Format code
pnpm formatPlease ensure your changes pass linting before opening a PR.
This project uses Changesets for versioning and changelog generation.
After making any change that should appear in a changelog (features, fixes, breaking changes):
pnpm changesetFollow the interactive prompts to select the affected packages and describe the change. Commit the generated changeset file alongside your code changes.
PRs without a changeset file will not trigger a version bump or changelog entry.
- Target branch:
main - At least one reviewer approval is required before merging.
- All CI checks must pass.
- Include a changeset file for any user-facing change.
- Do not introduce hardcoded credentials, internal URLs, client-specific identifiers, or PII.
- Ensure any new npm dependency has a GPL-compatible license (MIT, BSD, ISC, Apache-2.0, LGPL, or GPL).
By contributing to this project, you agree that your contributions will be licensed under the same license as the project: GPL-2.0-or-later.
Please do not report security vulnerabilities through public GitHub issues. See SECURITY.md for the responsible disclosure process.