Một kho lưu trữ GitHub có thể bao gồm mã nguồn được phát hành theo nhiều giấy phép không?


8

Tôi muốn tập hợp một số dự án con trong một repo GitHub duy nhất để thuận tiện cho người dùng. Nhưng tôi tự hỏi liệu thực sự có thể có các thư mục trong một repo duy nhất, mỗi thư mục được bao phủ bởi một giấy phép khác nhau (tất cả chúng đều là các biến thể của giấy phép BSD, với sự khác biệt nhỏ), hoặc tôi có cần chia dự án thành nhiều repos không?

Câu trả lời:


11

Nếu một tệp giấy phép tồn tại, sẽ rất tự nhiên khi cho rằng nó áp dụng cho thư mục (và các thư mục con của nó), vì vậy bạn có thể có giấy phép trong mỗi thư mục tiểu dự án và tất cả đều ổn.

Ngoài ra, bạn có thể có giấy phép trong mỗi tệp và do đó thậm chí thay đổi giữa các giấy phép trên cơ sở mỗi tệp.

Ngoài ra, tôi sẽ chỉ ra rằng bạn cũng có thể có một repo cho mỗi dự án và sau đó chỉ cần thêm chúng làm mô hình con cho dự án "tiện lợi" (cá nhân tôi thấy điều đó thuận tiện hơn, bởi vì tôi cũng có khả năng sao chép chỉ phần đó quan tâm tôi).

Cuối cùng, nếu điều này là về sự thuận tiện, thì đừng lạm dụng nó. Đặc biệt là cố gắng tránh các biến thể. Khi tôi thấy một dự án, nơi tôi thấy rõ "phần này là GPL, phần đó là MIT", thì điều đó có thể chấp nhận được. Nhưng nếu tôi phải đối phó với một loạt các giấy phép và các biến thể tùy chỉnh của chúng, có lẽ tôi sẽ đi tìm một nơi khác hoặc chỉ viết phần tôi cần. Các lập trình viên thích sáng tạo lại bánh xe. Đừng cho họ lý do để làm điều đó;)


Làm cách nào để thêm repos bên ngoài dưới dạng mô đun con cho dự án "tiện lợi"? Một liên kết repos trong GitHub?
introiboad

1
Submodules là một tính năng git và không liên quan gì đến GitHub, mặc dù GitHub xử lý chúng khá tốt, ví dụ thư mục libs ở đây thực sự là một mô hình con. Để tìm hiểu thêm về mô hình con, điều này sẽ giúp bạn bắt đầu: stackoverflow.com/questions/5252450/iêu
back2dos

1
Câu hỏi này không phải là đặc thù của github hay git vì chúng không liên quan gì đến giấy phép của bạn, back2dos đã làm rõ điều này. Nhận xét của bạn, cũng không phải là đặc trưng của github vì github chỉ cung cấp cho bạn một nơi để lưu trữ kho git của bạn. Google cho "git subodule" và bạn nên tìm một liên kết đến cuốn sách git trên git-scm.com để dạy cho bạn các mô hình con là gì và cách làm việc với chúng.
tkausl
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.