We welcome contributions to the Lunar Tools Project! By participating, you agree to abide by our Code of Conduct.
-
Fork the Repository: Start by forking the
lunar_toolsrepository to your GitHub account. -
Clone Your Fork: Clone your forked repository to your local machine:
git clone https://github.com/your-username/lunar_tools.git cd lunar_tools -
Create a Virtual Environment: It's highly recommended to work within a virtual environment:
python3 -m venv env source env/bin/activate # On Windows, use `env\Scripts\activate`
-
Install Dependencies: Install the project dependencies:
pip install -r requirements.txt pip install . -
Create a New Branch: Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name # or git checkout -b bugfix/your-bug-fix-name -
Make Your Changes: Implement your changes, adhering to the existing code style and conventions.
-
Run Tests: Before committing, ensure all tests pass and add new tests for your changes if applicable:
pytest
-
Run Linters and Type Checks: Ensure your code adheres to our quality standards:
ruff check . mypy lunar_tools_art.py prototypes/ -
Commit Your Changes: Write clear and concise commit messages:
git commit -m "feat: Add new amazing feature" # or git commit -m "fix: Resolve critical bug"
-
Push to Your Fork: Push your changes to your forked repository:
git push origin feature/your-feature-name
-
Create a Pull Request: Open a pull request from your forked repository to the
mainbranch of the originallunar_toolsrepository. Please fill out the pull request template thoroughly.
If you encounter a bug, please open an issue using the "Bug Report" template. Provide as much detail as possible, including steps to reproduce, expected behavior, and actual behavior.
For new features or improvements, please open an issue using the "Feature Request" template. Describe your idea and its potential benefits.
We follow PEP 8 for Python code. We use ruff for linting and mypy for type checking. Please ensure your code passes these checks before submitting a pull request.
If you have any questions, feel free to open an issue or reach out to the maintainers.