Об этом проекте

Rancher Desktop — это открытое десктопное приложение, обеспечивающее управление Kubernetes и контейнерами в Windows, macOS и Linux. Проект представляет собой приложение на Electron, написанное в основном на TypeScript, объединяющее несколько технологий в один целостный инструмент. Он включает утилиту командной строки rdctl, написанную на Go. README ориентирован на разработчиков, работающих над самим Rancher Desktop. Информация для пользователей находится на rancherdesktop.io, а документация для пользователей — на docs.rancherdesktop.io. Процесс разработки: - Большинство задач (сборки для разработки, упаковка, модульные тесты, сквозные тесты) выполняются через скрипты yarn; существуют некоторые исключения, например тесты BATS. - Настройка Windows предлагается в двух формах: виртуальная машина для разработки под Microsoft Windows 10 с автоматизированным скриптом настройки PowerShell или ручное окружение с использованием WSL, Scoop, nvm, Visual Studio с рабочей нагрузкой Desktop development with C++ и Windows SDK, а также настройкой окончаний строк в git. - Настройка macOS использует nvm для установки Node 22, yarn и Go через Homebrew. На машинах Apple M1 перед установкой зависимостей и запуском скриптов необходимо задать переменную окружения M1. - Настройка Linux требует Node.js v22 с пакетами для разработки, yarn classic, Go 1.22 или более поздней версии и инструментальной цепочки C/C++ для node-gyp, чтобы собрать пакет ffi-napi. Запуск и тестирование: - yarn dev запускает версию для разработки. - yarn test запускает модульные тесты; yarn test:e2e запускает интеграционные тесты. - yarn build и yarn package создают выходные данные сборки в dist/. Кросс-компиляция не поддерживается. Отладка: - Удалённую отладку Chrome можно включить с помощью флагов --remote-debugging-port и --remote-allow-origins в Linux, macOS и Windows, а затем получить доступ через Chrome на локальном порту. Расширения можно удалённо отлаживать таким же образом после загрузки расширения. - GoLand (и аналогичные IDE JetBrains) могут отлаживать среду разработки с помощью плагина Node.js и конфигурации запуска Node.js, указывающей на scripts/ts-wrapper.js scripts/dev.ts. Сборки для разработки: - В Windows и macOS каждый коммит запускает GitHub Actions, которые загружают артефакты .exe и .dmg. - В Linux GitHub Actions выполняет часть процесса, а Open Build Service завершает его. Существуют каналы dev и stable; сборки dev берутся из ветки main и веток release-*, а версии имеют формат priority.branch.commit_time.commit. Приведены инструкции по добавлению репозиториев разработки .deb и .rpm и по доступу к сборкам AppImage для разработки. API: - Rancher Desktop поддерживает ограниченный HTTP API, определённый в pkg/rancher-desktop/assets/specs/command-api.yaml, с примерами клиента в go/src/rdctl. API имеет версию 1, но считается внутренним и экспериментальным и может изменяться без предварительного уведомления. Участие и дополнительная информация: - Документ CONTRIBUTING.md и каталог docs/development/ содержат дополнительную документацию для разработчиков.