Подтвердить что ты не робот

Как переименовать драгоценный камень?

У меня есть драгоценный камень, который я хочу переименовать. Это опубликовано на RubyGems. Меня больше всего беспокоят люди, которые хотят его обновить.

Я вижу два пути, но мне бы очень хотелось услышать от людей, которые переименовали их драгоценный камень, как они это сделали.

1. превратите старый в метапакет

  • Создайте новый камень (с именем smart-cropper)
  • Добавить smart-cropper как зависимость от croptoelie (старый камень)
  • Удалите все библиотеки lib, bin и другие коды из croptoelie

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

Другая проблема заключается в том, что управление версиями становится сложнее: мне пришлось бы повредить версию старого "метапакета" каждый раз, когда я выпустил новую версию переименованного (smart-cropper) gem, или люди никогда не получат новую версию.

2. бросить предупреждения об отказе

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

Проблема, которую я вижу в этом, заключается в том, что она может быть довольно навязчивой и может превратить людей [1] далеко от драгоценного камня.

Есть ли другие варианты? Есть ли что-то встроенное в "RubyGems", чтобы удовлетворить изменение имени?

[1] не так много людей используют его; из-за имени его трудно найти.:)

4b9b3361

Ответ 1

Вы просто нажимаете новый камень с новым именем и рассказываете своим пользователям о новом имени. Нет механизма для переименования драгоценных камней. - Персонал поддержки RubyGems, 20 февраля 2012 г.

С этой целью следующие советы (некоторые из которых, как я вижу, вы уже сделали).

в старом драгоценном камне, бросьте предупреждения об отказе

Пример:

warn "[DEPRECATION] This gem has been renamed to _____ and will no longer be supported. Please switch to _____ as soon as possible."

в старом gem .gemspec файле

Отобразите сообщение после установки старого драгоценного камня, используя атрибут post_install_message. Следующий пример основан на драгоценности Героку.

gem.post_install_message = <<-MESSAGE
!    The '_____' gem has been deprecated and has been replaced by '_____'.
!    See: https://rubygems.org/gems/_____
!    And: https://github.com/_____/_____
MESSAGE

на старой странице репозитория GitHub

-1- В верхней части страницы: Добавьте описание в этот репозиторий: (укажите новое имя)

Moved to ---> "_____".

-2- В верхней части страницы: добавьте веб-сайт в этот репозиторий: (сделайте это URL-адресом нового репо)

https://github.com/_____/_____

-3- Загрузите новый README.markdown:

# OLD NAME

Moved to [new name](https://github.com/_____/_____).

-4- Рассмотрите возможность удаления всех несущественных файлов.

в новом файле gem .gemspec

Включите следующее уведомление в конце атрибута summary или description:

Formerly known as '_____'.

держите старый драгоценный камень

В какой-то отдаленной точке вам может понадобиться удалить старый камень из RubyGems. Начиная с RubyGems 1.3.6 и gemcutter 0.5.0 (примерно в феврале 2010 года) вы можете использовать gem yank, чтобы удалить свой драгоценный камень из доступных с установкой gem и другими командами gem. Тем не менее, камень будет доступен для скачивания по двум основным причинам:

  • Другие драгоценные камни, возможно, были вытолкнуты, которые зависят от вашего драгоценного камня.
  • Массовое удаление важных камней, основанных на сообществе, может быть легко предотвращено.

Перейдите сюда для получения дополнительной информации о yank.