1. File LICENSE di tingkat teratas repositori
Hal pertama adalah menaruh teks lisensi sebagai file LICENSE (atau LICENSE.txt, LICENSE.md) di tingkat teratas repositori. GitHub, GitLab, dan manajer paket mencari file ini untuk mengenali lisensi. Pilih lisensi di generator lalu isi tahun dan pemegang hak cipta untuk langsung mengunduhnya.
- Jangan mengubah teksnya: isi hanya placeholder seperti
[year]·[fullname]pada MIT·BSD·ISC dan biarkan kalimat lainnya. Jika kalimat diubah, lisensi tidak dikenali sebagai lisensi standar dan dapat timbul masalah tafsiran. - Lisensi GNU dipakai utuh: teks GPL·LGPL·AGPL tidak memiliki tempat untuk diisi. Pemegang hak cipta dan klausul versi dinyatakan lewat pemberitahuan di file.
2. Penulisan tahun dan pemegang hak cipta
- Tahun: umumnya ditulis tahun pertama kali dipublikasikan. Kadang ditulis rentang seperti
2019-2026. Tidak ada kewajiban hukum memperbaruinya setiap tahun. - Pemegang hak cipta: untuk kode yang ditulis perorangan, nama orang itu; untuk kode yang ditulis dalam rangka pekerjaan, biasanya pemberi kerja adalah pemegang hak ciptanya (tergantung negara dan kontrak). Proyek dengan banyak kontributor kadang menulis seperti
The Example Project Authorsdan mengelola daftarnya dengan fileAUTHORS. - Pemberitahuan hak cipta tidak menimbulkan hak, melainkan memberitahukan hak. Tanpa pemberitahuan pun hak cipta tetap ada.
3. File pendamping per lisensi
| Lisensi | Kebiasaan |
|---|---|
| Apache-2.0 | LICENSE + jika perlu NOTICE (hanya pemberitahuan atribusi, singkat) |
| GPL-3.0 / GPL-2.0 | Teks di COPYING atau LICENSE |
| LGPL-3.0 | COPYING (teks GPL-3.0) + COPYING.LESSER (teks LGPL-3.0) |
| MIT OR Apache-2.0 | LICENSE-MIT + LICENSE-APACHE |
| BSL-1.0 | LICENSE_1_0.txt |
NOTICE Apache-2.0 tidak wajib, tetapi siapa pun yang mendistribusikan ulang kode yang sudah memiliki NOTICE harus mempertahankan isinya. ASF menyarankan agar NOTICE hanya memuat pemberitahuan atribusi yang diwajibkan secara hukum, tanpa ucapan terima kasih atau teks lisensi lengkap.
4. Header file sumber
Jika setiap file memiliki header singkat, informasi lisensi ikut terbawa meski file disalin secara terpisah.
# SPDX-FileCopyrightText: 2026 Example Inc.
# SPDX-License-Identifier: Apache-2.0
GNU·Apache·MPL juga menyarankan pemberitahuan resmi, tetapi makin banyak proyek yang menggantinya hanya dengan dua baris SPDX. Untuk detailnya, lihat panduan SPDX.
5. Metadata paket dan README
- Tulis pengenal SPDX di kolom license pada
package.json,Cargo.toml,pyproject.toml, dan sebagainya. - Buat bagian 'Lisensi' di akhir README dan ringkas dalam satu dua baris (misalnya 'This project is licensed under the MIT License — see LICENSE').
6. Pemberitahuan kode pihak ketiga
Jika Anda mendistribusikan dengan menyertakan kode orang lain, kewajiban lisensi kode itu juga harus dipenuhi.
- Untuk kode yang disalin, pertahankan pemberitahuan hak cipta dan lisensi asli di file terkait.
- Jika didistribusikan sebagai biner atau aplikasi, kumpulkan daftar open source yang dipakai beserta teks lengkap lisensinya di file
THIRD_PARTY_NOTICESatau layar 'lisensi open source' di aplikasi. - Jika dependensinya banyak, buat daftarnya secara otomatis dengan alat SBOM atau fitur laporan lisensi dari manajer paket.
7. Saat menerima kontribusi: DCO atau CLA
Jika menerima kontribusi dari luar, hak cipta terbagi ke banyak orang. Ada dua cara mengelolanya.
- DCO: kontributor menambahkan
Signed-off-by:di commit untuk mengonfirmasi bahwa 'saya berhak menyerahkan kode ini di bawah lisensi proyek'. Ringan dan dipakai kernel Linux. - CLA: kontrak di mana kontributor memberi proyek hak luas, termasuk pelisensian ulang. Diperlukan jika ingin menjalankan lisensi ganda komersial atau menyisakan ruang untuk mengganti lisensi kelak.
Aturan kontribusi ditulis di CONTRIBUTING.md.
8. Saat mengganti lisensi
- Pemegang hak cipta dapat menerapkan lisensi lain untuk versi mendatang. Izin untuk versi yang sudah didistribusikan biasanya tidak dicabut.
- Jika ada kode dari kontributor lain, diperlukan persetujuan mereka (kecuali Anda sudah menerima hak pelisensian ulang lewat CLA).
- Peralihan dari permisif ke copyleft relatif mudah (karena kode permisif dapat masuk ke proyek copyleft), tetapi dari copyleft ke permisif praktis mustahil tanpa persetujuan semua pemegang hak cipta.
- Catat dengan jelas waktu perubahan, alasannya, dan versi yang terkena di CHANGELOG dan README.
Daftar periksa
- Teks LICENSE (hanya placeholder yang diisi)
- File pendamping (NOTICE, COPYING.LESSER, dll.)
- Header file (dua baris SPDX)
- Metadata paket dan README
- Pemberitahuan pihak ketiga
- Aturan kontribusi (DCO atau CLA)
Artikel ini adalah informasi umum, bukan nasihat hukum. Untuk keputusan penting, konsultasikan dengan ahli.
Sumber
- GitHub Docs, Adding a license to a repository — https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository
- Apache, Applying the Apache License · Assembling LICENSE and NOTICE — https://www.apache.org/legal/apply-license.html
- GNU, How to Use GNU Licenses for Your Own Software — https://www.gnu.org/licenses/gpl-howto.html
- REUSE Specification — https://reuse.software/spec/
- Developer Certificate of Origin — https://developercertificate.org/