mirror of
https://github.com/praveentcom/openproxy.git
synced 2026-02-12 22:12:46 +00:00
173 lines
4.1 KiB
Markdown
173 lines
4.1 KiB
Markdown
# Contributing to LLM Proxy Server
|
|
|
|
Thank you for your interest in contributing to the LLM Proxy Server! This document provides guidelines and instructions for contributing to the project.
|
|
|
|
## Table of Contents
|
|
|
|
- [Getting Started](#getting-started)
|
|
- [Development Setup](#development-setup)
|
|
- [Making Changes](#making-changes)
|
|
- [Submitting Changes](#submitting-changes)
|
|
- [Code Style](#code-style)
|
|
- [Testing](#testing)
|
|
- [Reporting Issues](#reporting-issues)
|
|
- [Feature Requests](#feature-requests)
|
|
|
|
## Getting Started
|
|
|
|
1. **Fork the repository** on GitHub
|
|
2. **Clone your fork** locally:
|
|
```bash
|
|
git clone https://github.com/praveentcom/openproxy.git
|
|
cd openproxy
|
|
```
|
|
3. **Set up your development environment** (see below)
|
|
4. **Create a new branch** for your changes:
|
|
```bash
|
|
git checkout -b feature/your-feature-name
|
|
```
|
|
|
|
## Development Setup
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js 18 or higher
|
|
- PostgreSQL (for testing the database integration)
|
|
- npm or yarn
|
|
|
|
### Installation
|
|
|
|
1. Install dependencies:
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
2. Set up environment variables:
|
|
```bash
|
|
cp .env.example .env
|
|
# Edit .env with your configuration
|
|
```
|
|
|
|
3. Build the project:
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
### Running in Development Mode
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
## Making Changes
|
|
|
|
### Code Style
|
|
|
|
- Follow TypeScript best practices
|
|
- Use meaningful variable and function names
|
|
- Add comments for complex logic
|
|
- Keep functions focused and single-purpose
|
|
- Use proper error handling
|
|
|
|
### Testing
|
|
|
|
Currently, the project doesn't have automated tests. When adding new features:
|
|
|
|
1. Test your changes manually
|
|
2. Consider adding integration tests for database operations
|
|
3. Test both streaming and non-streaming responses
|
|
|
|
### Documentation
|
|
|
|
- Update README.md if you add new features
|
|
- Add inline comments for complex code
|
|
- Update this CONTRIBUTING.md if you add new development processes
|
|
|
|
## Submitting Changes
|
|
|
|
### Pull Request Process
|
|
|
|
1. **Update your fork** with the latest changes:
|
|
```bash
|
|
git fetch upstream
|
|
git rebase upstream/main
|
|
```
|
|
|
|
2. **Commit your changes** with clear, descriptive messages:
|
|
```bash
|
|
git commit -m "feat: add support for custom cost models"
|
|
```
|
|
|
|
3. **Push to your fork**:
|
|
```bash
|
|
git push origin feature/your-feature-name
|
|
```
|
|
|
|
4. **Create a Pull Request** on GitHub with:
|
|
- Clear title and description
|
|
- Links to any related issues
|
|
- Screenshots if applicable
|
|
- Testing instructions
|
|
|
|
### Pull Request Guidelines
|
|
|
|
- **One feature per PR** - separate features into different PRs
|
|
- **Update documentation** - include any necessary changes to README.md
|
|
- **Test thoroughly** - ensure your changes work as expected
|
|
- **Follow the code style** - maintain consistency with existing code
|
|
- **Include tests** - add tests for new functionality if possible
|
|
|
|
## Code Review
|
|
|
|
All pull requests will be reviewed by maintainers. Please be responsive to feedback and make requested changes in a timely manner.
|
|
|
|
## Reporting Issues
|
|
|
|
### Bug Reports
|
|
|
|
When reporting bugs, please include:
|
|
|
|
1. **Environment details**:
|
|
- Node.js version
|
|
- PostgreSQL version (if applicable)
|
|
- Operating system
|
|
|
|
2. **Steps to reproduce**:
|
|
- Clear, step-by-step instructions
|
|
- Sample code if applicable
|
|
|
|
3. **Expected behavior**:
|
|
- What should happen
|
|
|
|
4. **Actual behavior**:
|
|
- What actually happens
|
|
|
|
5. **Error messages**:
|
|
- Full error stack traces
|
|
|
|
### Security Issues
|
|
|
|
Please report security vulnerabilities privately to mail@praveent.com. Do not create public issues for security problems.
|
|
|
|
## Feature Requests
|
|
|
|
We welcome feature requests! Please:
|
|
|
|
1. **Check existing issues** first to avoid duplicates
|
|
2. **Create a new issue** with:
|
|
- Clear description of the feature
|
|
- Use case and motivation
|
|
- Implementation suggestions if you have any
|
|
- Potential alternatives you've considered
|
|
|
|
## Community
|
|
|
|
- Join our discussions in GitHub issues
|
|
- Be respectful and inclusive
|
|
- Help others when you can
|
|
- Celebrate milestones and successes
|
|
|
|
## License
|
|
|
|
By contributing to this project, you agree that your contributions will be licensed under the MIT License.
|