Cara Berkontribusi

Dokumen ini ditujukan untuk siapa pun yang ingin menambahkan atau memelihara paket di VUR sebagai maintainer.

Prasyarat

Sebelum berkontribusi, pastikan hal berikut sudah siap:

  • git terinstall
  • xbps-src sudah bisa digunakan (void-packages sudah di-bootstrap)
  • Akun GitHub aktif
  • Paham dasar penulisan template xbps-src

Referensi penulisan template: void-packages Manual

Alur Kontribusi

Fork repo VUR → Buat template → Test build lokal → Push → Pull Request → Review → Merge

Langkah 1: Fork dan Clone

Fork repositori VUR di GitHub, lalu clone fork-nya:

git clone https://github.com/<username-kamu>/vur.git
cd vur

Langkah 2: Tentukan Kategori

Tempatkan template di kategori yang sesuai:

KategoriKriteria
corePaket stabil, umum digunakan, dependensi minimal
extraPaket tambahan, bisa eksperimental, niche, atau dependensi besar
multilibPaket 32-bit untuk sistem x86_64 glibc

Jika ragu, gunakan extra.

Langkah 3: Buat Template

Buat direktori paket di kategori yang sesuai:

mkdir -p extra/<nama-paket>

Buat file template di dalamnya:

touch extra/<nama-paket>/template

Struktur Minimal Template

# Mandatory fields
pkgname=nama-paket
version=1.0.0
revision=1
short_desc="Deskripsi singkat paket"
maintainer="Nama Kamu <email@example.com>"
license="MIT"
homepage="https://example.com"
distfiles="https://example.com/nama-paket-${version}.tar.gz"
checksum="sha256sum-dari-file-source"

do_build() {
    # perintah build
}

do_install() {
    # perintah install ke $DESTDIR
}

Untuk template yang lebih kompleks (build styles, subpackages, patches), lihat void-packages Manual.

Jika Ada Patch

Buat direktori patches/ di dalam direktori paket:

mkdir -p extra/<nama-paket>/patches/

Tempatkan file .patch di dalamnya. xbps-src akan menerapkannya secara otomatis sebelum build.

Langkah 4: Test Build Lokal

Sebelum submit, pastikan paket berhasil dibangun secara lokal:

# Dari direktori void-packages
cp -r /path/to/vur/extra/<nama-paket> srcpkgs/<nama-paket>
./xbps-src pkg <nama-paket>

Verifikasi hasil build bisa diinstall:

sudo xbps-install --repository=hostdir/binpkgs <nama-paket>

Jangan submit template yang belum berhasil build secara lokal.

Langkah 5: Update Index (via vtools)

Setelah template siap, jalankan script vtools untuk memperbarui file index VUR:

cd vur
bash vtools/scan.sh
bash vtools/generate.sh

Ini akan memperbarui index.json, packages.json, categories.json, dan search.json.


Langkah 6: Commit dan Push

git add extra/<nama-paket>/ index.json packages.json categories.json search.json
git commit -m "extra/<nama-paket>: add version <versi>"
git push origin main

Konvensi pesan commit:

AksiFormat commit
Tambah paket baru<kategori>/<nama>: add version <versi>
Update versi<kategori>/<nama>: update to <versi>
Perbaiki template<kategori>/<nama>: fix <deskripsi singkat>
Hapus paket<kategori>/<nama>: remove (alasan)

Langkah 7: Buat Pull Request

Buka Pull Request dari fork kamu ke repositori utama VUR di GitHub:

https://github.com/T4n-Labs/vur/pulls

Sertakan informasi berikut di deskripsi PR:

  • Nama paket dan versi
  • Kategori yang dipilih dan alasannya
  • Link homepage atau repositori upstream
  • Konfirmasi bahwa build lokal berhasil

Memperbarui Paket (Update Versi)

Saat ada rilis baru dari upstream:

  1. Update version di template
  2. Update revision kembali ke 1
  3. Update distfiles jika URL berubah
  4. Update checksum sesuai file source baru
  5. Test build ulang secara lokal
  6. Jalankan vtools/scan.sh dan vtools/generate.sh
  7. Commit dan buat PR
# Cara mendapatkan checksum baru
sha256sum nama-paket-<versi>.tar.gz

Menghapus Paket

Jika paket sudah tidak relevan, upstream sudah masuk ke repositori resmi Void, atau tidak lagi bisa dimaintain:

  1. Hapus direktori paket dari kategori
  2. Jalankan vtools/scan.sh dan vtools/generate.sh
  3. Commit dengan pesan <kategori>/<nama>: remove (<alasan>)
  4. Buat PR dengan penjelasan alasan penghapusan

Standar Template VUR

HalStandar
pkgnameHuruf kecil, pisah kata dengan tanda -
maintainerFormat Nama <email> yang valid dan aktif
licenseSesuai lisensi upstream — jangan asal tulis MIT
checksumWajib diisi, tidak boleh kosong atau placeholder
distfilesURL langsung ke source resmi upstream
short_descMaksimal 72 karakter, tidak diawali huruf kapital
Direktori paketNama direktori sama persis dengan pkgname

Catatan Penting

  • Jangan submit paket yang sudah tersedia di repositori resmi Void kecuali ada alasan khusus (versi berbeda, patch spesifik, dll.).
  • Jangan submit template dengan checksum kosong atau placeholder.
  • Template yang terbukti berbahaya akan di-remove dan kontributor bisa diblokir dari repositori.
  • Maintainer bertanggung jawab memperbarui templatenya seiring update upstream.

Referensi


@T4n-Labs · @Gh0sT4n