- Include detailed architecture overview in `docs/architecture.md`. - Add `docs/configuration.md`, detailing configuration file structure and settings. - Provide a step-by-step provider implementation guide in `docs/provider-implementation.md`. - Add frequently asked questions (FAQ) document in `docs/faq.md`. - Create `docs/migration-guide.md` for future breaking changes and version upgrades. - Introduce new examples in `examples/` showcasing basic chat, custom providers, and theming. - Add a changelog (`CHANGELOG.md`) for tracking significant changes. - Provide contribution guidelines (`CONTRIBUTING.md`) and a Code of Conduct (`CODE_OF_CONDUCT.md`).
83 lines
3.2 KiB
Markdown
83 lines
3.2 KiB
Markdown
# Contributing to Owlen
|
|
|
|
First off, thank you for considering contributing to Owlen! It's people like you that make Owlen such a great tool.
|
|
|
|
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
|
|
|
|
## Code of Conduct
|
|
|
|
This project and everyone participating in it is governed by the [Owlen Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior.
|
|
|
|
## How Can I Contribute?
|
|
|
|
### Reporting Bugs
|
|
|
|
This is one of the most helpful ways you can contribute. Before creating a bug report, please check a few things:
|
|
|
|
1. **Check the [troubleshooting guide](docs/troubleshooting.md).** Your issue might be a common one with a known solution.
|
|
2. **Search the existing issues.** It's possible someone has already reported the same bug. If so, add a comment to the existing issue instead of creating a new one.
|
|
|
|
When you are creating a bug report, please include as many details as possible. Fill out the required template, the information it asks for helps us resolve issues faster.
|
|
|
|
### Suggesting Enhancements
|
|
|
|
If you have an idea for a new feature or an improvement to an existing one, we'd love to hear about it. Please provide as much context as you can about what you're trying to achieve.
|
|
|
|
### Your First Code Contribution
|
|
|
|
Unsure where to begin contributing to Owlen? You can start by looking through `good first issue` and `help wanted` issues.
|
|
|
|
### Pull Requests
|
|
|
|
The process for submitting a pull request is as follows:
|
|
|
|
1. **Fork the repository** and create your branch from `main`.
|
|
2. **Make your changes.**
|
|
3. **Ensure the code lints and formats correctly.**
|
|
- `cargo fmt --all`
|
|
- `cargo clippy --all -- -D warnings`
|
|
4. **Run the tests.**
|
|
- `cargo test --all`
|
|
5. **Add a clear, concise commit message.** We follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
|
|
6. **Push to your fork** and submit a pull request to Owlen's `main` branch.
|
|
7. **Include a clear description** of the problem and solution. Include the relevant issue number if applicable.
|
|
|
|
## Development Setup
|
|
|
|
To get started with the codebase, you'll need to have Rust installed. Then, you can clone the repository and build the project:
|
|
|
|
```sh
|
|
git clone https://github.com/Owlibou/owlen.git
|
|
cd owlen
|
|
cargo build
|
|
```
|
|
|
|
## Coding Style
|
|
|
|
- We use `cargo fmt` for automated code formatting. Please run it before committing your changes.
|
|
- We use `cargo clippy` for linting. Your code should be free of any clippy warnings.
|
|
|
|
## Commit Message Conventions
|
|
|
|
We use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for our commit messages. This allows for automated changelog generation and makes the project history easier to read.
|
|
|
|
The basic format is:
|
|
|
|
```
|
|
<type>[optional scope]: <description>
|
|
|
|
[optional body]
|
|
|
|
[optional footer(s)]
|
|
```
|
|
|
|
**Types:** `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`, `build`, `ci`.
|
|
|
|
**Example:**
|
|
|
|
```
|
|
feat(provider): add support for Gemini Pro
|
|
```
|
|
|
|
Thank you for your contribution!
|