Flutter: เลขเวอร์ชันของ Flutter มีความหมายอย่างไรบ้าง?
Published on
Authored by Pete. Pittawat Taveekitworachai.
เมื่อช่วงต้นปี (2020) ที่ผ่านมา Flutter ได้มีการปรับระบบการออกอัพเดท รวมถึงการตั้งเลขเวอร์ชันใหม่ เพื่อให้นักพัฒนาสามารถเข้าใจได้ง่ายขึ้น และผู้ที่สนใจจะช่วยก็สามารถช่วยร่วมพัฒนา Flutter ได้ง่ายขึ้นเช่นกัน
โดยปัจจุบัน Flutter ใช้ Braching model ในการกำหนดการ Release ของ Stable และ Beta ซึ่งในทุก ๆ ช่วงต้นเดือนจะมีการ Branch ออกมาสำหรับ Beta Release และนำไปพัฒนาต่อให้มีความเสถียรมากยิ่งขึ้นผ่านการ Cherry-pick การแก้ไขที่สำคัญ ๆ เข้ามา และทุก ๆ 4 เดือน Flutter จะโปรโมท Beta Branch ไปเป็น Stable Release และหลังจากนั้นก็จะยังมีการ Maintenance ในส่วนของ Hotfixes ต่าง ๆ ให้ Stable Release ตามความจำเป็น
นอกจากนี้ในปัจจุบันการ Release ของ Flutter ยังผูกกับการ Release ของ Dart อีกด้วย นั่นหมายความว่าเมื่อมีการ Release Flutter เวอร์ชันใหม่ Dart เวอร์ชันใหม่ก็จะถูก Release ด้วยเช่นกัน นอกจากนี้ใน Flutter Beta ก็จะใช้ Dart Beta ด้วยเช่นกัน
สำหรับความหมายของตัวเลขเวอร์ชันของ Flutter ในปัจจุบันก็จะเป็นการยึดตาม SemVer และปรับปรุงเพิ่มเติม ดังนี้
สำหรับเวอร์ชันที่เป็นเวอร์ชันที่ถูกสร้างมาจาก master
โดยแต่ละ Built จะอยู่บน Branch dev
(ไม่ใช่ Beta) จะมี .pre
ตามหลังเลขเวอร์ชัน เพื่อแสดงถึงการเป็น Pre-release โดยจะมีลักษณะเลขเวอร์ชันเป็น x.y.z-n.m.pre
โดยทุก ๆ ครั้งที่มีการ Built จาก master เลข n
จะเป็นเพิ่มขึ้นหนึ่ง เช่น
1.18.0–1.0.pre
:dev
build แรก หลังจากที่master
ขยับไปเวอร์ชัน1.18
1.18.0–2.0.pre
:dev
build ถัดไปจากจุดล่าสุดของmaster
สำหรับเวอร์ชัน Beta นั้นจะมาจาก dev
ข้างบนโดยวิธีการ Cherry-pick จาก Release ทั้งหมด ทุก ๆ ครั้งที่มีการ Release m
จะเพิ่มขึ้นหนึ่ง เช่น หากนำเวอร์ชันที่ 15 จาก dev
ซึ่งมาจาก master
เวอร์ชัน 1.18
เข้าสู่ beta
จะเป็นดังนี้
1.18.0–15.0.pre
:beta
เวอร์ชันแรก (เวอร์ชันเดียวกับบนdev
ที่เลือกมาโดยไม่มีอะไรเพิ่มเติม)1.18.0–15.1.pre
:beta
เวอร์ชันถัดไปที่มีการ Cherry pick บางอย่างมาเพิ่มเติม1.18.0–15.2.pre
: เวอร์ชันที่ 2 ของbeta
นี้
และสุดท้ายเวอร์ชัน Stableจะมีเลขเวอร์ชันเป็น x.y.0
และทุก ๆ ครั้งที่มีการปล่อย Hotfixes จะมีการอัพเดทเลข Patch เช่น x.y.1
, x.y.2
ตัวอย่าง
1.18.0–15.4.pre
เวอร์ชันบนbeta
ที่เลือกมา ยังไม่ถือเป็น Stable1.18.0
: Stable Release ซึ่งจริง ๆ แล้วเหมือน1.18.0–15.4.pre
เลยแค่เปลี่ยนเลขเวอร์ชันและสถานะเป็น Stable1.18.1
: Hotfix เวอร์ชัน1.18.0