Các nghi thức phù hợp để phát hành một bản viết lại hoàn chỉnh của một dự án hiện có là gì?


12

Tôi mới đến thế giới mã nguồn mở. Dự án tôi đang thực hiện nằm trên Github. (Chỉ để tham khảo) Dự án tôi đang thực hiện là một bổ trợ cho Plex Media Server. Tôi dự định gửi trình cắm của mình tới Plex để nó sẽ được đưa vào "cửa hàng ứng dụng" của họ. Bây giờ đến câu hỏi của tôi.

Khi tôi mới bắt đầu, tôi đã tìm thấy một plugin cũ bị bỏ rơi đã làm một số thứ tôi muốn nhưng không được tốt lắm. Tôi bắt đầu bằng cách đóng góp cho repo đó. Tôi đã ngay lập tức trở thành một cộng tác viên với toàn quyền đối với repo vì chủ sở hữu hiện tại nói rằng anh ta quá bận rộn để gây rối với nó nữa. Tuy nhiên, khi tôi bắt đầu tìm hiểu sâu hơn về mã, tôi nhận ra rằng nó là vô ích. Cơ sở mã hiện tại là khủng khiếp và không có cách nào hiệu quả để sửa nó. Tôi đã kết thúc chỉ bắt đầu từ đầu. Mã duy nhất tôi sử dụng trong plugin mới của mình là mã tôi đã cam kết ban đầu.

Bây giờ dự án đã sẵn sàng để được phát hành. Tuy nhiên tôi không chắc chắn về cách thực hiện điều này. Tôi thấy các lựa chọn của mình như sau:

  1. Tạo một repo mới và chỉ cần quên đi cái hiện có. Tôi không chắc liệu tôi có nên đề cập đến repo trước đó và hoặc những người đóng góp của nó không. Tôi đã không sử dụng bất kỳ mã / tài nguyên nào trong số đó và đã tạo ra một cơ sở mã hoàn toàn mới. Mặc dù plugin thực hiện một số điều tương tự như cái cũ đã làm, nhưng nó lại thực hiện theo cách hoàn toàn mới và hiệu quả hơn.

  2. Tôi rẽ nhánh repo hiện có, xóa mã hiện có và cam kết mã mới của tôi. Tôi thực sự mới với Git, vì vậy tôi không chắc điều này có khả thi hay không.

  3. Tôi cam kết những thay đổi của tôi đối với repo hiện tại và xem những người đóng góp hiện tại phải nói như thế nào.

Trong ba lựa chọn, tôi mạnh mẽ nghiêng về phía thứ nhất. NHƯNG! Tôi mới sử dụng mã nguồn mở và tôi muốn đảm bảo rằng tôi đang làm mọi thứ theo nghi thức đúng đắn. Tôi không muốn có dự án đầu tiên của mình nổ tung vào mặt và trở thành một thảm họa. Tùy chọn hai không có vẻ tồi tệ nhưng tôi không chắc liệu tôi có nên làm điều đó không. Tôi không chắc lịch sử và khác biệt sẽ hoạt động như thế nào. Chúng ta chỉ nói về khoảng 500 - 1000 dòng mã. Vì vậy, nó không phải là một cơ sở mã lớn.

Cảm ơn cho bất kỳ đầu vào bạn có thể cung cấp!


10
Vì đó là tất cả mã mới, tôi sẽ có xu hướng đi với # 1 vì lịch sử của dự án cũ thực sự không liên quan. Nhưng thật tuyệt khi thêm một cái gì đó vào README dọc theo dòng chữ, "Dựa trên một ý tưởng từ ....".
Peter Rowell

2
@PeterRowell xin vui lòng đặt nhận xét đó trong một câu trả lời để tôi có thể nâng cao nó!
MattDavey

@PeterRowell Cảm ơn lời khuyên. Đó là một ý tưởng tuyệt vời.
Matt Keller

1
Đối với 2, không cần phải xóa kho lưu trữ hiện có. Dù bạn làm gì, tôi chắc chắn nhà phát triển ban đầu sẽ đánh giá cao bạn nói với anh ấy rằng bạn đang thực hiện dự án
James

Câu trả lời:


13

Vì đó là tất cả mã mới, tôi sẽ có xu hướng đi với # 1 vì lịch sử cam kết của dự án cũ thực sự không liên quan. Nhưng thật tuyệt khi thêm một cái gì đó vào README dọc theo dòng chữ, "Dựa trên một ý tưởng từ ....".

Tôi là một fan hâm mộ lớn của việc thừa nhận chúng tôi (hoặc thuật toán của chúng tôi) đến từ đâu. Nếu bạn nhìn lại những dấu vết của lịch sử, bạn sẽ thấy rằng tất cả chúng ta đang đứng trên vai của những người đến trước tất cả chúng ta. Ví dụ, tôi đã phát triển và tiếp thị một công cụ tìm kiếm tương tự vào những năm 1980 và nó có vẻ khá triệt để đối với một số người (Boolean là Vua hồi đó). Nhưng trung tâm của thuật toán tôi đang sử dụng dựa trên công việc được bắt đầu bởi Gerard Salton tại Cornell 20 năm trước tôi.

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.