Làm cách nào để gửi bản vá cho dự án Launchpad?


19

Với nền tảng Git / GitHub và biết rất ít về Bazaar VCS, tôi thỉnh thoảng muốn báo cáo lỗi cho các dự án được lưu trữ trên Launchpad và thậm chí gửi một bản vá. Tôi muốn làm theo cách "phù hợp" để nó sẵn sàng hợp nhất hoặc cải tiến trong khi không cản trở.

Tôi dường như không thể tìm thấy một cách đơn giản phù hợp với nhu cầu của mình.

Những gì tôi đã làm cho đến nay:

  1. Tôi đã tạo một tài khoản Launchpad,

  2. báo cáo lỗi,

  3. đã cài đặt Bazaar và thiết lập các khóa SSH, v.v.

Bây giờ nếu đó là GitHub, tôi sẽ

  1. ngã ba repo,

  2. nhân bản repo ngã ba,

  3. tạo một chi nhánh được đặt tên hoàn toàn và thực hiện công việc

  4. cam kết + đẩy,

  5. tạo một yêu cầu kéo bằng GitHub WUI.

Nhưng đó không phải là GitHub và cả kiến ​​trúc Launchpad và Bazaar có vẻ khá khác biệt so với các đối tác GitHub / Git của họ.

Vì vậy, một linh hồn tốt bụng có thể cứu tôi khỏi chết đuối trong hàng tấn tài liệu và biên soạn một con đường bước đơn giản, chủ yếu là phần thứ hai? Có thể bao gồm các lệnh CLI có liên quan khi cần thiết?


Chỉnh sửa: Có vẻ như tôi nên làm rõ nếu tôi hỏi cụ thể về các gói Ubuntu (bất kể ý nghĩa của nó) hoặc các dự án Launchpad.

Tôi không thực sự quan tâm nhiều về sự khác biệt giữa các gói Ubuntu và các gói không phải Ubuntu. Bất kỳ phần mềm nào cũng có thể có trong Ubuntu ngày hôm nay và ra khỏi nó vào ngày mai hoặc ngược lại. Sự phát triển là những gì quan trọng hơn nhiều so với phân phối.

Vì vậy, tôi đã giả định rằng

  • không phải mọi gói đơn được phân phối trong Ubuntu đều được lưu trữ trên Launchpad,

  • tồn tại một quy trình làm việc "chính thức" hoặc "mặc định" cho Launchpad (nếu tất cả các nhà phát triển có thể đồng ý sử dụng Bazaar, tại sao hầu hết họ không thể đồng ý về quy trình vá lỗi?),

Vì vậy, tôi đang hỏi về cách Launchpad, không phải cách Ubuntu. Và tôi đã chọn AU vì giao lộ rất rộng lớn, tôi đoán nó rất đẹp về chủ đề ở đây.


tài liệu ngắn này có giúp được không? nếu vậy xin vui lòng mở rộng câu trả lời hiện tại khi cần thiết doc.bazaar.canonical.com/bzr.dev/en/mini-tutorial
david.libremone

Câu trả lời:


14

Đây có phải là một dự án Launchpad?

(Nếu bạn đã biết rằng đó là một dự án Launchpad, bạn có thể bỏ qua điều này.)

Không phải tất cả các dự án được tìm thấy trên Launchpad đều thực sự được lưu trữ và phát triển ở đó - một số là các mã được lưu trữ ở nơi khác (GitHub / Gitorious / etc), những dự án khác đến từ Debian. Các nguồn ban đầu này được gọi là các dự án "ngược dòng" và thường là tốt nhất để gửi các bản vá tại nguồn và để các thay đổi đến "hạ lưu" trong Ubuntu (thường là trong bản phát hành tiếp theo).

Nó nên được chỉ định rõ ràng trên trang dự án cho dù nó được lưu trữ ở nơi khác hoặc trên Launchpad. Nếu không, chỉ cần hỏi những người bảo trì dự án về cách họ muốn nhận thay đổi. Một số dự án ngược dòng thích các tệp vá đơn giản, một số khác thích gửi / đẩy thông qua các máy chủ tương ứng.

Một lưu ý đặc biệt, các gói Ubuntu chính thức (phần mềm được lưu trữ trong kho Ubuntu chính thức mà bạn có thể cài đặt từ Trung tâm phần mềm) có một số cách khác nhau để gửi các bản vá, vì nhiều gói trong số đó đến trực tiếp từ Debian, và lý tưởng nhất là nên được sửa ở đó thay vì chỉ trong Ubuntu. (Đây là một câu hỏi hoàn toàn khác.)

