Modyfikowanie wtyczek WordPress
Mam prawdopodobnie bardzo proste pytanie dotyczące wprowadzania zmian we wtyczce WordPress. Przepraszam za prostotę mojego pytania, ponieważ jestem nowy w pracy z kodem, który może być open-source i nowy w tworzeniu wtyczek.
Znalazłem wtyczkę, która zapewniła dobre rozwiązanie dla projektu, nad którym pracowałem. Aby jednak działało lepiej na moje potrzeby, zmodyfikowałem kod. Wtyczka ma licencję „GPLv2 lub nowszą”, która na tej podstawie wydaje się mówić, że modyfikacje wtyczki są w porządku, o ile zauważę wszelkie wprowadzone zmiany i opublikuję wtyczkę na licencji „GPLv2 lub nowsza” licencja też.
Ze względu na dokonane przeze mnie modyfikacje wtyczki chciałbym móc udostępniać ją innym w ramach pracy klienta. Jednak nie jestem pewien, jaki jest najlepszy sposób, aby iść do przodu.
Czy nie byłoby lepiej opublikować wtyczkę z licencją „GPLv2 lub nowszą” i zaktualizować ją samodzielnie (wprowadziłem bardzo drobne zmiany do wtyczki)?
A może lepiej byłoby dla mnie skontaktować się z pierwotnym właścicielem wtyczki, aby współpracować i zaproponować moje zmiany? Jakie mam możliwości, jeśli pierwotny właściciel nie zaakceptuje moich zmian?
Aby odpowiedzieć na pytania @ wrydere:
- Wtyczka jest bezpłatna, obecnie nie oferuje płatnych aktualizacji ani nie generuje żadnego zysku.
- Zdecydowanie nie mam czasu na utrzymywanie własnej wersji wtyczki. Byłoby miło, gdybym mógł dla klientów, ale nie wydaje mi się, żeby tak się działo. Jednak gdybym miał utrzymywać własny rozwidlenie wtyczki, jeśli pierwotny właściciel przesyła aktualizacje, czy zaakceptowałbym te aktualizacje (wraz z własnymi zmianami), aby pulpit nawigacyjny WordPressa stale informował mnie o aktualizacji wtyczki (ponieważ kod nie 't "pasuje")? Zasadniczo chciałbym móc akceptować aktualizacje od właściciela za każdym razem, gdy aktualizacje są wysyłane i nadal zachowywać moje zmiany bez powiadamiania mnie przez WordPress, że muszę „zaktualizować” wtyczkę.
- Na razie nie, nie sądzę, żeby to zachowanie musiało być wykonywane w dodatkowej wtyczce. Mogłoby to być? Prawdopodobnie. Ale większość ciężkiego podnoszenia została już wykonana za pomocą tej wtyczki, więc utworzenie nowego byłoby odtworzeniem koła.
Odpowiedzi
W duchu oprogramowania open source zdecydowanie bym zaczął od skontaktowania się z oryginalnym programistą. Jeśli wprowadzone zmiany są ulepszeniem kodu źródłowego i nie przenoszą funkcjonalności wtyczki w nowym kierunku, współpraca może być mile widziana.
Jeśli Twoje modyfikacje zostaną odrzucone przez pierwotnego programistę, przed wykonaniem dalszych czynności należy rozważyć kilka innych kwestii:
Czy wtyczka, którą pierwotnie sprzedałeś, jest bezpłatną wtyczką, czy też zapłaconą? A może jest darmowy, ale oferuje płatne aktualizacje (freemium)? Jeśli w jakikolwiek sposób generuje dochody, rozwidlanie go i ponowne wydawanie z niewielkimi zmianami jest moralnie wątpliwe.
Czy masz czas, przepustowość i chęć utrzymania nowej, rozwidlonej wersji oryginalnej wtyczki? Jeśli nie, prawdopodobnie nie chcesz udostępniać go publicznie tylko po to, aby przekazać swoje drobne zmiany w ręce innych ludzi. Być może lepiej będzie, jeśli utrzymasz swój własny rozwidlenie wtyczki dla własnych projektów.
Czy zmiany w zachowaniu można wprowadzić w dodatkowej wtyczce? Istnieje wiele przykładów wtyczek, które wymagają / modyfikują / budują na podstawie innych wtyczek. Ta trasa wymaga bycia na bieżąco z aktualizacjami zarówno rdzenia WP, jak i początkowej wtyczki, co może przyprawiać o ból głowy, ale jeśli możliwe jest wprowadzanie zmian za pomocą haków, akcji i (bezpiecznie i rozsądnie) nadpisywanie funkcji z oryginalnej wtyczki, to może być trasa do zbadania.
Przepraszam, że nie udzieliłem ostatecznej odpowiedzi, ale sytuacja może wskazywać na wiele możliwych wyników.