|
| 1 | +# Contributing to Singularities‑AI |
| 2 | + |
| 3 | +Thank you for your interest in contributing to Singularities‑AI! We welcome contributions from the community of all skill levels. This guide explains how you can get involved, what our workflow is, and what standards we follow to keep the project healthy. |
| 4 | + |
| 5 | +## 1. Why Contribute? |
| 6 | +- Singularities‑AI is a **self-hosted, privacy-first** web UI for LLMs, enabling users to run models offline and control their data. |
| 7 | +- By contributing, you help improve the platform for everyone — from bug fixes and documentation improvements to new features and integrations. |
| 8 | +- Your work will be visible to the community, appreciated by users, and can serve as part of your portfolio. |
| 9 | + |
| 10 | +## 2. Code of Conduct |
| 11 | +By participating, you agree to follow our Code of Conduct. Please be respectful, constructive, and inclusive in all communications (issues, pull requests, comments). We want to maintain a welcoming environment for everyone. |
| 12 | + |
| 13 | +## 3. How to Contribute |
| 14 | + |
| 15 | +### 3.1 Reporting an Issue |
| 16 | +If you find a bug, unexpected behaviour, or have a feature request: |
| 17 | +1. Check the existing issues in the repository first to see if it’s already reported. |
| 18 | +2. If it’s new, open a new **Issue**: |
| 19 | + - Provide a clear and descriptive title. |
| 20 | + - Describe what you expected vs what actually happened. |
| 21 | + - Include steps to reproduce, environment details (OS, version, front/back end version). |
| 22 | + - Add screenshots or logs if helpful. |
| 23 | +3. Be open to follow-up questions or requests for clarification from maintainers. |
| 24 | + |
| 25 | +### 3.2 Proposing a Feature or Enhancement |
| 26 | +- Open an issue with tag “enhancement” (or similar) describing the feature: why it matters, how it might work, what trade-offs exist. |
| 27 | +- If you’re ready to work on it, mark your intention (via comment) and a maintainer can assign or discuss it with you. |
| 28 | +- We encourage small, incremental enhancements rather than large monolithic changes when possible. |
| 29 | + |
| 30 | +### 3.3 Submitting a Pull Request (PR) |
| 31 | +1. Fork the repository and create a new branch from `main` (e.g., `feat/my-cool-feature` or `fix/issue-123`). |
| 32 | +2. Write or update tests where appropriate. We value test coverage and maintainability. |
| 33 | +3. Ensure code adheres to existing style conventions (coding style, linting) and that the build passes. |
| 34 | +4. Update documentation if your change adds or modifies behaviour (README, docs folder, comments). |
| 35 | +5. In your PR description: |
| 36 | + - Reference the issue number (e.g., “Fixes #45”). |
| 37 | + - Explain what you changed and why. |
| 38 | + - Highlight any trade-offs or side-effects. |
| 39 | +6. Keep PRs small and focused. Large PRs are harder to review and slower to merge. |
| 40 | +7. Respond to review feedback; maintainers may request changes before merging. |
| 41 | + |
| 42 | +## 4. Branching & Releases |
| 43 | +- `staging` branch is the stable version. |
| 44 | +- There may be a `dev` or `next` branch for upcoming features. |
| 45 | +- For urgent fixes (bugs/security) we may create hotfix branches. |
| 46 | +- Each release is tagged and includes release notes summarizing changes. |
| 47 | + |
| 48 | +## 5. Testing & Quality |
| 49 | +- We rely on automated tests (unit/integration) to ensure stability. |
| 50 | +- Run existing test suites locally before submitting changes. |
| 51 | +- Ensure your changes don’t introduce regressions or degrade performance. |
| 52 | +- Document any new requirements or environment variables. |
| 53 | + |
| 54 | +## 6. Documentation |
| 55 | +- Good documentation is as important as good code. |
| 56 | +- Update README, code comments, or any docs when behaviour changes. |
| 57 | +- Provide usage examples or screenshots if applicable. |
| 58 | +- Fixing a typo or clarifying docs counts as a valuable contribution. |
| 59 | + |
| 60 | +## 7. Style Guidelines |
| 61 | +- Use consistent indentation, naming conventions, and formatting (based on existing code). |
| 62 | +- Write clear commit messages: short summary (50–72 chars) + optional detailed body. |
| 63 | +- Use meaningful branch names. |
| 64 | +- Avoid including compiled files, secrets, or large binaries in your commits. |
| 65 | + |
| 66 | +## 8. Licensing & Ownership |
| 67 | +- This project is licensed under a Source‑Available Non‑Commercial Licence (see LICENSE.txt). |
| 68 | +- By submitting a contribution (pull request), you agree to license your contribution under the same licence terms. |
| 69 | +- Make sure you own the copyright to the code you submit (or it is appropriately licensed). |
| 70 | + |
| 71 | +## 9. Community & Communication |
| 72 | +- Discussions happen via Issues and Pull Requests in this repository. |
| 73 | +- For larger or more interactive discussions, we may use a chat or forum (see README for details). |
| 74 | +- Thanks to everyone who helps review, triage issues, or answer questions — your contributions count just as much as code. |
| 75 | + |
| 76 | +## 10. Thank You! |
| 77 | +Your contributions help make Singularities‑AI stronger, more reliable, and widely usable. Even a documentation improvement or typo fix is a valid contribution. Welcome aboard! |
| 78 | + |
| 79 | +**Let’s build something great together!** |
0 commit comments