Làm thế nào để gửi một bản vá

Cách chung để gửi một bản vá là bạn tạo chi nhánh của mình, cam kết với nó cục bộ và đẩy nó trở lại Launchpad:

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

Sau đó, bạn có thể đề xuất chi nhánh của mình để hợp nhất vào cha mẹ mà bạn đã phân nhánh, thông qua trang web hoặc sử dụng bzr lp-proposelệnh.

Nếu bạn đã gửi một lỗi và chi nhánh của bạn đã sửa nó, hãy chắc chắn thực hiện các thao tác sau khi cam kết, nơi 000000được thay thế bằng số lỗi của bạn, giả sử đó là một lỗi được báo cáo trên Launchpad chứ không phải ở nơi khác.

bzr commit --fixes=lp:000000

Một lưu ý về quy trình làm việc "mặc định"

Đây là khá nhiều quy trình công việc hiện đại điển hình , mà bạn có thể so sánh với GitHub. Launchpad đã tồn tại lâu hơn một chút, do đó, quy trình này đã phát triển sau khi thực tế, thay vì được tích hợp vào hệ thống ngay từ đầu, vì vậy một số dự án cũ có thể dựa vào các phương pháp chấp nhận bản vá khác. Hầu hết tất cả các dự án mới hơn đều dựa vào quy trình công việc này, trong đó trên GitHub, "yêu cầu kéo" luôn ở đó và mọi người chỉ mặc định sử dụng nó bởi vì không bao giờ có cách nào để làm điều gì đó khác biệt trên GitHub.


7

Câu trả lời sâu sắc dựa trên câu trả lời của dobey ở đây và câu trả lời của Jorge Castro cho một câu hỏi dành riêng cho dự án. Chỉnh sửa / chỉnh sửa / đề xuất chào mừng.

  1. Tạo một tài khoản Launchpad. Điều này sẽ bao gồm tên người dùng Launchpad ( LP-USER)

  2. Thêm khóa SSH của bạn vào launchpad tại https://launchpad.net/~LP-USER/+editsshkeys

  3. Trên Launchpad, lưu ý tên dự án ( PROJECT-NAME).

  4. Báo cáo vấn đề chống lại dự án. Vấn đề sẽ được chỉ định một số lỗi ( 000000).

  5. Hãy chắc chắn rằng Bazaar đã được cài đặt dpkg-query -l bzr. Bạn có thể muốn đọc lên tích hợp Bazaar / Launchpad .

  6. Cấu hình bzr với bzr whoami "Your Name <name@example.com>"bzr launchpad-login LP-USER

  7. Trên máy của bạn, hãy kiểm tra một chi nhánh địa phương của dự án

    bzr branch lp:PROJECT-NAME
    

    (Điều này sẽ tạo một thư mục PROJECT-NAMEcó tên chứa mã dự án mới nhất.)

  8. Nhận dự án đang chạy. Thay đổi. Kiểm tra sự thay đổi của bạn. (Các bước này là dự án và vấn đề cụ thể.)

  9. Cam kết thay đổi của bạn, bao gồm số lỗi ( 000000).

    bzr commit --fixes=lp:000000
    
  10. Điều đó sẽ mở một hộp thoại cam kết trong đó bạn có thể thêm một mục thay đổi giải thích các thay đổi của bạn.

  11. Đẩy các thay đổi của bạn lên Launchpad. (Điều này sẽ tạo một chi nhánh từ xa mới được liên kết với tài khoản của bạn.)

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

    ( NEW-BRANCH-NAMEphải là một tên mô tả ngắn của vấn đề đã được sửa / thêm tính năng)

  12. Mở chi nhánh trong trình duyệt của bạn bằng bzr lp-openhoặc đi đếnhttps://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/

  13. Đề xuất hợp nhất với bzr lp-proposehoặc từ URL ở bước cuối cùng bằng cách chọn "Đề xuất hợp nhất", thêm mô tả, dán vào lp:PROJECT-NAMEnhánh bạn muốn đề xuất và nhấp vào Submit.


Câu hỏi: Nếu "tên dự án" của tôi là ubuntu/saucy/msttcorefontstôi đang làm bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnamehay chỉbzr push lp:~amandabee/msttcorefonts/actualbranchname
Amanda

Trước đây: bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnameđã làm việc
Amanda
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.