Как просматривать и редактировать дорожную карту
roadmap.drawio.svg — это обычное SVG-изображение со встроенной диаграммой
draw.io: откройте его где угодно, чтобы увидеть карту. Но это
сгенерированный файл: настоящий исходник — это единое текстовое описание, общее для всех языков, в
tools/mapgen/roadmap/, а этот .drawio.svg является результатом
сборки, а не тем, что вы правите.
Просмотр
- На сайте: salmer.github.io/CppDeveloperRoadmap/goto/svg/?l=ru
- На GitHub: откройте roadmap.drawio.svg — файл отображается как изображение.
- Интерактивно: просмотрщик draw.io (только просмотр — изменения там не сохраняются).
Редактирование
Карта собирается из tools/mapgen/roadmap/ — structure.dsl (дерево узлов, грейды, этапы,
подсказки) и по одному <lang>.tsv на язык (только текст). Не редактируйте этот .drawio.svg
вручную — он пересобирается из исходника, и CI (mapcheck) отклонит карту, которая
разошлась с исходником.
- Сделайте форк и правьте исходник:
- узел, его грейд/этап или подсказка →
tools/mapgen/roadmap/structure.dsl - текст (подпись, подсказка, дата) → соответствующая строка в
en.tsv/ru.tsv/zh.tsv/es.tsv(новому узлу нужна строка во всех четырёх).
- узел, его грейд/этап или подсказка →
- Только в первый раз — подготовьте окружение:
python tools/mapgen/setup.py --venvСкрипт создаёт виртуальное окружение, ставит Pillow и проверяет то, что он установить не может (CJK-шрифт и десктопное приложение draw.io), подсказывая точную команду для вашей ОС.
- Пересоберите, обновите все четыре карты и проверьте их — одной командой из корня
репозитория:
python tools/mapgen/build.py --dir tools/mapgen/roadmap --deploy --check--deployкопирует каждую собранную карту в соответствующий<Language>/Graph/roadmap.drawio.svg,--checkзатем запускаетmapcheck. Зависимости проверяются перед сборкой: если чего-то не хватает (или вы забыли активировать виртуальное окружение), команда сообщит об этом сразу. - Создайте pull request с исходником и пересобранными картами.
Грамматика DSL и подробности — в tools/mapgen/README.md. Не
можете запустить сборку? Всё равно поправьте исходник и укажите это в PR — мейнтейнер
пересоберёт карты.