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:
Utworzyłem konto Launchpad,
zgłosił błąd,
zainstalowany Bazaar i konfiguracja kluczy SSH itp.
Gdyby to był GitHub, zrobiłbym to
rozwidlaj repo,
klonuj rozwidlone repo,
stwórz gałąź o zdrowej nazwie i wykonaj pracę,
commit + push,
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.
Odpowiedzi:
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:
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-propose
polecenia.Jeśli zgłosiłeś błąd, a Twój oddział go naprawił, pamiętaj, aby wykonać następujące czynności, gdzie
000000
zastąpiono go numerem błędu, zakładając, że jest to błąd zgłoszony na Launchpadzie, a nie gdzie indziej.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.
źródło
Wstępna odpowiedź na podstawie odpowiedzi dobeya tutaj i odpowiedzi Jorge Castro na pytanie dotyczące konkretnego projektu. Mile widziane zmiany / poprawki / sugestie.
Utwórz konto Launchpad. Obejmuje to nazwę użytkownika Launchpad (
LP-USER
)Dodaj swój klucz SSH do startera o
https://launchpad.net/~LP-USER/+editsshkeys
Na Launchpad zanotuj nazwę projektu (
PROJECT-NAME
).Zgłoś problem dotyczący projektu. Problemowi zostanie przypisany numer błędu (
000000
).Upewnij się, że Bazaar jest zainstalowany
dpkg-query -l bzr
. Możesz przeczytać o integracji Bazaar / Launchpad .Skonfiguruj bzr za pomocą
bzr whoami "Your Name <[email protected]>"
ibzr launchpad-login LP-USER
Na komputerze sprawdź lokalny oddział projektu
(Spowoduje to utworzenie folderu o nazwie
PROJECT-NAME
zawierającego najnowszy kod projektu).Uruchom projekt. Wprowadzać zmiany. Sprawdź swoje zmiany. (Kroki te dotyczą konkretnego projektu i problemu).
Zatwierdź zmiany, w tym numer błędu (
000000
).Otworzy się okno dialogowe zatwierdzenia, w którym możesz dodać wpis dziennika zmian wyjaśniający zmiany.
Przekaż zmiany do Launchpad. (Spowoduje to utworzenie nowej zdalnej gałęzi powiązanej z Twoim kontem).
(
NEW-BRANCH-NAME
powinna być krótka opisowa nazwa naprawionego problemu / dodana funkcja)Otwórz oddział w przeglądarce za pomocą
bzr lp-open
lub przechodząc dohttps://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/
W
bzr lp-propose
ostatnim kroku zaproponuj scalenie z lub z adresu URL, wybierając „Proponuj scalenie”, dodając opis, wklejlp:PROJECT-NAME
gałąź, w której chcesz zaproponować, i kliknij Submit.źródło
ubuntu/saucy/msttcorefonts
robię,bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchname
czy tylkobzr push lp:~amandabee/msttcorefonts/actualbranchname
bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchname
pracował