CONTRIBUTING.md
Rama main · réplica de lectura del repositorio original.
# Contributing
Thank you for helping improve Dreamax License Manager. Contributions should be
small enough to review, preserve published behavior by default, and include
evidence proportional to their security and compatibility risk.
## Before opening an issue
- Search existing issues and documentation for the same behavior.
- Use a private reporting path for suspected vulnerabilities; do not open a
public security issue. See `SECURITY.md`.
- Remove license keys, credentials, master keys, customer data, private URLs,
database dumps, and other sensitive values from examples and logs.
- Confirm that the problem is reproducible with a currently supported WordPress,
WooCommerce, and PHP combination when possible.
## Development setup
The baseline requirements are WordPress 6.9+, WooCommerce 10.8+, PHP 8.0+ with
Sodium, HTTPS for credential-bearing requests, and InnoDB.
1. Use a disposable local WordPress/WooCommerce environment.
2. Clone the repository into `wp-content/plugins/dreamax-license-manager`.
3. Install development dependencies with `composer install`.
4. Configure a non-production `DREAMAX_LICENSE_MANAGER_MASTER_KEY` according to
`docs/RECOVERY.md`.
5. Activate the plugin and follow `docs/SETUP-DIAGNOSTICS.md`.
Never run migrations, fixture generation, recovery drills, concurrency tests,
mail tests, or guarded live verification against production data or services.
## Coding and architecture expectations
- Follow the WordPress Coding Standards and the repository PHPCS rules.
- Keep WordPress and WooCommerce hook adapters thin; put licensing rules in the
relevant namespaced service.
- Use documented repository/service boundaries instead of querying another
module's tables directly.
- Preserve the public REST v1 contract, stable error meanings, audit-event
meanings, schema history, privacy behavior, and frozen reference client.
- Treat authentication, authorization, encryption, migration, uninstall,
customer isolation, and key recovery as protected boundaries.
- Add or update tests and documentation with behavioral changes.
- Do not weaken a test or frozen fixture merely to make a breaking change pass.
## Local checks
Run from the repository root:
```text
composer test
composer analyse
composer phpcs
composer release:validate
```
`composer migration:verify`, `composer benchmark:smoke`, and scripts named
`verify-live-*` require their documented disposable environment and cleanup
boundaries. Review `docs/BUILDING.md`, `docs/RELEASE.md`, and
`docs/FREE-V1-MUST-PASS.md` before making a release claim.
## Pull requests
Work on one bounded milestone at a time. A pull request should describe:
- the problem and intended outcome;
- relevant issue or design context;
- compatibility and public-contract impact;
- security, privacy, migration, and data-retention impact;
- tests and documentation added or changed;
- exact commands run and their results;
- work that remains unverified.
Avoid unrelated formatting or refactoring. Generated build artifacts, local
configuration, credentials, and production data must not be committed.
Maintainers may ask for a smaller change, additional failure-path tests, or a
compatibility plan before review. Approval of source changes is separate from
authorization to tag, publish, deploy, or modify WordPress.org content.
## Documentation-only changes
Documentation contributions are welcome. Keep statements tied to implemented
behavior, use current version information, distinguish recorded evidence from a
fresh test run, and avoid promises about security, support response times, or
future releases that maintainers have not adopted.
## Conduct
Participation is governed by `CODE_OF_CONDUCT.md`.