2013-10-08 1 views
2

У меня есть модуль Perl с префиксом названия компании «Foobar :: Thing», но был ошибочно создан и загружен в CPAN с неправильным корпусом. Я хотел бы переименовать модуль, чтобы использовать соответствующий корпус, например «FooBar :: Thing». До сих пор не так много пользователей этого модуля, поэтому я в порядке с исправлением использования модуля. Возможно ли переименование модуля CPAN? Это вызовет конфликты?Переименование имени пакета CPAN с другим корпусом

+3

Поскольку модули Perl чувствительны к регистру, CPAN теоретически должен иметь возможность обрабатывать как 'FooBar :: Thing', так и' Foobar :: Thing'. Пользователи могут быть смущены, но CPAN не должен быть. Однако вы знаете, что они говорят о «теории» и «практике», не так ли? Было бы хорошо, если бы вы смогли предоставить обновление для Foobar :: Thing, чтобы оно (a) давало устаревшее предупреждение при его использовании и (b) направляет все вызовы на 'FooBar :: Thing'. Вы также можете перечислить 'FooBar :: Thing' в качестве предпосылки для обновленного' Foobar :: Thing'. Когда вы уверены, что все обновились, вы можете удалить обломки из CPAN. –

+0

Обратите внимание, что файловая система без учета регистра (NTFS в Windows; HFS в Mac OS X) может вызвать некоторые проблемы. Поэтому CPAN может отключить их. Если это так, вам, возможно, придется использовать суффикс, такой как 'FooBar :: Thing2' для версии 2 модуля с новой капитализацией. Я не уверен, какие текущие правила регистрации модулей (рассказывая вам о том, что было уместно 15 лет назад, не очень поможет - даже если бы я мог помнить), поэтому я мог бы полностью отключиться от цели. –

+1

Чтобы избежать использования «Foobar :: Thing» и «FooBar :: Thing» для поиска и установки на CPAN, удалите все версии «Foobar :: Thing», используя свою учетную запись PAUSE. Чем скорее, тем лучше, говорю я. – mob

ответ

3

Поскольку имена модулей Perl чувствительны к регистру, CPAN теоретически может обрабатывать как FooBar::Thing, так и Foobar::Thing. Пользователи могут быть смущены, но CPAN не должен быть. Однако вы знаете, что они говорят о «теории» и «практике», не так ли? Было бы хорошо, если бы вы смогли предоставить обновление до Foobar::Thing, чтобы оно (a) выдавало устаревшее предупреждение при его использовании и (b) направляет все вызовы на FooBar::Thing. Вы также можете перечислить FooBar::Thing в качестве препринта для обновленного Foobar::Thing. Когда вы уверены, что все обновились, вы можете удалить обломки из CPAN.

Обратите внимание, что файловая система, не учитывающая регистр (например, NTFS в Windows или HFS в Mac OS X), может вызвать некоторые проблемы. Поэтому CPAN может отключить их, запретив модули, которые отличаются только верхним и нижним регистрами написание имени модуля. Если это так, вам, возможно, придется использовать суффикс, такой как FooBar::Thing2 для версии 2 модуля с новой капитализацией. Я не уверен, что текущие правила регистрации модуля (рассказывая вам о том, что было уместно 15 лет назад, не помогут - даже если бы я мог вспомнить), поэтому я мог бы полностью отключиться от цели.

Вы должны посмотреть, что скажет Авторская загрузка SERver (ПАУЗА): On the Naming of Modules. Тем не менее, AFAICS, он ничего не говорит о чувствительности к регистру (в смысле избежания столкновений, основанных на различиях в капитализации).

Вы также должны пройти:

, но опять же, я не вижу ничего об именах модулей чувствительны к регистру. (Да, верхний предел 11 символов в компонентах имени, но ...)

Смежные вопросы