Magento 1: поліпшення робочого процесу з розробки мого модуля (Modman, композитор, git)


14

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

Отже, я працюю з 6 різними веб-сайтами, на яких працює Magento CE 1.9.2+

На цих веб-сайтах я використовую купу розширень, які я та команда, з якою я працюю, розробили (тут ми говоримо про 50+ розширеннях), і код цих розширень зберігається на Bitbucket. Тож я не єдина людина, яка керує цими розширеннями, ми - 3 людини, які працюють над ними.

На даний момент, коли я хочу додати функцію / виправити помилку для одного з цих розширень, ось мій робочий процес:

  • Встановіть останню версію розширення на одному з веб-сайтів через Modman
  • Виправити помилку / додати функцію / тест
  • Копіюйте зміни вручну в локальну папку, яка містить усі мої розширення
  • Введіть та натисніть GIT із цієї папки розширення на Bitbucket (1 репортаж Bitbucket на модуль)
  • Тоді нову версію модуля можна встановити через Modman

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

Моя найбільша проблема була виділена жирним шрифтом: я хочу пропустити цей крок, тому що це велика причина проблем (деякі файли іноді забуваються, неправильна копія / вставка, передбачає людські дії).

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


ви пробували Submodulesособливість git?
Gopal Patel

Для чого ви використовуєте тверду копію? За допомогою посилань у вас просто повинен бути клон git під папкою modman. Потім просто редагуйте на місці і просто натисніть.
Крістоф у Фомані

@KristofatFooman Я повинен був це уточнити. Один із розробників працює під керуванням Windows, і тому у нас виникли проблеми із посиланнями ^^
Рафаель у Digital Pianism


1
@RaphaelatDigitalPianism для проблеми Windows спробуйте подивитися на github.com/sitewards/modman-php
Девід Маннерс

Відповіді:


8

Я дуже часто використовую такий підхід, який є досить агностичним.

  1. Ознайомтеся з модулем, в який ви хочете відредагувати /path/to/my/module
  2. Створіть гілку для своєї роботи (розгалуження відповідного тегу тощо).
  3. Покладіть роботу на цю галузь (не натискайте).
  4. У своєму проекті визначте локальне сховище до локальної копії модуля. Це так, що ваш проект може втягнути незапущені зміни з вашого LFS.

    {
        "repositories": [
        {
            "type": "path",
            "url": "/path/to/my/module"
        }
    ],
  5. Потім композитор може вимагати конкретної галузі розвитку (так довго говорять, що ваші проекти minimum-stabilityце дозволяють).

    composer require namespace/module dev-branch-name-here
  6. Ви допускаєте в /path/to/my/module, composer update namespace/moduleв проекті, побачити його установку і тестування.

  7. Коли ви закінчите, пригнічуйте свої зобов'язання і піднімайте.

Я вважаю, що цей підхід добре працює для модулів M1 за допомогою https://github.com/Cotya/magento-composer-installer , оскільки синхронізована установка може бути болючим часом і привертати вас при додаванні нових каталогів або шляхів, які раніше не були пов'язані між собою модменом.

Посилання, які можуть зацікавити

Налагодження

  1. Використовуйте composer require namespace/module dev-branch-name-here -vvvдля перегляду гілок, які ви можете використовувати локально.

  2. Двічі перевірте, що minimum-stabilityбуло встановлено devв проекті, в який ви встановлюєте модуль.

  3. Your requirements could not be resolved to an installable set

Знайдено, прочитавши коментар Патріка Швісова тут .

Якщо інші пакети мають вимоги до зміненого пакету, ваша галузь розробки може не відповідати цим вимогам (в результаті чого "Ваші вимоги не можуть бути вирішені до встановленого набору пакетів."). Щоб виправити це, ви можете зробити вбудований псевдонім, що всі інші пакети будуть бачити його як конкретну версію.

Якщо коротко, ви можете оновити свій файл, composer.jsonщоб примусити його до певної версії під час розробки, зробити так, щоб він читав так:

"namespace/module": "dev-branch-name-here as 1.2.3"

Ще один цікавий підхід тут. Дякуємо за ваш внесок
Рафаель у Digital Pianism

1
Це добре. Я схильний використовувати pathтип репозиції для модулів проекту, які я не буду повторно використовувати, а потім git або пакувальник для модулів, які я буду повторно використовувати.
Девід Маннерс

1
@DavidManners Я використовую цей потік вище в поєднанні з satis. Модулі постійно задовольняються, але я не хочу нічого підштовхувати до основної лінії, поки не перевіряю і не запускаю локально. Отже, скористайтеся вищевказаним робочим процесом, а потім натисніть і позначте та чекайте, коли задоволення підбере його.
Люк Роджерс

@LukeRodgers, з цим робочим процесом ви взагалі не використовуєте модман, а всі ваші файли модулів розміщуються всередині файлів magento? (у вас немає папки .modman для своїх розширень). Я правильно це зрозумів?
MployBy

Привіт @MployBy, я не використовую модман безпосередньо. Однак я не впевнений, що Cotya / magento-композитор-інсталятор використовує його під кришкою, пройшов час, як я створив новий модуль magento1.
Люк Роджерс

6

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

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

Я використовую композитор з установщиком AOE composer, щоб клонувати розширення сховищ безпосередньо в, .modmanале, напевно, встановлення модулів з Git з модменом теж працює. У будь-якому випадку ви можете працювати безпосередньо в модулі сховища Git.


Так, як я вже говорив у коментарях, причина в тому, що один із розробників використовує Windows та IIRC. У нас були деякі проблеми з ним за допомогою символьних посилань
Рафаель у Digital Pianism

6
О, я цього не бачив. Дайте цьому
дияволу

4

Тому моя ідея тут для вас - почати працювати з композитором навіть для Magento1. Якщо у вас був власний пакувальник , яким зараз не надто важко керувати, коли вже є хмара aws та google, або ви можете скористатися загальнодоступним пакувальником. Ви мали б "легкий" доступ до нових версій у своїх магазинах Magento1.

Це означає, що, коли вийде нова версія, ви можете, composer updateі вона автоматизує процес копіювання для вас.

Перегляньте https://github.com/Cotya/magento-composer-installer для Magento1 через композитора.

При такому підході ви також можете безпосередньо працювати над сховищем git у папці постачальника, якщо у вас встановлено, що він може копіюватись у .gitфайл, і так ви можете змінити зміни до своїх репост, не маючи окремої каси. Хоча зауважте, що ви повинні бути обережними тут і переконайтеся, що знаєте, на якій галузі ви перебуваєте, інакше ви можете видалити свій код (зробили це кілька разів).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.