Функциональность Retract Go - отозвать старые версии пакетов как небезопасные, несовместимые или сломанные

У меня проблема с выпуском одного из моих проектов, где мы выполнили выпуск 1.0, но это была ошибка, которую мы позже проанализировали, и наш фактический стабильный выпуск - 0.7, и в будущем мы также будем вносить незначительные изменения, поэтому мы хотим воздержаться наш пользователь использует 1.0, потому что если они это сделают , он получит версию 1.0, и мы не можем попросить кого-то заставить кого-то получить конкретную версию с помощью команды .

Лучше я могу реализовать ретракт. Так что, если я поставлю retract для версии 1.0, то с новым выпуском v0.8 это будет работать или мне нужно иметь версию выше 0.1?

У меня возникла путаница после прочтения всей документации, как там упоминается - To retract a version, a module author should add a retract directive to go.mod, then publish a new version containing that directive. The new version must be higher than other release or pre-release versions; that is, the @latest version query should resolve to the new version before retractions are considered.

1 ответ

Я думаю, вам нужно сделать v1.0.1, который убирает и v1.0.0, и v1.0.1, чтобы получить желаемый эффект. В частности, не вносите никаких изменений в версию, которую вы уже выпустили, есть вероятность, что люди будут получать кешированную копию, а не то, что было зарегистрировано (и если они получат обновленную версию v1.0.0, они получат контрольную сумму несоответствие, так как sum.golang.org, скорее всего, будет иметь контрольную сумму из неизмененной версии).

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