Документация OmsiLaunch

Документация версии v0.1.0-beta.3Исходник на GitHub

Перевод исходной страницы на английском языке для OmsiLaunch 0.1.0-beta3. Нормативной является английская страница: при расхождениях приоритет имеют английская страница и код.

Это нормативная английская документация OmsiLaunch 0.1.0-beta3 — базовой версии после этапа укрепления (post-hardening). OmsiLaunch обеспечивает программируемый запуск, владение сеансом и runtime-управление ровно для одной сборки OMSI 2 — профиля Omsi23004_692EBFBF. Каждая страница в docs/ описывает то, что делает текущий код; если страница и код расходятся, прав код, а страница содержит ошибку.

Во всей документации используется следующая шкала стабильности: STABLE_BETA, EXPERIMENTAL, PARTIAL, INTERNAL, UNAVAILABLE. Флаги, которые разбираются, но ничего не делают, помечены как ACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT (принимается для совместимости, сейчас ни на что не влияет). Ничто не считается проверенным в runtime, если этого не подтверждает статус проверки в runtime.

Кому что читать#

СтраницаНазначение
Начало работыСпланировать, запустить, наблюдать и остановить один сеанс из корневого каталога OMSI.
УстановкаПредварительные требования, распаковка пакета в корневой каталог OMSI, проверка с помощью /version, чистое удаление.
Быстрый старт с публичным APIЗаконченная программа на .NET, которая планирует, запускает, читает и останавливает один сеанс.
Справочник CLIВсе флаги, командные слова и иерархические маршруты OmsiLaunch.exe / OmsiLaunchW.exe.
Примеры CLIГотовые к копированию командные строки для типовых задач.
Справочник LaunchSpecВсе свойства LaunchSpec и значения перечислений, правила загрузки JSON для /spec.
Справочник профилей сеансаСхема profile.yaml omsilaunch.session-profile/v1, ключи, ограничения, приоритет.
Справочник публичного APIIOmsiLaunch, публичные записи и перечисления, стабильность каждого члена.
Перечень публичного APIСгенерированный список всех публичных типов и членов с сигнатурами и стабильностью.
Runtime-управлениеКанал runtime-команд, тайм-ауты, handle, семантика остановки.
Справочник возможностейКаталог возможностей и все идентификаторы публичных runtime-операций с их классификацией.
Жизненный цикл сеансаПереходы SessionState, что обещает StartSessionAsync, как завершается сеанс.
Транзакции и восстановление после сбояСостояния журнала, резервные копии, проверка восстановления, удаления в рамках сеанса, восстановление после аварийного завершения.
Модель постоянного плагинаЗамыкание плагина plugins\OmsiLaunch.*, контроль целостности по манифесту, чего сеанс никогда не касается.
Локальное управление / IPCПротокол именованного канала (named pipe) 0.1, конечная точка для каждой установки, привязка к session_id, модель доверия.
OmsiLaunchW.exeОконный хост Windows (без консоли): отличия от OmsiLaunch.exe, /silent, диалоги, коды выхода.
Значок в трее WindowsИндикатор в области уведомлений: значок, меню, окно состояния поле за полем, End session (завершение сеанса), перезапуск Проводника (Explorer).
Справочник ошибокВсе коды OL_E_* / OL_W_* с категорией и значением.
Коды выходаЗначения PublicExitCode от 0 до 10 и коды shim-загрузчика от 100 до 106.
Упаковка / структура установкиФайлы в релизном ZIP-архиве, release-manifest.json, структура .omsilaunch\.
Совместимость / поддерживаемые сборки OMSIЕдинственный поддерживаемый хеш Omsi.exe, принимаемый хеш Steam LAA, требования к платформе.
Известные ограниченияЧто в этой бета-версии не поддерживается, поддерживается частично или является принятым риском.
Статус проверки в runtimeЧто выполнялось под OMSI, что выполнялось только офлайн и что ещё требует реального сеанса.

