Kursus
Manajemen environment yang tepat sangat penting bagi pengembang. Ini memastikan proyek dapat direproduksi, dependensi ditangani dengan lancar, dan konflik antar pustaka diminimalkan.
Anaconda telah lama menjadi pilihan populer untuk tugas-tugas ini, menawarkan solusi all-in-one dengan seperangkat alat komprehensif yang dirancang untuk menyederhanakan penyiapan dan pengelolaan environment Python. Namun, meskipun digunakan secara luas, Anaconda mungkin kurang ideal untuk sebagian proyek.
Bagi sebagian pengembang, Anaconda terlalu boros sumber daya dan lebih dari yang mereka butuhkan untuk alur kerja spesifik mereka. Ketentuan lisensinya juga mungkin terlalu membatasi. Akibatnya, banyak tim mencari alternatif yang menawarkan kustomisasi lebih besar, penggunaan sumber daya yang lebih ringan, atau kontrol lebih atas dependensi dan environment.
Dalam artikel ini, saya akan memaparkan beberapa alternatif terbaik untuk Anaconda, menyoroti fitur dan skenario penggunaan idealnya. Mari kita mulai!
Mengapa Memilih Alternatif Anaconda?
Tidak diragukan lagi, Anaconda adalah alat yang kuat untuk mengelola environment dan paket Python, tetapi tidak selalu optimal untuk semua jenis proyek (atau pengembang).

