-
-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Ryan edited this page Mar 28, 2026
·
1 revision
Thank you for your interest in contributing to Apotropaios. This guide covers how to participate effectively.
- Bug Reports — File detailed issues with reproduction steps
- Feature Requests — Propose new capabilities with use-case descriptions
- Code Contributions — Submit pull requests for bugs, features, or improvements
- Documentation — Improve wiki pages, add examples, fix errors
- Testing — Run the framework on new distributions, report compatibility issues
When filing a bug report, include:
-
OS and version:
cat /etc/os-release -
Bash version:
bash --version -
Apotropaios version:
./apotropaios.sh --version -
Installed firewalls:
which iptables nft firewall-cmd ufw ipset - Steps to reproduce: Exact commands and menu selections
- Expected behavior: What should have happened
- Actual behavior: What happened instead (include full error output)
-
Log excerpt: Relevant entries from
data/logs/apotropaios-*.log
Use --log-level trace when reproducing to capture maximum diagnostic detail.
- Check existing issues and PRs to avoid duplicating work
- For significant changes, open an issue first to discuss the approach
- Read the Development Guide for coding standards
- Branch from
develop(notmain) - Name branches descriptively:
fix/ipset-set-name-validation,feature/rule-expiry-notification
- All changes pass
make lint(zero ShellCheck warnings) - All existing tests pass:
make test - New functionality has tests
- Code follows existing naming conventions and patterns
- Functions have documentation headers
- No hardcoded values — use constants from
constants.sh - Input validation on all new user-facing parameters
- Log messages for all significant operations
- Update
docs/changelog.mdunder[Unreleased] - Update
tasks/sync_function.mdif dependencies change - Update relevant wiki pages
- Update CLI help text if commands change
- Update README if major features are added
## Description
Brief description of what this PR does.
## Type
- [ ] Bug fix
- [ ] New feature
- [ ] Enhancement
- [ ] Documentation
- [ ] Testing
## Testing
- [ ] `make lint` passes
- [ ] `make test` passes (all 97+ tests)
- [ ] New tests added for new functionality
- [ ] Tested on: [list distributions tested]
## Checklist
- [ ] Code follows project coding standards
- [ ] Functions have documentation headers
- [ ] Input validation added where needed
- [ ] Changelog updated
- [ ] sync_function.md updated (if applicable)- Be respectful and constructive in all interactions
- Focus on the technical merits of contributions
- Welcome newcomers and help them get started
- Security vulnerabilities should be reported privately (see Security Policy)
Contributors are recognized in the changelog and release notes. Significant contributions are acknowledged in the README.
Apotropaios - Firewall Manager | Home | Quick Start | Usage | Architecture | Security | Contributing | Changelog
Turning away evil since v1.0.0
Getting Started
Architecture
Operations
Development
Reference