Contributing to OCRG Projects#
Thank you for your interest in contributing to the Ozark Cybersecurity Research Group! This guide will help you get started with contributing to our projects.
Code of Conduct#
We expect all contributors to adhere to our Code of Conduct, which promotes a respectful and inclusive community. In summary:
- Be respectful and inclusive toward others
- Provide constructive feedback
- Accept constructive criticism gracefully
- Focus on what's best for the community
- Show empathy towards other community members
How to Contribute#
There are many ways to contribute to OCRG projects. Before creating any issue or pull request, please review our issue guidelines and labels below.
Creating Issues#
All issues (bugs, enhancements, questions) should follow our standard format and labeling system.
Issue Labels#
We use labels to categorize and prioritize issues. When creating an issue, consider these common labels:
Category | Label | Description |
---|---|---|
Type | ⚠️ bug |
Something isn't working |
enhancement |
New feature or request | |
documentation |
Improvements or additions to documentation | |
question |
Further information is requested | |
process |
For improving development or project management workflows | |
Priority | 🔥 priority: high |
Critical issues needing immediate attention |
⚠️ priority: medium |
Standard priority for most issues | |
priority: low |
Less urgent issues, can be handled when time allows | |
Status | status: needs-triage |
New issues that need review and labeling |
status: in-progress |
Actively being worked on | |
status: needs-review |
Completed work (usually a PR) is ready for review | |
status: backlog |
This issue will be saved for later | |
Area | area: github-pages |
This issue relates to the OCRG GitHub Pages site |
Special | ✅ good first issue |
Good for newcomers |
help wanted |
Extra attention is needed | |
dependencies |
Pull requests that update a dependency file | |
markdown/html |
Pull requests that update markdown |
Issue Template#
When creating any issue, use this template as a starting point:
# Issue Title
Clear, concise title that describes the problem or request
## Description
Detailed information about the issue:
### For Bugs
- Steps to reproduce:
1. Step one
2. Step two
3. Step three
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Environment details:
- OS: [e.g., Windows 10, macOS 13.0]
- Browser: [e.g., Chrome 120.0]
- Version: [e.g., v1.2.3]
### For Enhancements
- Problem: What problem does this solve?
- Solution: How would you solve it?
- Benefits: Why would this be useful?
### Additional Information
- Screenshots: [if applicable]
- Error messages: [if applicable]
- Related issues: [if any]
Types of Issues#
Bug Reports#
If you find a bug in any of our projects:
- Check if the bug has already been reported in the project's issue tracker
- If not, create a new issue using our template
- Be sure to include:
- Clear steps to reproduce
- Expected vs actual behavior
- Environment details
- Any relevant screenshots or error messages
- Add the
⚠️ bug
label and appropriate priority/status labels
Enhancement Suggestions#
Have an idea for improving our projects?
- Check if the enhancement has already been suggested
- Create a new issue using our template
- Focus on:
- The problem you're trying to solve
- Your proposed solution
- Benefits to users
- Add the
enhancement
label and appropriate priority/status labels
Code Contributions#
We welcome code contributions through pull requests:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Write your code, following our Development Best Practices.
- Add or update tests as needed.
- Ensure your code passes all tests.
- Submit a pull request with a clear description of the changes.
Documentation Improvements#
Documentation improvements are always appreciated:
- Fork the repository.
- Create a new branch for your documentation changes.
- Make your changes, ensuring clarity and accuracy.
- Submit a pull request with a description of the improvements.
Reviewing Pull Requests#
Helping review others' contributions is a valuable way to contribute:
- Read the pull request description and understand the purpose of the changes.
- Check out the code and test it locally if possible.
- Provide constructive feedback and suggestions.
- Approve the pull request if it meets the project's standards.
Getting Started with Development#
Before contributing code, please:
- Set up your development environment following our Getting Started Guide.
- Familiarize yourself with our Development Best Practices.
- Look for issues labeled "good first issue" if you're new to the project.
Pull Request Process#
- Fork & Branch: Fork the repository and create a branch for your changes.
- Make Changes: Implement your changes, following our coding standards.
- Test: Ensure all tests pass and add new tests if needed.
- Document: Update documentation to reflect your changes.
- Submit PR: Create a pull request with a clear description.
- Review: Address any feedback from code reviews.
- Merge: Once approved, your PR will be merged.
Style Guides#
Git Commit Messages#
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests after the first line
Python Style Guide#
- Follow PEP 8 style guide
- Use docstrings following Google's style guide
- Run code through flake8 or a similar linter
JavaScript Style Guide#
- Follow the Airbnb JavaScript Style Guide
- Use ESLint with our configuration
Recognition#
Contributors are recognized in several ways:
- Listed in the project's contributors section
- Mentioned in release notes for significant contributions
- Potential invitation to become a project maintainer after sustained contributions
Questions?#
If you have any questions about contributing, please:
- Ask in our Discord server
- Open an issue with your question
- Contact us through our Contact page Thank you for contributing to OCRG projects!