Skip to content

Development & Contributing

m8tec edited this page Mar 31, 2026 · 2 revisions

Development & Contributing

Contributions are welcome!

Prerequisites

  • .NET 10 SDK
  • Git
  • A code editor (VS Code, Visual Studio, Rider, etc.)

Getting Started

Clone the Repository

git clone https://github.com/m8tec/octo-sync.git
cd octo-sync

Restore Dependencies

dotnet restore

Optional (Spotify): Setup Playwright

Playwright browser binaries must be installed once.

dotnet tool install --global Microsoft.Playwright.CLI
~/.dotnet/tools/playwright install chromium

Build

dotnet build

Run Tests

dotnet test

Run the Application

cd OctoSync
dotnet run

Docker Compose

docker compose -f docker-compose.yml -f docker-compose.local.yml up --build

Configuration

Enter custom configuration in the development environment into appsettings.Development.json, as the file is added to .gitignore.


Code Style

  • Follow C# naming conventions
  • Use meaningful variable and method names
  • Keep methods focused and small
  • Write unit tests for new functionality
  • Pay attention to clean code principles
  • Aim for single responsibility

Pull Request Process

  1. Fork the repository
  2. Create a feature/fix/etc branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Write/update tests
  5. Ensure all tests pass (dotnet test)
  6. Commit with meaningful messages
  7. Push to your fork
  8. Open a Pull Request

Commit Message Format

Use conventional commits:

feat: add xyz playlist source
fix: handle error xyz
refactor: extract orchestration into dedicated services
test: add tests track title normalization
docs: update installation guide

Reporting Issues

When reporting issues, please include:

  • Octo-Sync version
  • Execution method (Docker/Manual)
  • Steps to reproduce
  • Expected vs actual behavior
  • Relevant logs