เวอร์ชันมอดแบบ Semantic Version ใน SMAPI

รูปแบบเวอร์ชันที่ SMAPI รองรับใน manifest.json ทั้ง major.minor.patch, prerelease และ build metadata วิธีเปรียบเทียบเวอร์ชัน และควรเพิ่มเลขตัวไหนเมื่อไร

อัปเดต

สถานะการตรวจสอบ: ตรวจกับเอกสารทางการแล้ว

เนื้อหาตรวจสอบกับเอกสารทางการแล้ว แต่ยังไม่ได้ทดสอบในเกมจริงทุกขั้นตอน (ตรวจล่าสุด )

ตรวจกับ: เอกสาร Manifest บน Stardew Valley Wiki, Semantic Versioning 2.0.0

Version, MinimumVersion, MinimumApiVersion และ MinimumGameVersion ใน manifest.json ใช้รูปแบบ semantic version หน้านี้อธิบายว่าเขียนอย่างไรให้ SMAPI อ่านได้ และควรเพิ่มเลขเวอร์ชันอย่างไร

รูปแบบ

MAJOR.MINOR.PATCH-PRERELEASE+BUILD
1    .2    .3    -beta.1    +20261019
ส่วน จำเป็น ตัวอย่าง
MAJOR ใช่ 1
MINOR ใช่ 2
PATCH ไม่ (SMAPI ถือเป็น 0 ถ้าไม่ใส่) 3
PRERELEASE ไม่ -beta.1, -alpha
BUILD ไม่ +20261019

เวอร์ชันที่ถูกต้อง: 1.0.0, 1.2, 2.0.0-beta.3, 1.0.0+build.5

เวอร์ชันที่ผิด: v1.0.0 (มีตัว v), 01.0.0 (เลขขึ้นต้นด้วย 0), 1 (มีแค่ส่วนเดียว), 1.0.0- (ขีดท้าย)

ควรเพิ่มเลขไหนเมื่อไร

เปลี่ยนแปลง เพิ่มเลข ตัวอย่าง
แก้บั๊ก ไม่กระทบผู้ใช้หรือมอดอื่น PATCH 1.2.3 เป็น 1.2.4
เพิ่มฟีเจอร์ ยังใช้แทนของเดิมได้ MINOR 1.2.4 เป็น 1.3.0
เปลี่ยนแบบที่ config หรือ API เดิมใช้ไม่ได้ MAJOR 1.3.0 เป็น 2.0.0
เวอร์ชันทดลองก่อนปล่อยจริง PRERELEASE 2.0.0-beta.1

การเปรียบเทียบเวอร์ชัน

SMAPI เปรียบเทียบทีละส่วนจากซ้ายไปขวา เป็นตัวเลข ไม่ใช่ข้อความ

  • 1.10.0 ใหม่กว่า 1.9.0 (10 มากกว่า 9)
  • 2.0 เท่ากับ 2.0.0
  • 1.0.0 ใหม่กว่า 1.0.0-beta (เวอร์ชันจริงใหม่กว่าเวอร์ชันทดลองของเลขเดียวกัน)

ใช้หลักนี้เวลาตั้ง MinimumVersion ใน Dependencies เช่น "MinimumVersion": "1.20.0" จะยอมรับ 1.20.0, 1.21.0 และ 2.0.0 แต่ไม่ยอมรับ 1.19.5

ให้เวอร์ชันตรงกันทั้งโปรเจกต์

ในมอด C# มีเวอร์ชันสองที่ คือ Version ใน manifest.json และ <Version> ในไฟล์ .csproj ควรตั้งให้ตรงกันเสมอ เทมเพลตจาก Mod Generator ตั้งค่าทั้งสองที่ให้ตรงกันตั้งแต่แรก

เอกสารอ้างอิงทางการ

ค้นหาใน SVMT

กรองตามประเภท

พิมพ์คำที่ต้องการค้นหา (ภาษาไทยหรืออังกฤษ)