Files
Sovran_SystemsOS/CONTRIBUTING.md
T

3.8 KiB

Contributing to Sovran Systems OS

First off, thank you for considering contributing to Sovran_SystemsOS! 🎉

Development and Release Repositories

The GitHub repository is the primary location for Sovran_SystemsOS development and collaboration and serves as the project's connection to the GitHub ecosystem. Most work is contributed through feature branches and pull requests that target GitHub main. Development may also begin in a local branch or on staging-dev at the project's self-hosted Gitea instance: https://git.sovransystems.com/Sovran_Systems/Sovran_SystemsOS.

GitHub main and Gitea staging-dev are kept synchronized as the active development line, although one may briefly lead the other while changes are being integrated. The canonical, release-ready code is maintained on Gitea's stable branch, in keeping with the self-sovereignty ethos of Sovran_SystemsOS.

The workflow is:

  1. Most development and project collaboration — including issues, pull requests, and reviews — happens through GitHub, with completed work integrated into main.
  2. Work may also originate locally or on Gitea staging-dev. Accepted changes are synchronized between GitHub main and Gitea staging-dev.
  3. When changes are complete and tested, they are promoted to Gitea stable, which is the code used by released Sovran_SystemsOS builds.

Please note: GitHub main and Gitea staging-dev may contain new features and code not yet in stable, and that code may not be fully tested.

Moreover, Sovran_SystemsOS has been improved with the help of AI. We have used Copilot and Arean.Ai to work through significant coding challenges and troubleshooting hurdles. We will continue to use AI to help keep Sovran_SystemsOS stable and maintained.

How Can I Contribute?

🐛 Reporting Bugs

  • Open an Issue
  • Use a clear and descriptive title
  • Describe the steps to reproduce the bug
  • Include your OS version, hardware specs, and any relevant logs

💡 Suggesting Features

  • Open an Issue with the tag enhancement
  • Explain the feature and why it would be useful
  • Be as detailed as possible

🔧 Submitting Code Changes

1. Fork the Repository

Click the "Fork" button at the top right of the GitHub repository.

2. Clone Your Fork

git clone https://github.com/YOUR_USERNAME/Sovran_SystemsOS.git
cd Sovran_SystemsOS

3. Create a Feature Branch

git checkout -b feature/your-feature-name

4. Make Your Changes

  • Write clean, well-commented code
  • Follow the existing code style and structure
  • Test your changes thoroughly

5. Commit Your Changes

git add .
git commit -m "Brief description of your changes"

6. Push to Your Fork

git push origin feature/your-feature-name

7. Open a Pull Request

  • Go to the original repository on GitHub
  • Click "New Pull Request"
  • Select your fork and branch
  • Provide a clear title and description of your changes
  • Reference any related Issues (e.g., "Closes #12")

Pull Request Guidelines

  • One PR per feature/fix. Do not bundle unrelated changes.
  • Keep PRs small and focused. Smaller PRs are easier to review and merge.
  • Write meaningful commit messages.
  • Do not push directly to main. Always use a feature branch and open a PR.
  • Be patient. PRs will be reviewed as soon as possible.

Code Style

  • Follow the existing patterns in the codebase
  • Comment your code where necessary
  • Keep functions small and focused

Code of Conduct

By participating in this project, you agree to be respectful and constructive. We are building something meaningful — let's do it together with integrity.