อ้างอิง
เวอร์ชันมอดแบบ 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.01.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 ตั้งค่าทั้งสองที่ให้ตรงกันตั้งแต่แรก