Contributing
We welcome contributions to the Palo Alto Networks SCM Ansible Collection! This guide outlines the process for contributing and developing the collection.
Code of Conduct
All contributors are expected to adhere to our project's code of conduct. Please be respectful and constructive in your communications and contributions.
Getting Started
-
Fork the Repository: Create a fork of the repository on GitHub.
-
Clone Your Fork:
- Set Up Development Environment:
- Create a Branch:
Development Guidelines
Code Style
This project follows standard Ansible development practices:
- Use YAML for module definitions
- Follow Ansible module guidelines
- PEP 8 for Python code
- Use meaningful variable names and include docstrings
Pre-commit Hooks
We use pre-commit hooks to ensure code quality:
Testing
All contributions should include appropriate tests:
- Sanity Tests:
- Unit Tests:
- Integration Tests (requires SCM credentials):
Documentation
Update documentation to reflect your changes:
- Update module documentation in the
docs/
directory - Add examples to showcase new functionality
- Update CHANGELOG.md with your changes
Submitting Changes
- Commit Your Changes:
We follow Conventional Commits for commit messages.
- Push to Your Fork:
-
Create a Pull Request: Open a pull request from your fork to the main repository.
-
Code Review: Maintainers will review your code and may request changes.
-
Merge: Once approved, your changes will be merged into the main branch.
Adding New Modules
When adding a new module:
- Use the module template:
-
Implement the module functionality in
plugins/modules/your_module_name.py
-
Add documentation in
docs/collection/modules/your_module_name.md
-
Add examples in
examples/your_module_name.yml
-
Add tests in
tests/unit/plugins/modules/test_your_module_name.py
Reporting Bugs
If you find a bug, please open an issue with:
- A clear description of the issue
- Steps to reproduce
- Expected behavior
- Actual behavior
- Version information
Feature Requests
For feature requests, open an issue describing:
- The feature you'd like to see
- Use cases for the feature
- How it would integrate with existing functionality
Questions?
If you have questions about contributing, please open a discussion on GitHub or contact the maintainers.
Thank you for contributing to the SCM Ansible Collection!