First off, thank you for considering contributing to Graphite! It's people like you that make the open-source community such a fantastic place to learn, inspire, and create. All contributions are welcome and greatly appreciated.
This document provides guidelines for contributing to the project. Please read it to ensure a smooth and effective contribution process for everyone involved.
This project and everyone participating in it is governed by a Code of Conduct. By participating, you are expected to uphold this code. Please report any unacceptable behavior.
There are many ways to contribute to Graphite, from writing code and documentation to submitting bug reports and feature requests.
If you encounter a bug, please open an issue on GitHub. When filing a bug report, please include the following:
- A clear and descriptive title for the issue.
- A detailed description of the problem, including the steps to reproduce the bug.
- The expected behavior and what is happening instead.
- Your operating system and Graphite version.
- Any relevant screenshots or logs.
If you have an idea for a new feature or an improvement to an existing one, please open an issue on GitHub to discuss it. This allows for a discussion with the community and maintainers before you put in the effort to implement it.
When suggesting an enhancement, please include:
- A clear and descriptive title for the issue.
- A detailed description of the proposed enhancement and the problem it solves.
- Any mockups or examples that might help to illustrate your idea.
If you would like to contribute code to fix a bug or implement a new feature, please follow these steps:
- Fork the repository on GitHub.
- Create a new branch for your feature or bug fix (
git checkout -b feature/your-feature-name). - Make your changes and commit them with clear, descriptive messages.
- Push your changes to your forked repository.
- Create a pull request to the
mainbranch of the official Graphite repository. - In your pull request, provide a clear description of the changes you have made and reference any related issues.
To get started with developing on Graphite, follow these steps:
-
Prerequisites:
- Python 3.8 or newer.
- Ollama installed and running.
-
Install an LLM Model: Before running Graphite, you need a model for Ollama. Open your terminal and run:
ollama pull qwen2.5:7b
Ensure the Ollama application is running in the background.
-
Clone and Install Dependencies:
- Clone the repository:
git clone https://github.com/dovvnloading/Graphite.git cd Graphite - Create and activate a virtual environment (recommended):
# For Windows python -m venv venv .\venv\Scripts\activate # For macOS/Linux python3 -m venv venv source venv/bin/activate
- Install the required Python packages:
pip install -r requirements.txt
- Clone the repository:
-
Run the Application:
python Graphite.py
- Use the present tense ("Add feature" not "Added feature").
- Use the imperative mood ("Move file to..." not "Moves file to...").
- Limit the first line to 72 characters or less.
- Reference issues and pull requests liberally in the body of the commit message.
This project adheres to the PEP 8 style guide for Python code. Please ensure your contributions follow these guidelines. Using a linter like flake8 can help you identify and fix style issues.