เครื่องคำนวณ SemVer

ระบบการจัดเวอร์ชันแบบเซมานติกประกอบด้วยส่วนหลักห้าส่วน ได้แก่ MAJOR, MINOR และ PATCH พร้อมด้วยส่วนขยายเลือกใช้ -prerelease และ +build เครื่องคำนวณนี้จะรับสตริงเวอร์ชัน ตรวจสอบความถูกต้องตามไวยากรณ์ของ semver 2.0.0 แยกออกเป็นส่วนประกอบต่างๆ แล้วแสดงเวอร์ชันหลัก ย่อย แพตช์ และก่อนการเปิดตัว (-rc.1) ถัดไปเคียงข้างกัน

วิธีปรับปรุงเวอร์ชัน

  1. 1

    วางเวอร์ชันปัจจุบัน

    รองรับแบบฟอร์ม `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` และแบบฟอร์มอื่นๆ ของ semver 2.0.0

  2. 2

    อ่านส่วนที่แยกวิเคราะห์แล้ว

    เครื่องมือนี้จะแยกสตริงออกเป็นเวอร์ชันหลัก ย่อย แพตช์ ก่อนการเปิดตัว และข้อมูลเมตาของบิลด์ เพื่อให้คุณยืนยันได้ว่ามันถูกตีความตามที่คุณคาดไว้

  3. 3

    เปรียบเทียบเวอร์ชันถัดไป

    เครื่องมือจะแสดงเวอร์ชันหลัก ย่อย และแพตช์ถัดไปพร้อมกัน พร้อมทั้งเวอร์ชันก่อนการเปิดตัวที่เป็นตัวเลือก (`-rc.1`) การเพิ่มเวอร์ชันย่อยจะรีเซ็ตแพตช์เป็น 0 ส่วนการเพิ่มเวอร์ชันหลักจะรีเซ็ตทั้งเวอร์ชันย่อยและแพตช์

  4. 4

    คัดลอกเวอร์ชันใหม่

    เลือกเวอร์ชันที่เหมาะกับการเปลี่ยนแปลงของคุณ แล้วนำไปใช้ใน `package.json`, `Cargo.toml`, แท็ก git หรือบันทึกการปล่อยของคุณ

สิ่งที่เครื่องคำนวณนี้แสดง

สำหรับเวอร์ชันอย่าง 1.2.3 เครื่องมือจะแสดงเวอร์ชันถัดไปที่แนะนำสี่รายการ:

การเพิ่ม 1.2.3 เปลี่ยนเป็น
หลัก 2.0.0
ย่อย 1.3.0
แพตช์ 1.2.4
ก่อนการเปิดตัว 1.2.4-rc.1

การเพิ่มเวอร์ชันย่อยจะรีเซ็ตแพตช์เป็น 0 ส่วนการเพิ่มเวอร์ชันหลักจะรีเซ็ตทั้งเวอร์ชันย่อยและแพตช์เป็น 0 คำแนะนำก่อนการเปิดตัวจะทำเครื่องหมายแพตช์ถัดไปเป็นตัวเลือกสำหรับการปล่อย เครื่องมือบรรทัดคำสั่งอย่าง npm version มีการดำเนินการเพิ่มเติม (premajor, preminor, prepatch และการเพิ่มเวอร์ชันก่อนการเปิดตัวในตำแหน่งเดิม เช่น 1.2.3-beta.1 กลายเป็น 1.2.3-beta.2) หากคุณต้องการใช้ในสคริปต์การปล่อย

กฎลำดับความสำคัญที่คุณจะต้องปฏิบัติตาม

  • เวอร์ชันก่อนการเปิดตัวมีลำดับความสำคัญต่ำกว่าเวอร์ชันที่เปิดตัวอย่างเป็นทางการ: 1.0.0-rc.1 < 1.0.0
  • ตัวระบุแบบตัวเลขจะเปรียบเทียบกันตามค่าตัวเลข ส่วนตัวอักษรและตัวเลขจะเปรียบเทียบกันตามลำดับคำ: 1.0.0-alpha.2 < 1.0.0-alpha.11
  • เมตาดาต้าของบิลด์ (+sha.abc) จะถูกละเว้นไม่พิจารณาในเรื่องลำดับความสำคัญ โดย 1.0.0+20240101 และ 1.0.0+20250101 ถือเป็นเวอร์ชันที่เท่าเทียมกัน
  • ตัวศูนย์ที่อยู่ด้านหน้าในรหัสประจำตัวเลขไม่ถูกต้อง 1.0.0-rc.01 ไม่ใช่ semver; กรุณาใช้ rc.1