Страницы в корне репозитория, которые остаются нормативными для сопровождающих: README.md, PUBLIC-API.md, RUNTIME-CONTROL.md, RUNTIME-CAPABILITIES.md, BUILD-PROFILES.md, IMPLEMENTATION-STATUS.md, TESTING-AND-VALIDATION.md, POST-RELEASE-BACKLOG.md. Они дают сводку; подробным справочником служат перечисленные выше страницы. Исторические страницы перечислены в манифесте документации.

Как документация поддерживается в актуальном состоянии#

Гейт документации tests\OmsiLaunch.DocumentationTests компилируется с OmsiLaunch.Api и OmsiLaunch.Core и сравнивает перечисленные выше страницы с кодом, который определяет публичную поверхность:

ГейтЧто проверяет
docs.cli-flagsКаждый элемент CliInput.KnownFlags присутствует в справочнике CLI в виде `/flag` или `/flag:`; каждый элемент CliInput.AcceptedNoEffectFlags помечен в своей строке как ACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT; каждое командное слово и каждый маршрут CliInput.HierarchicalRoutes приведены вместе со своей runtime-операцией; для каждого значения PublicExitCode есть строка | n | в таблице кодов выхода.
docs.capabilitiesКаждый идентификатор PublicCapabilityRegistry.All, каждый элемент PublicCapabilityRegistry.PublicRuntimeOperationIds и каждое имя PublicCapabilityClassification присутствуют в справочнике возможностей.
docs.errorsКаждый код PublicErrorCodes.All присутствует в справочнике ошибок, и ни один литерал OL_E_* / OL_W_* в src\ или tools\OmsiLaunch.Cli\ не отсутствует в PublicErrorCodes.
docs.public-apiКаждый экспортируемый тип OmsiLaunch.Api, каждое значение перечисления и каждый член IOmsiLaunch присутствуют в справочнике публичного API, и используются все пять слов стабильности.
docs.launchspecКаждое публичное свойство, достижимое из LaunchSpec, и каждое значение его перечислений присутствуют в справочнике LaunchSpec.
docs.session-profilesКаждый ключ SessionProfileCompiler.SchemaKeys, идентификатор схемы и ограничение 256 KiB присутствуют в справочнике профилей сеанса.
docs.structureКаждая страница из таблицы навигации существует.
docs.linksКаждая относительная ссылка в docs\**\*.md (за исключением docs\localized\) и в корневых файлах *.md указывает на существующий файл или каталог.
docs.localizationДля каждой локали, указанной в docs\localized\LOCALIZATION-MANIFEST.md, есть все страницы локализуемого набора; каждая страница сохраняет заголовки, таблицы и блоки кода английской страницы, каждый встроенный фрагмент кода (флаги, идентификаторы возможностей и операций, коды ошибок, ключи, идентификаторы) и каждую ссылку, а её относительные ссылки разрешаются.

Гейт — один из наборов тестов, которые запускает tools\Invoke-OfflineValidation.ps1 (его можно пропустить с помощью -SkipDocs). Он работает офлайн, никогда не запускает OMSI и прерывает сборку, если флаг, маршрут, возможность, код ошибки, значение перечисления или публичный тип не задокументированы либо ссылка не работает. Прозу он не проверяет, поэтому страница всё равно может неверно описывать поведение; о таком случае следует сообщать как об ошибке в странице.

Переводы#

docs\localized\<locale>\ содержит полные переводы этой документации 0.1.0-beta3 для pt-BR, pt-PT, en-GB, fr-FR, de-DE, es-ES, es-LATAM, it-IT, pl-PL, nl-NL, ru-RU, zh-CN, zh-TW и ja-JP. Набор страниц, корневые каталоги локалей и страницы, которые намеренно не переводятся, перечислены в localized/LOCALIZATION-MANIFEST.md. Переводы сохраняют без изменений все команды, флаги, идентификаторы, коды ошибок и примеры английских страниц, и гейт docs.localization это проверяет. Нормативным источником остаются английские страницы: если перевод расходится с ними, приоритет имеют английская страница и код, а перевод содержит ошибку.