Jak przesłać łatkę do projektu Launchpad?


20

Mając doświadczenie w Git / GitHub i bardzo mało wiedząc o Bazaar VCS, chciałbym od czasu do czasu zgłosić błąd do projektów hostowanych na Launchpadzie, a nawet wysłać łatkę. Chciałbym to zrobić w „właściwy” sposób, aby był gotowy do połączenia lub ulepszenia, ale nie przeszkadzał.

Wydaje mi się, że nie mogę znaleźć przyzwoitego, prostego poradnika dostosowanego do moich potrzeb.

Co do tej pory zrobiłem:

  1. Utworzyłem konto Launchpad,

  2. zgłosił błąd,

  3. zainstalowany Bazaar i konfiguracja kluczy SSH itp.

Gdyby to był GitHub, zrobiłbym to

  1. rozwidlaj repo,

  2. klonuj rozwidlone repo,

  3. stwórz gałąź o zdrowej nazwie i wykonaj pracę,

  4. commit + push,

  5. utwórz żądanie ściągnięcia za pomocą GitHub WUI.

Ale to nie jest GitHub, a zarówno architektura Launchpad, jak i Bazaar wyglądają zupełnie inaczej niż ich odpowiedniki GitHub / Git.

Czy więc dobra dusza mogłaby mnie uratować przed tonięciem w tonach dokumentów i stworzyć prostą ścieżkę, głównie drugą część? Czy możliwe jest dołączenie odpowiednich poleceń CLI, gdy są one potrzebne?


Edycja: Wydaje się, że powinienem wyjaśnić, czy pytam konkretnie o pakiety Ubuntu (cokolwiek to znaczy) lub projekty Launchpad.

Tak naprawdę nie dbam o rozróżnienie między pakietami Ubuntu a pakietami innymi niż Ubuntu. Każde oprogramowanie może być w Ubuntu dzisiaj, a jutro z niego - lub odwrotnie. Rozwój jest ważniejszy niż dystrybucja.

Więc zakładałem, że

  • nie każdy pakiet dystrybuowany w Ubuntu jest hostowany na Launchpadzie,

  • istnieje „oficjalny” lub „domyślny” przepływ pracy dla Launchpada (cóż, jeśli wszyscy deweloperzy mogą zgodzić się na korzystanie z Bazaar, dlaczego większość z nich nie może zgodzić się na przepływ poprawek?),

więc pytam o sposób uruchamiania, a nie o Ubuntu. I wybrałem AU, ponieważ ponieważ skrzyżowanie jest ogromne, myślę, że tutaj jest dość tematycznie.


czy ten krótki dokument pomaga? jeśli tak, prosimy o rozszerzenie istniejącej odpowiedzi w razie potrzeby doc.bazaar.canonical.com/bzr.dev/en/mini-tutorial
david.libremone

Odpowiedzi:


15

Czy to projekt Launchpad?

(Jeśli już wiesz, że jest to projekt Launchpad, możesz to pominąć).

Nie wszystkie projekty znalezione na Launchpadzie są tam faktycznie hostowane i rozwijane - niektóre są kopiami kodu hostowanego gdzie indziej (GitHub / Gitorious / etc), inne pochodzą z Debiana. Te oryginalne źródła są znane jako projekty „upstream” i zwykle najlepiej jest przesyłać łaty u źródła i pozwolić, aby zmiany dotarły do ​​„Ubuntu” (zwykle w następnej wersji).

Na stronie projektu należy wyraźnie zaznaczyć, czy jest on hostowany gdzie indziej, czy na Launchpadzie. Jeśli nie, zapytaj opiekunów projektu, jak chcą otrzymywać zmiany. Niektóre projekty upstream preferują proste pliki łatek, inne wolą wysyłanie / wypychanie za pośrednictwem odpowiednich hostów.

Jako specjalną uwagę, oficjalne pakiety Ubuntu (oprogramowanie przechowywane w oficjalnych repozytoriach Ubuntu, które można zainstalować z Centrum oprogramowania) mają kilka różnych sposobów przesyłania poprawek, ponieważ wiele z tych pakietów pochodzi bezpośrednio z Debiana i powinno być idealnie tam naprawionych zamiast tylko w Ubuntu. (To jest zupełnie inne pytanie.)

