Thanks for your interest in improving this Drupal module!
- Read the README.md for an overview
- Review ARCHITECTURE.md to understand the design
- Check INSTALL.md for setup instructions
- See TROUBLESHOOTING.md for common issues
- Drupal 10 or 11 (development environment)
- PHP 8.1+ with development tools
- Composer for dependency management
- Git for version control
# Clone or download the module
cd your-drupal-site/web/modules/custom
git clone https://github.com/Forseti-Life/drupal-job-hunter.git job_hunter
# Install dependencies
cd /path/to/drupal-root
composer install
# Enable module
drush pm:enable job_hunter
# Run migrations
drush updatedb -y- Create an issue describing what you want to fix or improve
- Create a feature branch with a clear name:
git checkout -b fix/issue-123-job-search-timeout git checkout -b feature/pdf-resume-support
- Make changes with clear, focused commits
- Test locally before submitting
- Open a pull request with:
- Reference to the issue number
- Summary of changes
- Validation/testing steps performed
- Any breaking changes or migration requirements
- Follow PSR-12 coding standard
- Use type hints on all functions/methods
- Document complex logic with comments
- Use Drupal logging for operational events
- Use descriptive, present-tense messages
- Reference issue numbers:
fix: update search timeout for #123 - Keep commits atomic and focused
- Test module enable/disable cycle
- Verify data preservation on uninstall
- Check database schema integrity
- Test with both Drupal 10 and 11
Before implementing changes, understand:
- Content-First Design — Business data lives in nodes (Company, Job Posting, Application)
- Hybrid Storage — Operational/automation data uses custom tables
- Drupal-Native — Use Drupal's forms, views, permissions, etc.
- No Platform Coupling — Module must work on any Drupal site
- Data Preservation — Uninstall should NOT delete user content
See ARCHITECTURE.md for full architectural guidance.
- Check existing issues first
- Add failing test case if possible
- Fix and submit PR with regression test
- Discuss in an issue first
- Keep scope focused and minimal
- Document new configuration/hooks
- Update README if needed
- Fix typos, clarify ambiguous sections
- Add examples for complex concepts
- Update TROUBLESHOOTING.md with new solutions
- Ensure Drupal.org compliance
- Benchmark before/after
- Check for n+1 query problems
- Optimize database queries
- Add caching where appropriate
Before submitting a PR, verify:
- Module enables/disables without errors
- No PHP warnings or errors in logs
- Database tables created/updated correctly
- No hardcoded paths or site-specific values
- No secrets or credentials added
- Follows PSR-12 code standards
- Tested on both Drupal 10 and 11
- Documentation updated (README, ARCHITECTURE, TROUBLESHOOTING as needed)
- Commit messages are clear and descriptive
- No breaking changes without migration path
Please do NOT open public issues for security vulnerabilities.
See SECURITY.md for responsible disclosure process.
See CODE_OF_CONDUCT.md — Be respectful, kind, and professional in all interactions.
- Check TROUBLESHOOTING.md for common issues
- Review existing GitHub issues and discussions
- Ask questions in pull request comments
- See ARCHITECTURE.md for design guidance
All contributors will be recognized in the module's CHANGELOG. Thank you for helping improve this module!
Questions? Open a discussion or issue on the GitHub repository.