30 poin oleh darjeeling 2025-07-07 | 4 komentar | Bagikan ke WhatsApp

Ringkasan video "uv: Making Python Local Workflows FAST and BORING in 2025"

Video ini adalah bagian kedua tentang cara menggunakan alat packaging Python uv untuk membuat workflow pengembangan lokal lebih cepat dan efisien. Poin-poin utamanya adalah sebagai berikut.

1. Memanfaatkan perintah inti uv
  • uv run: Menjalankan perintah seperti pytest atau fastapi di dalam virtual environment dengan menggunakan dependensi yang didefinisikan di pyproject.toml dan dikunci dalam file uv.lock.
  • uv add: Menambahkan dependensi baru ke pyproject.toml dan memperbarui file uv.lock secara otomatis.
  • uv run --with: Memungkinkan penyuntikan sementara modul helper pengembangan seperti pdbpp tanpa menambahkannya ke dependensi inti proyek.
  • uv lock --upgrade: Memperbarui file lock dependensi dengan sangat cepat. uv run secara otomatis mendeteksi perubahan pada file lock saat dijalankan dan menyinkronkan environment.
2. Menstandarkan workflow dengan just
  • uv tidak memiliki fitur bawaan untuk mendefinisikan perintah kustom seperti hatch atau pdm.
  • Video ini menyoroti kekurangan Makefile (ketergantungan pada platform, sintaks nonstandar, dan sebagainya), lalu sangat merekomendasikan runner perintah yang ditulis dengan Rust, yaitu just, sebagai alternatif.
  • Dengan justfile, tugas-tugas berulang berikut dapat distandarkan sebagai recipe.
    • test: Menjalankan pengujian (dapat menerima argumen)
    • cov: Memeriksa cakupan pengujian
    • serve: Menjalankan server pengembangan
    • checkall: Menjalankan semua pemeriksaan sekaligus, seperti lint dan type check
3. Integrasi just dan uv
  • .env file: just dapat membaca file .env untuk menetapkan environment variable. Dengan ini, workflow yang fleksibel bisa dibangun, misalnya dengan menambahkan argumen --with ke uv run secara dinamis atau mengubah port server.
  • uvx (uv tool run): Perintah untuk menjalankan paket PyPI secara independen dari proyek, mirip pipx. Di dalam recipe just, alat seperti httpie dapat digunakan tanpa menambahkannya ke dependensi proyek.
4. Mengelola virtual environment secara langsung (workflow opsional)
  • Ini adalah pendekatan untuk developer yang ingin mengaktifkan dan menggunakan virtual environment (.venv) dengan cara tradisional tanpa melalui uv run.
  • uv sync: Menyinkronkan status file uv.lock dan folder .venv. (menginstal dependensi dan menghapus paket yang tidak diperlukan)
  • direnv: Alat shell yang secara otomatis menjalankan skrip .envrc saat masuk ke direktori tertentu. Dengan ini, uv sync dapat dijalankan otomatis saat memasuki direktori dan virtual environment dapat langsung diaktifkan.
Kesimpulan

Dengan menggabungkan kecepatan uv dan alat seperti just serta direnv, otomatisasi dan standardisasi pengelolaan dependensi serta eksekusi perintah dapat ditingkatkan, sehingga developer bisa lebih fokus pada logika inti dan membangun lingkungan pengembangan yang "cepat dan membosankan (boring)", yakni sangat stabil dan mudah diprediksi.

4 komentar

 
gracefullight 2025-07-10

Saya membuat sebuah template untuk dipakai dengan https://github.com/gracefullight/py-starter.

 
aabb2467 2025-07-08

Dengan menggunakan poethepoet, kita bisa mendefinisikan task di dalam pyproject.toml, jadi saya memakainya sebagai pengganti just.

 
gracefullight 2025-07-10

Terima kasih.

 
dkmin 2025-07-09