"In 2077, what makes someone a contributor? Pushing code." - Johnny Silverhand
Thanks for considering contributing to CyberScraper 2077! This document outlines the process and guidelines for contributing to make the experience smooth for everyone involved.
By participating in this project, you agree to abide by our Code of Conduct. Please read it before contributing.
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/CyberScraper-2077.git cd CyberScraper-2077
- Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt playwright install
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes
- Test your changes thoroughly
- Commit your changes:
git commit -m "feat: add new feature"
- Push to your fork:
git push origin feature/your-feature-name
- Create a Pull Request
We follow Conventional Commits. Your commit messages should be structured as follows:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types:
feat
: New featurefix
: Bug fixdocs
: Documentation changesstyle
: Code style changes (formatting, missing semi-colons, etc)refactor
: Code refactoringtest
: Adding missing testschore
: Changes to build process or auxiliary tools
Example:
feat(scraper): add support for dynamic loading websites
- Write tests for new features
- Ensure all tests pass before submitting PR
- Follow existing test patterns
- Include both unit and integration tests when applicable
- Update README.md if adding new features
- Add docstrings to new functions/classes
- Include code examples when appropriate
- Keep documentation clear and concise
CyberScraper-2077/
├── app/
│ ├── scrapers/
│ ├── utils/
│ └── ui_components/
├── src/
│ └── models/
├── tests/
└── docs/
- Place new scraper implementations in
app/scrapers/
- Add utility functions in
app/utils/
- UI components go in
app/ui_components/
- Model-related code goes in
src/models/
- Use GitHub Issues to propose new features
- Tag feature requests with
enhancement
- Provide clear use cases
- Discuss implementation approach
When reporting bugs, include:
- Detailed description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Python version, etc.)
- Screenshots if applicable
- Update documentation
- Add/update tests
- Ensure CI/CD pipeline passes
- Get at least one code review
- Squash commits if requested
- Ensure branch is up to date with main
- Follow PEP 8 style guide
- Use type hints
- Keep functions/methods focused and small
- Comment complex logic
- Use meaningful variable/function names
- Handle errors appropriately
- Log important operations
- Breaking existing functionality
- Introducing unnecessary dependencies
- Making large, unfocused PRs
- Ignoring code review feedback
- Modifying core functionality without discussion
Contributors will be added to our README.md and CONTRIBUTORS.md files. We value and appreciate all contributions!
- Create an issue for questions
- Join our Discord community
- Check existing documentation
- Look through closed issues
By contributing, you agree that your contributions will be licensed under the project's MIT License.
Remember: In Night City - and in open source - style is everything, choom. Let's keep the code clean and the commits conventional.