Spaces:
Running
Contributing to CyberScraper 2077
"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.
π€ Code of Conduct
By participating in this project, you agree to abide by our Code of Conduct. Please read it before contributing.
π How to Contribute
Setting Up Development Environment
- 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
Making Changes
- 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
π Commit Message Guidelines
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
π§ͺ Testing Guidelines
- Write tests for new features
- Ensure all tests pass before submitting PR
- Follow existing test patterns
- Include both unit and integration tests when applicable
π Documentation Guidelines
- Update README.md if adding new features
- Add docstrings to new functions/classes
- Include code examples when appropriate
- Keep documentation clear and concise
ποΈ Project Structure
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/
π― Feature Requests
- Use GitHub Issues to propose new features
- Tag feature requests with
enhancement - Provide clear use cases
- Discuss implementation approach
π Bug Reports
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
π Pull Request Process
- 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
βοΈ Development Best Practices
- 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
π« What to Avoid
- Breaking existing functionality
- Introducing unnecessary dependencies
- Making large, unfocused PRs
- Ignoring code review feedback
- Modifying core functionality without discussion
π Recognition
Contributors will be added to our README.md and CONTRIBUTORS.md files. We value and appreciate all contributions!
π Getting Help
- Create an issue for questions
- Join our Discord community
- Check existing documentation
- Look through closed issues
π License
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.