Как правильно обновить плагин с помощью Tortoise SVN в хранилище?


18

Мне стыдно сказать, что я немного не в курсе процедуры, используемой для обновления плагина с помощью tortoise svn, хотя мой плагин находится в репозитории годами и его загрузили более 300 000 раз!

Есть много вопросов о SVN здесь, но они только смутили меня: -z

каким-то образом мне удалось до сих пор, но мне нужно знать правильную процедуру обновления моего плагина до новой версии в отношении фиксации транка и создания каталога тегов.

Это то, чем я занимаюсь до сих пор.

  1. закодируйте обновления плагина на моем локальном компьютере, пока я не буду им доволен
  2. скопировать все файлы из моей локальной папки плагинов в / trunk / (плагин и файл readme имеют обновленные номера версий)
  3. зафиксировать магистральный каталог
  4. щелкните правой кнопкой мыши каталог ствола и выберите «Создать ветку / тег» и установите его для копирования в папку в / tags / с именем, являющимся номером версии.

Это правильно и в правильном порядке? если нет, каков правильный путь?

Кроме того, о номерах версий ...

по какой-то причине я перешел с версии 2.8.1 на 2.81.2 в своем последнем обновлении, означает ли это, что оно не будет отображаться как обновление, доступное на информационных панелях людей, имеющих версию 2.81.2, если я изменю номер следующей версии на 2,9?

Как WordPress определяет, какая версия является последней, и должен ли пользователь обновлять свою версию? это делает version_compare? это работает только с правильным форматом версии PHP не так ли? например. 2.9.2 считается более низкой версией, чем 2.81.2? (потому что, насколько я понимаю, version_compare начинается слева и сравнивается выше / ниже для каждой цифры, поэтому 9 будет считаться меньше 81)

Другой вопрос,

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

я должен отредактировать ствол И папку с тегами и зафиксировать оба?


2
нет причин для смущения, у меня тоже были проблемы около месяца назад, и вы на самом деле продвинулись намного дальше, чем я :) @EAMann действительно хорошо описывает всю процедуру, включая скриншоты, в этой теме: wordpress.stackexchange.com/questions/ 16951 /…

Ответы:


29

Мне стыдно сказать, что я немного не в курсе процедуры, используемой для обновления плагина с помощью tortoise svn, хотя мой плагин находится в репозитории годами и его загрузили более 300 000 раз!

Не будь SVN может быть сложным для многих людей ... так что давайте пройдемся по шагам ...

Это то, чем я занимаюсь до сих пор.

  1. закодируйте обновления плагина на моем локальном компьютере, пока я не буду им доволен
  2. скопировать все файлы из моей локальной папки плагинов в / trunk / (плагин и файл readme имеют обновленные номера версий)
  3. зафиксировать магистральный каталог
  4. щелкните правой кнопкой мыши каталог ствола и выберите «Создать ветку / тег» и установите его для копирования в папку в / tags / с именем, являющимся номером версии.

Это правильно и в правильном порядке? если нет, каков правильный путь?

Почти ...

Шаги, которые вы должны выполнить:

  1. Кодируйте плагин обновления локально, пока вы не будете довольны
  2. Увеличьте тег "stable" в вашем readme.txtфайле, чтобы он соответствовал номеру новой версии
  3. Скопируйте свои локальные обновления в /trunk каталог локальной папки плагинов
  4. Передайте весь плагин, чтобы сохранить изменения в/trunk в хранилище
  5. Щелкните правой кнопкой мыши /trunkи создайте новый тег, скопировав /tags/X.X.Xтуда, где xxx - та же версия в теге «stable» readme.txt(шаг 2).
  6. Передайте весь плагин, чтобы сохранить тег

по какой-то причине я перешел с версии 2.8.1 на 2.81.2 в своем последнем обновлении, означает ли это, что оно не будет отображаться как обновление, доступное на информационных панелях людей, имеющих версию 2.81.2, если я изменю номер следующей версии на 2,9?

Бинго. Если вы зафиксировали версию 2.81.2 в качестве обновления, и люди действительно загрузили это обновление, они не увидят 2.9, когда вы выпустите его.

Как WordPress определяет, какая версия является последней, и должен ли пользователь обновлять свою версию? это делает version_compare? это работает только с правильным форматом версии PHP не так ли? например. 2.9.2 считается более низкой версией, чем 2.81.2? (потому что, насколько я понимаю, version_compare начинается слева и сравнивается выше / ниже для каждой цифры, поэтому 9 будет считаться меньше 81)

Точно. При стандартном сравнении версий PHP версия 2.81.2 будет более новой, чем 2.9, потому что 81> 9.

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

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

я должен отредактировать ствол И папку с тегами и зафиксировать оба?

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

2      .      1       .       3       .       5
major         minor           maint           build

Сборка номеров, которые я использую только для внутреннего использования или для бета-версий ... вы почти никогда не будете увидите от меня номер сборки, если я электронной почте файл вручную (это способ распространения предварительных версий, который не нарушит обновления WordPress) ,

Если я обнаружу ошибку в живой версии, я сделаю быстрый патч и выпущу версию для технического обслуживания. Допустим, я выпустил версию 2.2 плагина, и кто-то заметил, что я забыл вызвать jQuery в режиме noConflict (). Я сделаю быстрый патч и сразу же выпущу 2.2.1.

Увеличение версии заставит WordPress распознать обновление и предоставить исправление всем, кто уже установил версию 2.2.

Чтобы выпустить версию для технического обслуживания, вы должны выполнить те же действия, что и при выпуске полной версии системы. Так что вносите изменения, увеличивайте версию readme.txt, фиксируйте/trunk , добавляйте теги и т. Д.

Но как только вы пометили что-то, вы никогда не измените это снова. Думайте о своей /tagsпапке как о замороженной во времени. Каждая версия в этой папке представляет собой снимок вашего плагина в определенный момент времени. Вы никогда не должны изменять какие-либо файлы в /tagsпапке напрямую.

Если вы думаете, что это может быть хорошей идеей, шлепните себя по затылку и вместо этого выпустите версию для обслуживания :-)

Как упоминал Пит, я ранее написал хороший набор пошаговых инструкций ... но сайт, похоже, потерял мои скриншоты. Вот еще одна версия того же пошагового руководства со скриншотами из «Черепахи», размещенного на моем собственном сайте: http://eamann.com/tech/how-to-publish-a-wordpress-plugin-subversion/


2
Отличный ответ. Одно небольшое редактирование: когда вы говорите, никогда не меняйте что-либо с тегами, это почти правда. Допустим, вы сделали опечатку в самом файле readme, поэтому нет необходимости делать вспомогательный выпуск только для ее исправления. Сегодня общался в # wordpress-meta с одним из ведущих разработчиков, который сказал, что можно просто отредактировать вашу помеченную версию, если это всего лишь файл readme.txt . Нет других. В общем, да, держитесь подальше от редактирования ваших помеченных файлов.
Энди Мерсер

Отличный ответ. Единственное, что я хотел бы добавить, это то, что, когда дело доходит до номеров версий плагинов, рекомендуется использовать семантическое управление версиями, хотя вам и не нужно, пользователям гораздо проще узнать, может ли ваш плагин потенциально взломать их сайт, если он ОСНОВНОЕ изменение версии. Независимо от того, какую систему вы выбрали для создания версии вашего плагина, будьте последовательны и не забудьте обновить журнал изменений readme.
Арон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.