To jest coś, o czym myślałem od dłuższego czasu, ale nie mogę znaleźć właściwej metody, aby to zrobić.
Zasadniczo pracuję z 6 różnymi stronami internetowymi, wszystkie z Magento CE 1.9.2+
Na tych stronach używam wielu rozszerzeń, które opracowałem wraz z zespołem, z którym pracuję (tutaj mówimy o rozszerzeniach ponad 50), a kod tych rozszerzeń jest przechowywany na Bitbucket. Więc nie jestem jedyną osobą zarządzającą tymi rozszerzeniami, pracujemy nad nimi 3 osoby.
W tej chwili, gdy chcę dodać funkcję / naprawić błąd dla jednego z tych rozszerzeń, oto mój przepływ pracy:
- Zainstaluj ostatnią wersję rozszerzenia na jednej ze stron za pośrednictwem Modmana
- Napraw błąd / dodaj funkcję / test
- Ręcznie skopiuj zmiany do lokalnego folderu zawierającego wszystkie moje rozszerzenia
- Zatwierdź i wypchnij przez GIT z tego folderu rozszerzenia do Bitbucket (1 repozytorium Bitbucket na moduł)
- Następnie nową wersję modułu można zainstalować za pośrednictwem Modmana
Ważna uwaga: używam tutaj modmana z wydrukiem, bez dowiązania symbolicznego.
Mój największy problem został wyróżniony pogrubioną czcionką: chcę móc pominąć ten krok, ponieważ jest to duża przyczyna problemów (czasami niektóre pliki są zapomniane, nieprawidłowe kopiowanie / wklejanie wymaga działania człowieka).
Jak mogę poprawić przepływ pracy, aby pozbyć się tego kroku ręcznego kopiowania / wklejania? Jestem otwarty na sugestie tutaj.
źródło
Submodules
funkcję git?Odpowiedzi:
Bardzo często stosuję następujące podejście, które jest dość niezależne od ram.
/path/to/my/module
W swoim projekcie zdefiniuj lokalne repozytorium do lokalnej kopii modułu. Dzieje się tak, aby Twój projekt mógł pobierać nieprzypisane zmiany z LFS.
Następnie kompozytor może wymagać konkretnej gałęzi programistycznej (tak długo, jeśli
minimum-stability
pozwalają na to projekty ).Zobowiązać się
/path/to/my/module
,composer update namespace/module
w ramach projektu, zobaczyć go zainstalować i przetestować.Uważam, że to podejście działa dobrze w przypadku modułów M1 przy użyciu https://github.com/Cotya/magento-composer-installer , ponieważ instalacja z linkami symbolicznymi może czasami sprawiać kłopot i wywołuje problemy podczas dodawania nowych katalogów lub ścieżek, które wcześniej nie były linkami symlink przez modman.
Linki, które mogą zainteresować
Debugowanie
Użyj,
composer require namespace/module dev-branch-name-here -vvv
aby zobaczyć gałęzie, z których możesz korzystać lokalnie.Sprawdź dwukrotnie, które
minimum-stability
zostało ustawionedev
w projekcie, w którym instalujesz moduł.Your requirements could not be resolved to an installable set
Znaleziono, czytając komentarz Patricka Schwisowa tutaj .
Krótko mówiąc, możesz zaktualizować,
composer.json
aby wymusić na konkretnej wersji podczas programowania, aby brzmiał:źródło
path
typu repo dla modułów projektowych że przyzwyczajenie I ponownego użycia i następnie git lub packagist modułów będę ponownym użyciem.To twój problem. Jeśli nie możesz zmienić tej konfiguracji dla wdrożeń w sklepie, rozważ pracę nad współużytkowanymi rozszerzeniami w osobnej instancji, w której używasz modmana z dowiązaniami symbolicznymi.
Używam kompozytora z instalatorem AOE do klonowania repozytoriów rozszerzeń bezpośrednio do,
.modman
ale przypuszczam, że instalowanie modułów z Git za pomocą modmana również działa. Tak czy inaczej możesz pracować bezpośrednio w module repozytorium Git.źródło
Więc moim pomysłem tutaj jest rozpoczęcie współpracy z kompozytorem nawet dla Magento1. Gdybyś miał własnego paczkę , który nie jest zbyt trudny do zarządzania teraz, gdy dostępna jest aws i chmura Google, lub możesz użyć pakietu publicznego. Będziesz miał „łatwy” dostęp do nowszych wersji w swoich sklepach Magento1.
Oznacza to, że gdy pojawi się nowsza wersja, możesz to zrobić
composer update
i zautomatyzuje to proces kopiowania.Zajrzyj na https://github.com/Cotya/magento-composer-installer dla Magento1 przez kompozytora.
Dzięki takiemu podejściu możesz również bezpośrednio pracować na repozytorium git w folderze dostawcy, jeśli masz ustawione kopiowanie w celu,
.git
a więc możesz wypchnąć zmienione z powrotem do repozytoriów bez oddzielnej kasy. Pamiętaj jednak, że musisz tu uważać i upewnić się, na której gałęzi jesteś, w przeciwnym razie możesz usunąć kod (zrobiłem to kilka razy).źródło