який правильний спосіб оновити плагін через черепаху svn до сховища?


18

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

тут є багато запитань щодо svn, але вони лише мене плутали далі: -z

якось мені це вдалося поки що, але мені потрібно знати належну процедуру оновлення мого плагіна до нової версії, що стосується створення магістралі та створення тегів.

Це те, що я робив до цих пір.

  1. кодуйте оновлення плагіну на моїй локальній, поки я не задоволений
  2. скопіюйте всі файли у моїй локальній папці плагінів у / trunk / (файл плагіна та readme оновили номери версій)
  3. ввести каталог магістралей
  4. клацніть правою кнопкою миші каталог магістралі та оберіть створити гілку / тег та встановіть її для копіювання у папку в / теги / з назвою номера версії

Це правильно і в правильному порядку? якщо ні, то як правильно?

також про номери версій ...

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

як Wordpress визначає, яка є остання версія та чи повинен користувач оновити свою версію? це робить version_compare? що працює тільки з належним форматом php-версії, чи не так? напр. 2.9.2 вважається нижчою версією, ніж 2.81.2? (тому що, як я розумію, версія_compare починається зліва і порівнює вище / нижче для кожної цифри, тому 9 вважатиметься менше 81)

інше питання,

якщо я помічу дурну помилку в коді, яка насправді не впливає на роботу плагіна, можливо, помилка друку або додаткове зображення. Що я можу редагувати та зобов’язувати, щоб будь-які нові завантаження плагіна містили зміни?

чи потрібно редагувати магістраль І папку тегів і виконувати обоє?


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

Відповіді:


29

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

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

Це те, що я робив до цих пір.

  1. кодуйте оновлення плагіну на моїй локальній, поки я не задоволений
  2. скопіюйте всі файли у моїй локальній папці плагінів у / trunk / (файл плагіна та readme оновили номери версій)
  3. ввести каталог магістралей
  4. клацніть правою кнопкою миші каталог магістралі та оберіть створити гілку / тег та встановіть її для копіювання у папку в / теги / з назвою номера версії

Це правильно і в правильному порядку? якщо ні, то як правильно?

Майже ...

Кроки, які ви повинні виконувати:

  1. Кодуйте оновлення плагіна локально, поки не будете задоволені цим
  2. Збільште тег "стабільний" у вашому readme.txtфайлі, щоб відповідати номеру нової версії
  3. Скопіюйте свої локальні оновлення в /trunkкаталог папки локальних плагінів
  4. Введіть весь плагін, щоб зберегти зміни до /trunkсховища
  5. Клацніть правою кнопкою миші /trunkта створіть новий тег, скопіювавши /tags/X.X.Xтуди, де xxx - та сама версія у тезі "стабільний" 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? (тому що, як я розумію, версія_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папці безпосередньо.

Якщо ви думаєте, що це може бути гарною ідеєю, поплескуйте себе по потилиці та випустіть натомість версію технічного обслуговування :-)

Як згадував Піет, я раніше написав гарний набір покрокових інструкцій ... але сайт, здається, втратив свої скріншоти. Ось ще одна версія цього ж покрокового керівництва зі скріншотами з Tortoise, розміщеним на моєму власному сайті: http://eamann.com/tech/how-to-publish-a-wordpress-plugin-subversion/


2
Чудова відповідь. Хоча одна невелика редакція: Коли ви говорите, ніколи не змінюйте те, що позначено тегами, це майже так. Скажімо, ви робите друк в своїй програмі readme, не потрібно робити випуск технічного обслуговування, щоб виправити це. Сьогодні спілкувався в # wordpress-meta з одним із провідних розробників, який згадав, що добре просто відредагувати свою теговану версію, якщо це лише файл readme.txt . Ніхто інший. Взагалі, так, так, тримайтеся подалі від редагування ваших тегів.
Енді Мерсер

Чудова відповідь. Єдине, що я хотів би додати, це те, що, якщо мова йде про номери версій плагінів, це гарна ідея використовувати Semantic Versioning, хоча вам цього не потрібно, користувачам набагато простіше дізнатися, чи може ваш плагін потенційно зламати їхній сайт, якщо це ОСНОВНА зміна версії. Яку б систему ви не обрали для версії, ваш плагін повинен міститись і не забудьте оновити журнал змін змін.
Арон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.