# 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](/contributing/contributing-to-documentation.md) 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.varbase.vardot.com/contributing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
