🌐 English · Русский
Спасибо за интерес к проекту! Ниже — короткое руководство.
- .NET SDK 10 (умеет собирать таргеты
net8.0/net9.0/net10.0). - Для запуска тестов под все таргеты желательны рантаймы .NET 8, 9 и 10.
dotnet restore
dotnet build -c Release
dotnet test -c ReleaseЗапуск тестов под конкретный таргет:
dotnet test -c Release -f net10.0В tests/YandexMusic.Tests/Integration есть тесты, обращающиеся к реальному API. Они требуют
OAuth-токен Яндекс Музыки и автоматически пропускаются, если токен не задан.
- Скопируйте
.env.exampleв.envи впишите токен:(ФайлYANDEX_MUSIC_TOKEN=ваш_токен
.envв.gitignore— не коммитьте токен. Вместо.envможно задать переменную окруженияYANDEX_MUSIC_TOKEN.) - Запустите только интеграционные тесты:
Или только юнит-тесты (без сети):
dotnet test -c Release --filter FullyQualifiedName~Integrationdotnet test -c Release --filter FullyQualifiedName!~Integration
src/YandexMusic— основная клиентская библиотека.src/YandexMusic.Ynison— Ynison: состояние воспроизведения в реальном времени и пульт (отдельный пакет).src/YandexMusic.Quasar— Quasar: умные колонки в локальной сети (отдельный пакет).src/YandexMusic.DependencyInjection— интеграция с DI (AddYandexMusic()).samples/YandexMusicTerminal— интерактивный терминальный музыкальный плеер (TUI), пример использования.tests/YandexMusic.Tests— модульные и интеграционные тесты (xUnit; интеграционные используют атрибут[IntegrationFact]и запускаются только при заданнойYANDEX_MUSIC_TOKEN).docs/— документация (DocFX).
- Соблюдайте стиль из
.editorconfig(dotnet formatпоможет привести код в порядок). - Публичные методы — асинхронные, принимают
CancellationToken; в библиотечном коде используйтеConfigureAwait(false). - Бросайте типизированные исключения, производные от
YandexMusicException(пространство имёнYandexMusic), а неSystem.Exception. - Версии NuGet-пакетов задаются централизованно в
Directory.Packages.props. - Новый функционал сопровождайте тестами и, при необходимости, документацией в
docs/.
- Создайте ветку от
main. - Убедитесь, что
dotnet buildиdotnet testпроходят без ошибок. - Опишите изменения в PR и добавьте запись в
CHANGELOG.mdиCHANGELOG.ru.md(разделUnreleased).
Отправляя вклад, вы соглашаетесь с тем, что он будет распространяться под лицензией MIT.