cargo init больше не создаст манифест прямо в домашнем каталоге

28.01.2026

Создание нового пакета в домашнем каталоге теперь завершается ошибкой с подсказкой. Раньше команда создавала манифест, и это ломало работу Cargo в любом вложенном каталоге.

Что произходило

Манифест в домашнем каталоге превращал весь этот каталог в корень пакета. А Cargo ищет корень, поднимаясь вверх от текущего каталога. Значит, любая команда, запущенная в любой вложенной папке — включая папки вроде «Загрузки» или «Документы», — начинала считаться частью пакета с манифестом в домашнем каталоге.

Это ломало сборку внутри вложенных проектов: Cargo поднимался выше их манифеста и находил домашний. Сообщение об ошибке при этом указывало на домашний каталог, а не на тот проект, где человек запускал команду.

Что изменилось

Команда отказывается выполняться и подсказывает указать имя подкаталога. То есть либо создать пакет в отдельной папке, либо явно указать её.

Проверка стоила одной строки перед созданием; сама проблема — одна из самых запутанных для новичков, потому что указывает не на ту папку.

Оригинал

A Cargo.toml in the home directory causes issues with file discovery, as Cargo will treat the entire home directory as a package root when running commands from any subdirectory.

Упоминаний: 1 · Просмотров: 4