แบบฟอร์มสรุปค่าช่วง

  • ^1.2.3, ต้องเป็นเวอร์ชันที่มีเลขที่อย่างน้อย 1.2.3 และต่ำกว่า 2.0.0 (คงอยู่ในกลุ่มเวอร์ชันหลักเดิม)
  • ~1.2.3, ต้องเป็นเวอร์ชันที่มีเลขที่อย่างน้อย 1.2.3 และต่ำกว่า 1.3.0 (คงอยู่ในกลุ่มเวอร์ชันย่อยเดิม)
  • >=1.2.3 <2.0.0, ช่วงค่าที่ระบุอย่างชัดเจน
  • 0.x เป็นกรณีพิเศษ: npm จัดว่า ^0.2.3 เทียบเท่ากับ >=0.2.3 <0.3.0 เนื่องจากเวอร์ชันก่อน 1.0 ถือว่าไม่มั่นคง

เวลาที่ควรปรับเปลี่ยนค่าหลัก

ให้เพิ่มเวอร์ชันหลัก (major) สำหรับการเปลี่ยนแปลงใดๆ ที่ส่งผลกระทบต่อผู้ใช้งานปลายทาง: การลบ API สาธารณะ การเปลี่ยนรูปแบบฟังก์ชัน การปรับเปลี่ยนพฤติกรรมเริ่มต้น และการเปลี่ยนชื่อคีย์การกำหนดค่า ส่วนเวอร์ชันย่อย (minor) ใช้สำหรับการเพิ่มเติมฟีเจอร์เท่านั้น ในขณะที่แพตช์ (patch) ใช้สำหรับการแก้ไขข้อผิดพลาดโดยไม่เปลี่ยนแปลงเงื่อนไขหรือโครงสร้างพื้นฐานของระบบ

คำถามที่พบบ่อย

หมายเลข 01.2.3 ไม่ถูกต้อง รหัสประจำตัวแบบตัวเลขทุกตัวจะต้องเป็นจำนวนเต็มไม่เป็นลบ โดยไม่มีศูนย์อยู่ด้านหน้า ยกเว้นค่าตรงไปตรงมา 0

ให้ใช้แพตช์บัมจากเวอร์ชัน 1.0.0-rc.N ล่าสุด โดย semver จะถือว่าเป็นการอัปเกรดจากเวอร์ชันก่อนการปล่อยจริงไปยังเวอร์ชันที่เผยแพร่จริง อีกทางเลือกหนึ่งคือการกำหนดเวอร์ชันอย่างชัดเจนและเพิ่มแท็ก

ไม่ใช่ เมตาข้อมูลประเภท “Build” มีลำดับถัดจาก + และจะไม่ถูกนำมาพิจารณาในการเรียงลำดับความสำคัญ ส่วนประเภท “Prerelease” มีลำดับถัดจาก - และมีลำดับความสำคัญต่ำกว่าประเภท “Release” อย่างไรก็ตาม ระบบจดทะเบียนส่วนใหญ่อนุญาตให้ใช้ทั้งสองประเภทพร้อมกันได้ เช่น 1.2.3-rc.1+build.77

ใช่, Semver ไม่จำเป็นต้องใช้เวอร์ชันหลักที่ต่อเนื่องกัน การเปลี่ยนจากเวอร์ชัน 3.x ไปยังเวอร์ชัน 5.x โดยตรงถือว่าได้รับการยอมรับ แม้ว่าทีมส่วนใหญ่มักใช้การเปลี่ยนแปลงดังกล่าวเพื่อสื่อถึงการเปลี่ยนแปลงที่มีผลกระทบอย่างมากก็ตาม

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวตรวจสอบความถูกต้องของ JSON

ตรวจสอบไวยากรณ์ JSON และตรวจจับเครื่องหมายจุลภาคต่อท้าย เครื่องหมายอัญประกาศที่ผิด คีย์ซ้ำ และโครงสร้างที่ผิดรูปแบบ พร้อมระบุตำแหน่งข้อผิดพลาดอย่างแม่นยำ

ตัวตรวจสอบอีเมล

ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

เครื่องมือนี้มีให้บริการในภาษาอื่น