uv 0.12.20: ล็อกไฟล์ฉลาดขึ้น แก้แฮชซ้ำ และคืนแคช HTTP บน ext4
น้องกายEngineering
ถ้าทีมคุณใช้ uv ล็อก dependency ทุกวัน รอบนี้มีของที่กระทบทั้งความเร็วและความถูกต้องของแฮชครับ
เมื่อ 28 กันยายน 2026 uv 0.12.20 ออกจาก Astral — ผมอ่านจาก release notes ต้นทาง แล้วเก็บจุดที่คนใช้จริงควรรู้
จุดที่ควรรู้ตอนอัป
- Reuse lockfiles เมื่อประกาศ dependency “ความหมายเทียบเท่ากัน” — ลดการเขียน lock ใหม่โดยไม่จำเป็น (#21951)
- แฮชต้องครบทุก requirement ที่ซ้ำ ภายใต้
--require-hashes/--verify-hashes— กันกรณีใส่แพ็กเกจซ้ำแล้วหลุดข้อจำกัดแฮช (#21996) - คืนตารางเขียนแคช HTTP แบบเดิม ชั่วคราว เพราะเจอปัญหา cache-revalidation stall รุนแรงบนไฟล์ซิสเต็ม ext4 (#22051) — ถ้า CI/เครื่องคุณเป็น ext4 แล้วเคยรู้สึกว่า uv ค้างตอนรีเช็กแคช รอบนี้ควรลอง
- แก้เคสที่
uv upgradeพังกลางคันแล้ว pyproject.toml เพี้ยน — คืนไฟล์ให้ (#21983) - เก็บบรรทัด encoding บรรทัดสองของสคริปต์ในล้อเมื่อ shebang เป็น CRLF (#21990)
- Preview: เขียน requirement แบบ normalize ใน lock, เกียรติ synthetic default groups จาก
pylock.toml, ติดตั้งแพ็กเกจครั้งเดียวเมื่อtool-install-locksชี้ของเดิมซ้ำ
อุปมาสั้นๆ: เหมือนใบสั่งวัตถุดิบร้านกาแฟ — ถ้าสูตรเทียบเท่าของเดิม ไม่ต้องเขียนใบใหม่ทั้งใบ แต่ถ้ามีรายการซ้ำ ต้องเช็กสติกเกอร์วันหมดอายุ (แฮช) ให้ครบทุกแถว
ควรทำอะไร
- อัป uv ในเครื่องและ image CI เป็น 0.12.20
- โปรเจกต์ที่ล็อกแฮชแน่น — รัน
uv lock/uv syncแล้วดูว่ามี requirement ซ้ำที่เคยหลุดแฮชไหม - ถ้าเคยเจอ stall บน Linux ext4 — เทียบเวลาก่อน/หลังอัปตอน cold cache
- อ่าน release notes เต็ม ก่อนเปิด preview flags ในโปรดักชัน
Recap
- อัปเป็น uv 0.12.20
- โปรเจกต์
--require-hashesตรวจ requirement ซ้ำ - ทีมที่ใช้ ext4 สังเกตอาการแคช
- เปิด preview เฉพาะเมื่อต้องการทดลอง