Contributing - sanitaravel/starship_analyzer GitHub Wiki

Contributing to Starship Analyzer

Thank you for your interest in contributing to Starship Analyzer! This guide will help you get started with contributing to the project.

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork locally: git clone https://github.com/your-username/starship_analyzer.git
  3. Set up the development environment: python setup.py
  4. Create a branch for your changes: git checkout -b feature/amazing-feature

Development Environment

To set up a development environment:

# Install development dependencies
pip install -r requirements.txt

# Install testing tools
pip install pytest pytest-cov

Coding Standards

This project follows these coding standards:

  • Use PEP 8 for Python code style
  • Use meaningful variable and function names
  • Add docstrings to all functions and classes
  • Keep functions small and focused on a single task
  • Write clear comments for complex logic

You can check your code with:

# Run flake8 to check code style
flake8 .

# Run black to format code
black .

Testing

Before submitting a pull request, ensure all tests pass:

# Run all tests
pytest

# Run tests with coverage
pytest --cov=. --cov-report=html

When adding new features, please include appropriate tests.

Adding New Features

To add new features to Starship Analyzer:

  1. Create a new branch for your feature
  2. Implement the feature with appropriate tests
  3. Update documentation to reflect the new feature
  4. Submit a pull request

For larger features, please open an issue first to discuss the implementation.

Pull Request Process

  1. Update the README.md and documentation with details of changes
  2. Update the version number following Semantic Versioning
  3. Submit your pull request with a clear description of the changes
  4. Wait for code review and address any feedback
  5. Once approved, your pull request will be merged

Reporting Bugs

When reporting bugs, please include:

  • A clear and descriptive title
  • Steps to reproduce the issue
  • Expected behavior and actual behavior
  • Screenshots if applicable
  • System information (OS, Python version, etc.)
  • Log files if available

Feature Requests

Feature requests are welcome! Please provide:

  • A clear and descriptive title
  • A detailed description of the proposed feature
  • Any relevant examples or mock-ups
  • Explanation of why this feature would be useful to the project

Code of Conduct

Please note that this project adheres to a Code of Conduct. By participating, you are expected to uphold this code.

License

By contributing to this project, you agree that your contributions will be licensed under the project's MIT License with Attribution Requirement.