Jak przesłać łatkę

Ogólny sposób na przesłanie łaty polega na tym, że tworzysz swój oddział, zatwierdzasz go lokalnie i wypychasz z powrotem na Launchpad:

bzr push lp:~user/project/branch-name

Następnie możesz zaproponować swojemu oddziałowi połączenie się z nadrzędnym, z którego rozgałęziłeś się, za pośrednictwem strony internetowej lub za pomocą bzr lp-proposepolecenia.

Jeśli zgłosiłeś błąd, a Twój oddział go naprawił, pamiętaj, aby wykonać następujące czynności, gdzie 000000zastąpiono go numerem błędu, zakładając, że jest to błąd zgłoszony na Launchpadzie, a nie gdzie indziej.

bzr commit --fixes=lp:000000

Uwaga na temat „domyślnego” przepływu pracy

Jest to typowy nowoczesny przepływ pracy, który można porównać do GitHub. Launchpad był już nieco dłuższy, więc ten przepływ pracy ewoluował po fakcie, a nie był wbudowany w system od samego początku, więc niektóre starsze projekty mogą polegać na innych metodach akceptowania poprawek. Większość wszystkich nowszych projektów opiera się na tym przepływie pracy, gdzie w GitHub zawsze występowały „żądania ściągania”, a ludzie po prostu domyślnie go używali, ponieważ nigdy nie było sposobu, aby zrobić coś innego w GitHub.


8

Wstępna odpowiedź na podstawie odpowiedzi dobeya tutaj i odpowiedzi Jorge Castro na pytanie dotyczące konkretnego projektu. Mile widziane zmiany / poprawki / sugestie.

  1. Utwórz konto Launchpad. Obejmuje to nazwę użytkownika Launchpad ( LP-USER)

  2. Dodaj swój klucz SSH do startera o https://launchpad.net/~LP-USER/+editsshkeys

  3. Na Launchpad zanotuj nazwę projektu ( PROJECT-NAME).

  4. Zgłoś problem dotyczący projektu. Problemowi zostanie przypisany numer błędu ( 000000).

  5. Upewnij się, że Bazaar jest zainstalowany dpkg-query -l bzr. Możesz przeczytać o integracji Bazaar / Launchpad .

  6. Skonfiguruj bzr za pomocą bzr whoami "Your Name <name@example.com>"ibzr launchpad-login LP-USER

  7. Na komputerze sprawdź lokalny oddział projektu

    bzr branch lp:PROJECT-NAME
    

    (Spowoduje to utworzenie folderu o nazwie PROJECT-NAMEzawierającego najnowszy kod projektu).

  8. Uruchom projekt. Wprowadzać zmiany. Sprawdź swoje zmiany. (Kroki te dotyczą konkretnego projektu i problemu).

  9. Zatwierdź zmiany, w tym numer błędu ( 000000).

    bzr commit --fixes=lp:000000
    
  10. Otworzy się okno dialogowe zatwierdzenia, w którym możesz dodać wpis dziennika zmian wyjaśniający zmiany.

  11. Przekaż zmiany do Launchpad. (Spowoduje to utworzenie nowej zdalnej gałęzi powiązanej z Twoim kontem).

    bzr push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
    

    ( NEW-BRANCH-NAMEpowinna być krótka opisowa nazwa naprawionego problemu / dodana funkcja)

  12. Otwórz oddział w przeglądarce za pomocą bzr lp-openlub przechodząc dohttps://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/

  13. W bzr lp-proposeostatnim kroku zaproponuj scalenie z lub z adresu URL, wybierając „Proponuj scalenie”, dodając opis, wklej lp:PROJECT-NAMEgałąź, w której chcesz zaproponować, i kliknij Submit.


Pytanie: Jeśli moja „nazwa projektu” to ubuntu/saucy/msttcorefontsrobię, bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnameczy tylkobzr push lp:~amandabee/msttcorefonts/actualbranchname
Amanda

Były: bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnamepracował
Amanda
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.