Как использовать "грузовой янк"?

Я опубликовал свой ящик, а затем понял, что я забыл включить некоторые мелкие детали в мой README.md, Я включил эту деталь в README.md и сделал git commit а также push, Как обновить мой ящик без необходимости менять его версию?

Из crates.io документация:

cargo yank

Могут возникнуть случаи, когда вы публикуете версию ящика, которая фактически по какой-либо причине была сломана (синтаксическая ошибка, забыли включить файл и т. Д.). В таких ситуациях Cargo поддерживает yank версии ящика.

$ cargo yank --vers 1.0.1 

$ cargo yank --vers 1.0.1 --undo

Я не понимаю, как его использовать. Почему 2 команды: одна без другой --undo? Должен ли я запустить их обоих? Или только один? Который?

Должен ли я бежать crate package && crate publish после этого? Или только cargo yank ...? Будет ли это автоматически обновлять мой ящик?

1 ответ

Решение

Вы не можете обновить свой ящик без публикации новой версии. Хранилище ящиков специально спроектировано таким образом, что ящики являются неизменяемыми: после публикации они никогда не изменяются, точка.

Янкинг - это когда есть серьезная проблема с опубликованным ящиком, такая как серьезная уязвимость в системе безопасности, или возможность повредить данные пользователя, или да, потому что это просто не работает. Это сигнал о том, что никто не должен использовать эту версию ящика по любой причине. Неполный README.md на самом деле не соответствует этому стандарту.

Просто опубликуйте новую версию или отложите ее до тех пор, пока вы не опубликуете новую версию по какой-либо другой причине.


Что касается того, почему есть две команды: потому что одна возвращает версию, а другая отменяет ее. Un-yank - это не то же самое, что публикация, это просто восстановление ящика, который выдернули, как будто его никогда не дергали.

Другие вопросы по тегам