2013-07-05 13 views
5

Powiedz, że używam biblioteki w projekcie Leiningen, hostowanym na Clojars. I wpadam na błąd. Rozproszę projekt na Github i naprawię błąd. Co teraz?Patch Library From Clojars

Jaki jest najlepszy sposób korzystania z mojej wersji biblioteki w moim projekcie Leiningen?

P.S. Wracam ze świata Ruby, więc ja oczywiście mam Bundler na uwadze ...

Odpowiedz

6

Jeśli chcesz tylko zmodyfikowana wersja dostępna Lokalnie możesz śledzić proces Arthura aż do kroku "Przetestuj mój program". Jest to w porządku, jeśli pracujesz nad aplikacją, którą będziesz pakował wraz z zależnościami do wdrożenia (z powiedzeniem lein uberjar). Możesz również skorzystać z funkcji kasowania Leiningena, aby równolegle pracować nad głównym projektem i zmodyfikowaną biblioteką (udokumentowane w Leiningen's tutorial - link do wersji z aktualnego wydania 2.2.0).

Jeśli chcesz, aby zmodyfikowana wersja była dostępna w publicznym repozytorium Maven, zaakceptowaną rzeczą do zrobienia (w istocie jest to zalecane dla tego konkretnego przypadku użycia i żadnego innego) jest wydanie wersji projektu z oryginalnym identyfikatorem artefaktu oraz identyfikator grupy org.clojars.{your-clojars-account-name}.

Na przykład, jeśli chcesz, aby uwolnić swoją własną wersję projektu foo z (defproject foo "upstream-version" ...) w swojej project.clj, to by zmienić jego defproject formularz do (defproject org.clojars.kendallb/foo "your-version" ...) przed zwolnieniem. Wtedy możesz polegać na [org.clojars.kendallb/foo "your-version"] w swoich projektach.

W ten sposób nie będzie żadnych konfliktów ani z oryginalnym identyfikatorem artefaktu, ani z żadnym innym widelcem.

Co do tego, że twoja zmiana połączyła się z procesem wydobycia, proces Arthura jest całkowicie uzasadniony.

+0

Wybrałem tę odpowiedź, ponieważ zawierała instrukcje dotyczące uzyskania poprawki do produkcji. Dzięki! – KendallB

6

mój proces:

  • Widelec projekt na github
  • zmienić wersję z Project-0,1 0,2-SNAPSHOT do projektu-0.1.2-arthur-SNAPSHOT w project.clj w zależności
  • Fix bug
  • Run "Lein install", aby dodać swój widelec do mojego lokalnego repo
  • cd do mojego projektu (ten używający zależności)
  • Zmień mój porject.clj zależy od projektu-0.1.2-arthur-SNAPSHOT
  • test mojego programu
  • Prześlij żądanie ściągania do opiekuna zależność
  • Hop na IRC i porozmawiać z opiekunem o poprawce i zapytaj grzecznie, czy mój styl kodowania pasuje do ich wizji projektu. (To również pomaga przyspieszyć ich scalenie)
  • Kiedy połączy naprawić usunąć -arthur- od imienia i przetestować ich SNAPSHOT oddział
  • Beg i powoływać się na ich zwolnić stałą projekt więc można upuścić zależność SNAPSHOT.
  • Podczas oczekiwania na uzależnienia scalić i zwolnić można przesunąć swój widelec do clojars pod imię i nazwisko i sznurkiem wersji, która identyfikuje go jako fork (w moim przypadku używam -arthur-.

Tt kusi, aby zastosować wiele "poprawek stylu" do projektu, gdy jesteś w pobliżu i kopie wokół, aby naprawić błąd. Jeśli chcesz to zrobić, spróbuj pracować z opiekunem projektu, ponieważ są w nim to na dłuższą metę i bardziej emocjonalnie zainwestowane w kod.