Beragam alasan untuk mempertimbangkan alternatif Anaconda. Dibuat dengan napkin.ai
Anda mungkin mempertimbangkan menggunakan alternatif karena beberapa alasan. Di bawah ini, kami mengulas beberapa alasan terpenting untuk melihat melampaui Anaconda.
Sumber terbuka dan lisensi
Meskipun Anaconda dibangun di atas banyak paket open source, struktur lisensinya untuk penggunaan komersial lebih kompleks.
Walau Anaconda menawarkan versi gratis untuk pengguna individu, perusahaan atau organisasi yang menggunakan Anaconda dalam skala besar di lingkungan produksi mungkin diwajibkan membeli lisensi komersial. Bahkan, Anaconda baru-baru ini mengubah ketentuan lisensinya, memengaruhi universitas dan organisasi nirlaba.
Hal ini mendorong sebagian pengguna untuk mengeksplorasi alternatif yang lebih permisif, yang tetap sepenuhnya open source atau menawarkan ketentuan lisensi yang lebih jelas dan tidak terlalu membatasi.
Selain itu, ukuran distribusi Anaconda yang besar dapat terasa berlebihan bagi pengguna yang tidak membutuhkan semua paket yang disertakan. Alternatif open source sering memungkinkan kontrol lebih terperinci atas paket mana yang diinstal, mengurangi bloat dan mengikuti perjanjian lisensi yang lebih lugas dan fleksibel.
Penggunaan sumber daya
Salah satu kelemahan umum Anaconda adalah sifatnya yang boros sumber daya. Anaconda membutuhkan ruang disk dan memori yang signifikan, yang dapat menyulitkan pengguna dengan sumber daya perangkat keras terbatas atau mereka yang memprioritaskan penyiapan yang lebih ramping.
Kustomisasi dan fleksibilitas
Anaconda menawarkan beragam alat dan paket, yang bisa menjadi kekuatan sekaligus kelemahan. Suite Anaconda yang komprehensif dapat berlebihan bagi pengembang yang membutuhkan lebih banyak kustomisasi atau lebih suka mengintegrasikan alat tertentu ke dalam alur kerja mereka.
Manajemen dependensi
Meskipun Anaconda unggul dalam menyederhanakan manajemen paket dengan Conda, beberapa pengembang lebih menyukai alternatif yang menawarkan kontrol lebih rinci atas dependensi. Pada bagian berikutnya, kami akan membahas beberapa alat yang menyediakan penanganan yang lebih eksplisit untuk resolusi dependensi dan manajemen konflik, yang dapat menguntungkan untuk proyek kompleks.
Alternatif Anaconda Teratas untuk Pengembangan Python
Ada beberapa alternatif untuk Anaconda. Masing-masing menawarkan fitur dan keunggulan unik, melayani berbagai aspek pengembangan Python.
Di bawah ini, kita akan mengeksplorasi beberapa alternatif tersebut, berfokus pada fitur dan skenario penggunaan idealnya. Daftar ini tidak berurutan; pilihan terbaik akan bergantung pada kebutuhan Anda.
1. Miniconda
Miniconda adalah penginstal minimal untuk Conda, dirancang untuk menyediakan fungsi inti Conda tanpa paket dan alat tambahan yang disertakan dalam distribusi Anaconda lengkap.
Ini memungkinkan pengguna menginstal hanya paket yang diperlukan, menghasilkan environment yang lebih ramping dan ter kustomisasi. Seperti Anaconda, Miniconda menawarkan manajemen paket dan environment yang kuat namun berfokus pada kesederhanaan dan efisiensi.
Fitur:
- Ringan dan minimal: Miniconda hanya menyertakan komponen Conda yang esensial, memberi pengguna kontrol penuh atas paket tambahan mana yang akan diinstal.
- Dapat dikustomisasi: Pengguna dapat membangun environment dari nol, hanya menginstal alat dan pustaka yang diperlukan untuk proyek mereka.
- Dukungan Conda penuh: Meski Miniconda adalah penginstal minimal, ia mempertahankan semua fitur manajemen paket dan environment Conda yang kuat, memastikan kompatibilitas dengan environment Conda.
- Lintas platform: Seperti Conda, Miniconda tersedia di Windows, macOS, dan Linux.
Mengapa memilih Miniconda?
Miniconda ideal bagi pengguna yang menginginkan fleksibilitas dan kekuatan Conda tanpa beban instalasi Anaconda lengkap. Ini adalah pilihan yang sangat baik untuk:
- Pengguna yang hemat sumber daya dan ingin menghemat ruang disk serta memori.
- Pengembang yang menginginkan penyiapan ramping dengan hanya menginstal alat yang mereka butuhkan.
- Pengguna yang menginginkan environment fleksibel dan ringan namun tetap mendukung fitur lanjutan Conda, seperti manajemen environment dan kontrol versi paket.
2. Pipenv
Pipenv adalah alat yang menggabungkan fungsi Pip dan Virtualenv untuk mengelola dependensi Python dan virtual environment. Pipenv menggunakan Pipfile untuk menentukan dependensi proyek dan secara otomatis menangani pembuatan serta pengelolaan environment.
Berikut contoh Pipefile:
# Source: https://pipenv.pypa.io/en/latest/pipfile.html
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
Django = "==4.*"
waitress = {version = "*", markers="sys_platform == 'win32'"}
gunicorn = {version = "*", markers="sys_platform == 'linux'"}
[dev-packages]
pytest-cov = "==3.*"
Fitur:
- Manajemen dependensi dengan Pipfile: Pipenv menggunakan
Pipfileuntuk mendeklarasikan dependensi proyek, menggantikan berkasrequirements.txttradisional. - Pengelolaan virtual environment otomatis: Pipenv secara otomatis membuat dan mengelola environment terisolasi untuk proyek Anda, menyederhanakan proses menjaga dependensi tetap terpisah.
- Build deterministik:
Pipfile.lockmemastikan semua dependensi dan versinya terkunci, menyediakan environment yang dapat direproduksi di berbagai sistem. - Pemeriksaan keamanan: Pipenv melakukan pemeriksaan keamanan pada dependensi untuk memastikan Anda tidak menggunakan paket dengan kerentanan yang diketahui.
Mengapa memilih Pipenv?
Pipenv adalah pilihan tepat bagi pengguna yang menginginkan alat terintegrasi untuk mengelola dependensi dan environment tanpa repot menangani virtual environment secara manual. Pipenv berguna untuk:
- Pengembang yang menginginkan proses manajemen dependensi sederhana yang menggabungkan fungsi Pip dan Virtualenv.
- Tim yang mencari build deterministik dan dapat direproduksi, memastikan semua orang bekerja di environment yang sama.
- Pengguna yang menyukai pendekatan modern dan rapi untuk mengelola proyek Python, dengan pemeriksaan keamanan bawaan dan pengelolaan environment yang mulus.
3. Poetry
Poetry adalah alat terintegrasi untuk manajemen dependensi dan packaging yang menyederhanakan pengelolaan proyek Python. Poetry menangani dependensi, packaging, dan publishing, dengan fokus pada kesederhanaan dan konsistensi.
Berkas terpenting dalam proyek Poetry (awal) adalah pyproject.toml. Berkas ini digunakan untuk mengorkestrasi proyek dan dependensinya. Jika Anda baru memulai dengan demo yang ditunjukkan di dokumentasi, berkas pyproject.toml Anda akan terlihat seperti berikut:
[tool.poetry]
name = "poetry-demo"
version = "0.1.0"
description = ""
authors = ["Sébastien Eustace <sebastien@eustace.io>"]
readme = "README.md"
packages = [{include = "poetry_demo"}]
[tool.poetry.dependencies]
python = "^3.7"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
Fitur:
- Manajemen dependensi terintegrasi: Poetry mengelola dependensi proyek melalui berkas
pyproject.toml, menyederhanakan proses menambah, memperbarui, dan menghapus paket. - Packaging dan publishing: Poetry memungkinkan Anda dengan mudah melakukan packaging proyek dan mempublikasikannya ke PyPI atau repositori paket lainnya, semuanya dalam satu alat.
- Build yang dapat direproduksi: Dengan mengunci dependensi di berkas
poetry.lock, Poetry memastikan build konsisten di berbagai environment.
Mengapa memilih Poetry?
Poetry ideal bagi pengguna yang mencari pendekatan holistik dan terpadu untuk pengelolaan proyek Python. Poetry menyederhanakan proses pengembangan dengan menangani manajemen dependensi dan packaging dalam satu alat. Pertimbangkan menggunakan Poetry jika:
- Anda menginginkan build yang konsisten dan dapat direproduksi, memastikan semua environment tersinkronisasi.
- Anda menyukai penyiapan proyek yang rapi dan terstruktur dengan konfigurasi sederhana serta perintah yang intuitif.
- Anda memerlukan alat yang menangani semuanya dari dependensi hingga publishing, memberikan pengalaman mulus dari pengembangan hingga deployment.
4. Virtualenv
Virtualenv adalah alat ringan yang membuat environment Python terisolasi. Ini memungkinkan pengguna mengelola dependensi untuk berbagai proyek secara terpisah dan menyediakan cara sederhana untuk mempertahankan banyak environment tanpa saling mengganggu.
Fitur:
- Environment terisolasi: Virtualenv membuat environment terisolasi untuk setiap proyek, mencegah konflik antardependensi dan memastikan setiap proyek dapat berjalan secara independen.
- Dukungan untuk berbagai versi Python: Anda dapat membuat environment menggunakan versi yang berbeda, memudahkan bekerja pada proyek dengan kebutuhan Python yang bervariasi.
- Mudah digunakan: Virtualenv ringan dan sederhana, menyediakan perintah langsung untuk membuat, mengaktifkan, dan menonaktifkan environment.
Mengapa memilih Virtualenv?
Virtualenv adalah pilihan tepat bagi pengguna yang membutuhkan alat sederhana dan efisien untuk mengelola environment Python terisolasi. Virtualenv sangat cocok untuk:
- Pengembang yang mencari solusi ringan tanpa beban alat manajemen environment yang lebih kompleks.
- Proyek yang memerlukan versi Python atau pustaka yang berbeda, sehingga environment terisolasi menjadi krusial.
- Pengguna yang menyukai metode minimal dan lugas untuk manajemen environment tanpa dependensi atau penyiapan tambahan.
5. Pyenv
Pyenv adalah alat manajemen versi yang memungkinkan pengguna menginstal dan beralih di antara banyak versi Python pada satu sistem. Pyenv berintegrasi dengan Virtualenv untuk menyediakan solusi manajemen environment yang lengkap.
Fitur:
- Manajemen beberapa versi Python: Pyenv memungkinkan Anda menginstal dan beralih di antara versi Python yang berbeda dengan mudah, sehingga mempermudah mengelola proyek dengan kebutuhan Python yang bervariasi.
- Dukungan untuk berbagai distribusi Python: Pyenv mendukung beragam distribusi Python, termasuk CPython, PyPy, Anaconda, dan lainnya, memberi fleksibilitas bagi pengembang dalam memilih distribusi yang tepat untuk proyek mereka.
- Integrasi dengan Virtualenv: Pyenv terintegrasi mulus dengan Virtualenv, menyediakan solusi lengkap untuk mengelola versi Python dan environment terisolasi. Ini memungkinkan kontrol lebih atas dependensi proyek.
Mengapa memilih Pyenv?
Pyenv ideal bagi pengembang yang mengelola banyak versi Python di berbagai proyek. Kemampuannya untuk beralih versi dengan mudah dan integrasinya dengan Virtualenv menjadikannya alat kuat untuk:
- Pengembang yang mengerjakan proyek yang membutuhkan versi atau distribusi Python yang berbeda.
- Pengguna yang membutuhkan fleksibilitas dan kontrol atas environment pengembangan mereka, memungkinkan transisi yang mulus antarproyek.
- Mereka yang menyukai alur kerja ramping dengan menggabungkan manajemen versi Python dan isolasi environment dalam satu alat.
6. Miniforge
Miniforge adalah alternatif ringan untuk Anaconda yang berfokus pada penyediaan penginstal Conda minimal.
Alih-alih distribusi Anaconda penuh yang mencakup ratusan paket, Miniforge memberi Anda environment minimal hanya dengan Conda dan Python. Ini memungkinkan pengguna menginstal hanya paket spesifik yang dibutuhkan, memberikan fleksibilitas lebih dan menghindari bloat yang tidak perlu.
Fitur:
- Instalasi minimal: Tidak seperti Anaconda yang menyertakan banyak pustaka prainstal, Miniforge hanya menyediakan hal-hal esensial. Anda kemudian dapat menginstal hanya paket spesifik yang dibutuhkan proyek Anda.
- Mendukung arsitektur berbeda: Miniforge mendukung arsitektur x86_64 dan ARM, sehingga lebih serbaguna, terutama bagi pengguna Mac Apple Silicon M1/M2.
- Berfokus pada Conda-forge: Miniforge secara default menggunakan repositori Conda-forge, kumpulan paket berkualitas tinggi yang digerakkan komunitas. Dibanding repositori Anaconda default, Conda-forge cenderung memiliki paket yang lebih mutakhir dan terawat baik.
- Pembaruan paket lebih cepat: Karena menggunakan Conda-forge, paket diperbarui lebih cepat, memungkinkan Anda bekerja dengan versi pustaka terbaru.
Mengapa memilih Miniforge?
Miniforge adalah solusi ideal bagi pengguna yang menginginkan fleksibilitas dan kekuatan Conda tanpa bobot distribusi Anaconda penuh. Miniforge sangat berguna untuk:
- Pengguna yang menginginkan environment ringan dan lebih suka menyesuaikan penyiapannya.
- Pengguna Apple M1/M2 yang membutuhkan dukungan native untuk arsitektur ARM.
- Pengembang atau data scientist yang bergantung pada repositori Conda-forge untuk paket-paket terbaru.
7. Mamba
Mamba adalah re-implementasi manajer paket Conda dalam C++ yang cepat. Mamba dirancang untuk mengatasi salah satu titik nyeri utama saat menggunakan Conda: kecepatan.
Sebagai pengganti langsung untuk Conda, Mamba bertujuan memangkas secara signifikan waktu yang dibutuhkan untuk menyelesaikan dependensi dan menginstal paket, sambil tetap sepenuhnya kompatibel dengan environment dan perintah Conda yang ada.
Fitur:
- Pemecah dependensi sangat cepat: Mamba jauh lebih cepat dalam menyelesaikan dependensi dibandingkan Conda, yang bisa lambat pada environment dengan dependensi kompleks.
- Unduhan multithread: Mamba memanfaatkan multithreading untuk mengunduh paket secara paralel, semakin mempercepat proses instalasi.
- Kompatibel dengan Conda: Mamba dirancang untuk sepenuhnya kompatibel dengan Conda, artinya Anda dapat menggunakannya di environment yang ada tanpa mengubah alur kerja.
- Lintas platform: Mamba bekerja di berbagai sistem operasi, termasuk Windows, macOS, dan Linux, menjadikannya solusi serbaguna untuk pengguna di berbagai platform.
Mengapa memilih Mamba?
Mamba adalah alat andalan bagi pengguna yang menyukai Conda namun frustrasi dengan performanya, terutama pada proyek besar atau kompleks. Pertimbangkan Mamba jika:
- Kecepatan adalah prioritas, dan Anda perlu memasang atau memperbarui paket lebih cepat.
- Anda bekerja dengan proyek besar atau banyak dependensi, di mana performa Conda bisa melambat.
- Anda menginginkan alternatif Conda yang sepenuhnya kompatibel tanpa mengubah environment atau alur kerja yang ada.
8. Conda (Mandiri)
Conda, saat digunakan terpisah dari Anaconda, menyediakan solusi manajemen paket dan environment yang kuat. Penggunaan mandiri ini menawarkan fleksibilitas fitur inti Conda sekaligus menjaga penyiapan yang lebih ramping. Conda cocok untuk banyak aplikasi di luar Python, termasuk R dan bahasa lainnya.
Fitur:
- Manajemen paket dan environment yang komprehensif: Conda dapat mengelola paket dan environment terisolasi, memungkinkan penyiapan dan perpindahan antar lingkungan proyek dengan mudah.
- Mendukung berbagai paket: Manajemen paket Conda tidak terbatas pada Python; Conda mendukung pustaka dan alat di berbagai bahasa, menjadikannya lebih serbaguna daripada manajer khusus Python seperti Pip.
- Penggunaan fleksibel: Conda dapat digunakan secara mandiri tanpa distribusi Anaconda penuh, menyediakan kekuatan manajemen environment dan paket yang sama tanpa tambahan beban.
Mengapa memilih Conda?
Conda sangat cocok bagi pengguna yang menginginkan fitur manajemen paket dan environment yang tangguh dari Conda tanpa beban Anaconda. Ideal untuk:
- Pengguna yang membutuhkan penyiapan ringan namun tetap ingin akses ke fitur manajemen Conda yang kuat.
- Pengembang yang bekerja lintas bahasa atau perlu mengelola dependensi non-Python.
- Mereka yang menginginkan solusi mandiri yang fleksibel untuk mengelola dependensi dan environment, dengan opsi untuk menghindari suite Anaconda lengkap.
Jika Anda memilih alternatif ini, pastikan menyimpan lembar contekan Conda yang berguna ini!
9. Docker
Docker adalah platform containerization yang mengemas aplikasi dan dependensinya ke dalam container, memastikan environment konsisten di berbagai tahap pengembangan dan deployment.
Fitur:
- Container terisolasi: Docker membuat container terisolasi yang mencakup semua yang dibutuhkan aplikasi untuk berjalan, memastikan independensi dari konfigurasi sistem host.
- Konsistensi lintas environment: Container memastikan aplikasi berperilaku sama di lingkungan pengembangan, pengujian, dan produksi, meminimalkan masalah “berfungsi di komputer saya”.
- Agnostik bahasa dan alat: Docker mendukung banyak bahasa pemrograman, pustaka, dan alat, sehingga serbaguna bagi pengembang yang mengerjakan proyek beragam.
Mengapa memilih Docker?
Docker ideal bagi pengembang dan tim yang memerlukan environment terisolasi dan konsisten untuk proyek kompleks atau deployment tingkat produksi. Kemampuan containerization-nya sangat efektif untuk:
- Memastikan konsistensi di lingkungan pengembangan, pengujian, dan produksi.
- Mengelola proyek kompleks dengan dependensi dan konfigurasi rumit, terutama yang mencakup banyak bahasa atau memerlukan pengaturan sistem spesifik.
- Pengguna yang ingin dengan mudah melakukan deployment aplikasi di berbagai sistem tanpa khawatir masalah kompatibilitas atau perbedaan environment.
Docker bisa menjadi alat yang kompleks, namun setiap pengembang sebaiknya mengenalnya. Jika Anda ingin memulai, lihat kursus Introduction to Docker.
Alternatif Anaconda: Ringkasan
Berikut gambaran umum fitur kunci dan kasus penggunaan setiap alternatif. Rujuk daftar ini kapan pun Anda perlu menemukan yang paling cocok untuk kebutuhan pengembangan Python Anda.
|
Nama alat |
Tipe |
Fitur |
Terbaik untuk |
Penggunaan sumber daya |
Platform |
|
Miniconda |
Manajer environment |
Ringan, instalasi paket kustom, dukungan Conda |
Pengguna yang membutuhkan penyiapan minimal |
Rendah |
Windows, macOS, Linux |
|
Pipenv |
Manajer dependensi |
Manajemen Pipfile, integrasi virtual environment |
Manajemen dependensi yang disederhanakan |
Sedang |
Windows, macOS, Linux |
|
Poetry |
Manajer dependensi |
Manajemen dependensi dan packaging terintegrasi |
Manajemen proyek komprehensif |
Sedang |
Windows, macOS, Linux |
|
Virtualenv |
Manajer environment |
Environment terisolasi, dukungan versi Python |
Pembuatan environment sederhana |
Rendah |
Windows, macOS, Linux |
|
Pyenv |
Manajer versi |
Manajemen banyak versi Python, terintegrasi dengan Virtualenv |
Mengelola banyak versi Python |
Rendah |
macOS, Linux (Windows via WSL) |
|
Miniforge |
Manajer environment |
Instalasi minimal, dukungan Conda-forge, dukungan arsitektur ARM |
Pengguna yang membutuhkan alternatif Conda yang ringan |
Rendah |
Windows, macOS, Linux (ARM) |
|
Mamba |
Manajer environment |
Penyelesaian dependensi cepat, unduhan multithread |
Pengguna yang mencari manajemen environment ala Conda yang cepat |
Rendah |
Windows, macOS, Linux |
|
Conda (Mandiri) |
Manajer environment |
Manajemen paket dan environment, tanpa suite Anaconda penuh |
Manajemen Conda yang ringan |
Sedang |
Windows, macOS, Linux |
|
Docker |
Containerization |
Isolasi environment, konsisten di berbagai tahap |
Proyek kompleks, produksi |
Tinggi |
Windows, macOS, Linux |
Kesimpulan
Meskipun Anaconda adalah alat yang tangguh dan banyak digunakan untuk mengelola environment dan paket Python, Anaconda mungkin tidak selalu cocok untuk setiap proyek atau pengguna, khususnya dengan perubahan lisensi terbaru. Faktor seperti kebutuhan sumber daya tinggi, performa rendah, dan kebutuhan solusi yang lebih ter kustomisasi dapat membuat Anaconda kurang sesuai.
Untungnya, ada beberapa alternatif yang dapat Anda pertimbangkan. Opsi ringan seperti Miniconda dan Virtualenv menawarkan penyiapan yang ringkas, sementara alat komprehensif seperti Poetry dan Docker menyediakan fitur luas untuk kebutuhan yang lebih kompleks.
Saya mendorong Anda untuk mengeksplorasi alternatif yang diuraikan dalam artikel ini guna menemukan yang paling sesuai dengan kebutuhan Anda.
Untuk informasi lebih lanjut dan sumber daya agar Anda dapat mulai, lihat bacaan tambahan dan kursus DataCamp berikut:
FAQs
Mengapa saya mungkin memilih alternatif Anaconda yang lebih ringan?
Beberapa alternatif Anaconda lebih hemat sumber daya, sehingga ideal bagi pengguna dengan ruang disk atau memori terbatas, atau bagi mereka yang lebih menyukai penyiapan yang minimal.
Dapatkah saya menggunakan Docker sebagai alternatif Anaconda untuk proyek data science?
Ya, Docker bisa menjadi alternatif yang kuat untuk membuat environment terisolasi dan dapat direproduksi yang mencakup Python, pustaka, dan dependensi lain yang diperlukan untuk proyek data science.
Apakah Pyenv cocok untuk mengelola banyak versi Python?
Ya, Pyenv dirancang khusus untuk mengelola banyak versi Python di sistem Anda, memudahkan beralih antar versi untuk proyek yang berbeda.
Apa keuntungan menggunakan Miniconda dibandingkan Anaconda untuk pemula?
Miniconda menyediakan penyiapan minimal yang lebih mudah dikelola bagi pemula yang ingin mulai dengan alat dasar dan menambahkan paket sesuai kebutuhan, mengurangi kompleksitas dan penggunaan sumber daya dibandingkan Anaconda.
Apa perbedaan antara Pipenv dan Poetry untuk manajemen dependensi Python?
Pipenv berfokus pada penggabungan fungsi Pip dan Virtualenv untuk manajemen dependensi yang lebih baik, sementara Poetry menawarkan pendekatan yang lebih terintegrasi, mengelola dependensi, packaging, dan publishing secara terpadu.

