First off, thank you for considering contributing to ObsWebSocket.Core! 🎉 Your help is appreciated, whether it's reporting bugs, suggesting features, or writing code.
This document provides guidelines for contributing to the project.
- Reporting Bugs: Found something not working as expected? Please open an issue!
- Suggesting Enhancements: Have an idea for a new feature or an improvement? Open an issue to discuss it.
- Code Contributions: Want to fix a bug or implement a feature? Submit a pull request!
Before creating a bug report, please check existing issues to see if someone else has already reported it.
When creating a bug report, please include as much detail as possible:
- A clear and descriptive title.
- Steps to reproduce the behavior: Be specific!
- Expected behavior: What you thought would happen.
- Actual behavior: What actually happened.
- Version information:
- ObsWebSocket.Core version (or commit hash if building from source)
- OBS Studio version
- obs-websocket plugin version (if using OBS < 28, though this library targets v5+)
- .NET version (
dotnet --version) - Operating System
- Screenshots or logs: If applicable, these can be very helpful.
We love new ideas! Feel free to suggest enhancements:
- Use a clear and descriptive title.
- Explain the problem or motivation: Why is this enhancement needed? What use case does it support?
- Describe the proposed solution: How would this feature work?
- Consider alternatives: Have you thought of other ways to achieve the same goal?
To contribute code, you'll need to set up a local development environment:
- Prerequisites:
- .NET 9 SDK (Latest Preview)
- Git
- An IDE like Visual Studio 2022 (Preview), VS Code with C# Dev Kit, or JetBrains Rider.
- OBS Studio (v28+) installed locally for testing (manual setup required for integration tests).
- Clone the Repository:
git clone https://github.com/Agash/ObsWebSocket.git cd ObsWebSocket - Build the Solution:
(This will also run the source generators)
dotnet build
- Run Unit Tests:
dotnet test ObsWebSocket.Tests/ObsWebSocket.Tests.csproj - (Optional) Run Integration Tests:
- These require a running OBS instance configured with specific scenes/sources (details TBD).
- Use the Test Explorer in your IDE or
dotnet test --filter TestCategory=Integration.
- Fork the repository and create your branch from
main. - Make your changes. Ensure code follows the project's style guidelines.
- Add tests for any new functionality or bug fixes.
- Ensure all tests pass (
dotnet test). - Update documentation (README.md, XML comments) if you added or changed APIs.
- Commit your changes using descriptive commit messages.
- Push your branch to your fork.
- Open a pull request back to the main repository. Explain your changes clearly in the PR description.
- Follow modern C# 13 / .NET 9 idioms (file-scoped namespaces,
using static, pattern matching, etc.). - Adhere to the .NET Runtime Coding Guidelines where applicable.
- Use meaningful names for variables, methods, and classes.
- Add XML documentation comments for all public APIs.
- (Consider adding a linter like CSharpier or EditorConfig settings)
This project expects participants to adhere to a standard code of conduct. Please ensure your interactions are respectful and constructive.
Thank you again for your interest in contributing!