Remapping Dependency (lib/ via forge install)
Penjelasan
Foundry mengelola dependency lewat git submodule, bukan package manager seperti npm. Perintah `forge install <owner/repo>` menambahkan repository sebagai submodule di folder `lib/`, misalnya `forge install OpenZeppelin/openzeppelin-contracts` akan meletakkan seluruh source code OpenZeppelin di `lib/openzeppelin-contracts/`. Agar import di kode Solidity bisa ditulis pendek (misal `import "@openzeppelin/contracts/token/ERC20/ERC20.sol"` alih-alih path panjang ke `lib/`), Foundry memakai sistem remapping yang didefinisikan di `foundry.toml` atau file `remappings.txt`. Forge bisa auto-generate remapping dengan `forge remappings`.
Contoh Konsep
# Tambahkan OpenZeppelin sebagai dependency
forge install OpenZeppelin/openzeppelin-contracts
# Lihat remapping otomatis yang terdeteksi
forge remappings
# Simpan remapping ke file agar konsisten
forge remappings > remappings.txt
# Contoh isi remappings.txt:
# @openzeppelin/=lib/openzeppelin-contracts/
Praktikum
Install library forge-std terbaru (biasanya sudah ada dari forge init) dan OpenZeppelin, lalu buat contract token sederhana yang meng-import ERC20 dari OpenZeppelin.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Selalu commit isi `lib/` (atau minimal `.gitmodules` dan versi pinned) ke repository, supaya rekan tim atau CI bisa `forge install` dengan versi dependency yang identik.