# Contributing

Varbase is an open-source project built and maintained by **Vardot** and the Drupal community. Contributions from the community are welcome and essential to the continued improvement of the platform.

## Ways to Contribute

### Code Contributions

Development contributions to Varbase and its components are managed through the Drupal.org issue queues and GitHub repositories.

* **Drupal.org Issue Queue**: Report bugs, request features, and submit patches for Varbase and its Drupal.org-hosted modules. Find the issue queues at <https://www.drupal.org/project/varbase>.
* **GitHub**: Varbase and related projects are available on GitHub at <https://github.com/Vardot>. You can fork repositories, submit pull requests, and review code.

### Types of Code Contributions

* **Bug reports**: Report issues you encounter with detailed steps to reproduce.
* **Bug fixes**: Submit patches or pull requests that fix reported issues.
* **Feature development**: Propose and develop new features.
* **Code review**: Review open pull requests and patches submitted by others.

### Testing

Testing is one of the most valuable ways to contribute:

* **Manual testing**: Test new releases, patches, and features in a development environment and report any issues.
* **Automated testing**: Write or improve automated tests (PHPUnit, Cypress, Behat) for Varbase components.
* **Regression testing**: Verify that existing functionality still works correctly after changes are applied.

### Documentation

Help improve the Varbase documentation by identifying gaps, fixing errors, or writing new content. See [Contributing to Documentation](https://docs.varbase.vardot.com/11.0.x/contributing/contributing-to-documentation) for details.

### Translations

Contribute translations to make Varbase accessible in more languages:

* Translations are managed through the Drupal.org localization server at <https://localize.drupal.org/>.
* You can translate Varbase interface strings, module strings, and help text.

## Contribution Guidelines

### Before You Start

1. Check the existing issue queue to see if your issue or feature request has already been reported.
2. If no existing issue matches, create a new issue with:
   * A clear, descriptive title.
   * Steps to reproduce (for bug reports).
   * Expected behavior vs. actual behavior.
   * Environment details (Varbase version, Drupal version, PHP version).
3. For feature requests, describe the use case and the proposed solution.

### Submitting Code

1. Fork the relevant repository.
2. Create a feature branch for your changes.
3. Follow Drupal coding standards.
4. Write or update tests for your changes.
5. Submit a pull request (GitHub) or a patch (Drupal.org).
6. Respond to review feedback and make requested changes.

### Code of Conduct

All contributions are expected to follow the [Drupal Code of Conduct](https://www.drupal.org/dcoc). Be respectful, constructive, and collaborative in all interactions.

## Getting Help

* **Drupal.org**: Use the Varbase issue queue for project-specific questions and issues.
* **GitHub Discussions**: Participate in discussions on the GitHub repositories.
* **Vardot**: For enterprise support and professional services, visit <https://www.vardot.com/>.

## Resources

* Varbase on Drupal.org: <https://www.drupal.org/project/varbase>
* Vardot on GitHub: <https://github.com/Vardot>
* Drupal Contribution Guide: <https://www.drupal.org/community/contributor-guide>
* Drupal Coding Standards: <https://www.drupal.org/docs/develop/standards>
