การกำหนดรุ่นและข้อมูลเมทาดาทา
จัดการเมทาดาทาของแพ็กเกจ
การกำหนดรุ่นและข้อมูลเมทาดาทา เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดข้อมูลเมตาจึงสำคัญ
ข้อมูลเมตาคือทุกสิ่งเกี่ยวกับแพ็กเกจของคุณที่ไม่ใช่โค้ด ได้แก่ รุ่น คำอธิบาย ใบอนุญาต ผู้เขียน และลิงก์ PyPI ใช้ข้อมูลนี้เพื่อแสดงโครงการของคุณ ส่วน pip ใช้เพื่อแก้ไขสิ่งที่ต้องพึ่งพา
ข้อมูลเมตาที่ดีทำให้แพ็กเกจของคุณน่าเชื่อถือและติดตั้งได้
การกำหนดรุ่นตามความหมาย
หลักการที่ใช้กันคือ MAJOR.MINOR.PATCH:
- MAJOR การเปลี่ยนแปลงที่ทำให้การใช้งานเดิมไม่เข้ากัน
- MINOR ความสามารถใหม่ที่ยังเข้ากันได้กับเวอร์ชันก่อนหน้า
- PATCH การแก้ข้อผิดพลาดที่ยังเข้ากันได้กับเวอร์ชันก่อนหน้า
ผู้ใช้ใช้หลักการนี้เพื่อดูว่าการอัปเกรดปลอดภัยหรือไม่
version = '2.4.1'
major, minor, patch = version.split('.')
print('Major', major, 'Minor', minor, 'Patch', patch)
print('Bug fix -> bump patch to', major + '.' + minor + '.' + str(int(patch) + 1))การเลือกรุ่นถัดไป
การตัดสินใจว่าจะเพิ่มรุ่นใดเป็นไปตามกฎ: คุณทำให้ส่วนติดต่อการเขียนโปรแกรมใช้กับของเดิมไม่ได้ เพิ่มความสามารถ หรือเพียงแก้ข้อผิดพลาด การกำหนดกฎไว้อย่างชัดเจนทำให้การเผยแพร่แต่ละครั้งสอดคล้องกัน
def bump(version, kind):
major, minor, patch = (int(x) for x in version.split('.'))
if kind == 'major':
return str(major + 1) + '.0.0'
if kind == 'minor':
return str(major) + '.' + str(minor + 1) + '.0'
return str(major) + '.' + str(minor) + '.' + str(patch + 1)
print(bump('1.2.3', 'minor'))
print(bump('1.2.3', 'major'))รุ่นก่อนเผยแพร่และรุ่นพัฒนา
Python รองรับส่วนต่อท้ายรุ่น: 1.0.0a1 (อัลฟา), 1.0.0b2 (เบตา), 1.0.0rc1 (รุ่นตัวสมัครเผยแพร่) และ 1.0.0.dev3 pip ถือว่ารุ่นเหล่านี้เก่ากว่า 1.0.0 รุ่นสมบูรณ์ ดังนั้นผู้ทดสอบจึงเลือกติดตั้งได้โดยไม่กระทบผู้ใช้ทั่วไป
แหล่งข้อมูลจริงเพียงแห่งเดียว
เก็บรุ่นไว้เพียงแห่งเดียวเท่านั้น คุณอาจประกาศรุ่นแบบคงที่ใน pyproject.toml หรือระบุเป็น dynamic แล้วอ่านรุ่นจากโค้ด (หรือแท็ก) ผ่านเครื่องมืออย่าง setuptools-scm การเก็บไว้สองแห่งย่อมทำให้ข้อมูลคลาดเคลื่อนจากกันในที่สุด
คำอธิบายและ README
description แบบสั้นจะแสดงในผลการค้นหา คำอธิบายแบบยาวมาจาก readme ของคุณ (โดยปกติคือ README.md) และจะแสดงเป็นหน้าโครงการบน PyPI ระบุไฟล์นี้ด้วย readme = 'README.md'
README ที่ชัดเจนคือการประชาสัมพันธ์ที่ดีที่สุดของคุณ
ใบอนุญาต
ประกาศใบอนุญาตเพื่อให้ผู้ใช้ทราบถึงสิทธิของตน โครงการสมัยใหม่ใช้ข้อความตาม SPDX เช่น license = 'MIT' หากไม่มีใบอนุญาต จะถือว่าสงวนสิทธิ์ทั้งหมด ซึ่งทำให้ผู้ใช้ไม่อยากนำไปใช้
popular = ['MIT', 'Apache-2.0', 'BSD-3-Clause', 'GPL-3.0-only']
for lic in popular:
print('SPDX:', lic)ตัวจัดประเภท
classifiers คือแท็กมาตรฐานจากรายการของ PyPI เช่น 'Programming Language :: Python :: 3.11' หรือ 'Development Status :: 4 - Beta' แท็กเหล่านี้ใช้ขับเคลื่อนตัวกรองของ PyPI และบอกถึงระดับความพร้อมใช้งานกับรุ่นที่รองรับ
ลิงก์ของโครงการ
ภายใต้ [project.urls] ให้เพิ่มลิงก์ต่าง ๆ เช่น หน้าแรก เอกสาร ซอร์สโค้ด และบันทึกการเปลี่ยนแปลง ลิงก์เหล่านี้จะแสดงในแถบด้านข้างบน PyPI และช่วยให้ผู้ใช้ค้นหาคลังโค้ดกับเอกสารของคุณได้
urls = {
'Homepage': 'https://example.com',
'Source': 'https://github.com/me/mytool',
'Issues': 'https://github.com/me/mytool/issues',
}
for label, link in urls.items():
print(label.ljust(10), link)คำสำคัญเพื่อให้ค้นพบได้ง่าย
ช่อง keywords คือรายการคำสั้น ๆ ที่ช่วยให้ผู้ใช้พบแพ็กเกจของคุณจากการค้นหา เลือกคำที่ผู้ใช้จะพิมพ์ค้นหาจริง เช่น ['cli', 'automation', 'excel'] แทนคำทั่วไปที่ไม่สื่อความหมาย
เมื่อใช้ร่วมกับตัวจัดประเภท คำสำคัญจะช่วยให้ผู้คนค้นพบโครงการของคุณได้ง่ายขึ้น
บันทึกการเปลี่ยนแปลง
ดูแล CHANGELOG เพื่อบันทึกสิ่งที่เปลี่ยนแปลงในแต่ละรุ่น ผู้ใช้จะอ่านก่อนอัปเกรดเพื่อเรียนรู้เกี่ยวกับความสามารถใหม่และการเปลี่ยนแปลงที่ทำให้การใช้งานเดิมไม่เข้ากัน การเชื่อมโยงไฟล์นี้ไว้ใต้ [project.urls] ทำให้ผู้ใช้เปิดได้จากหน้า PyPI เพียงคลิกเดียว
บันทึกการเปลี่ยนแปลงที่ดีจะเปลี่ยนหมายเลขรุ่นให้กลายเป็นเรื่องราวที่ผู้ใช้ติดตามได้
ตรวจสอบความเข้าใจ
ทดสอบความรู้เกี่ยวกับการกำหนดรุ่น
สรุปทบทวน
คุณจัดการข้อมูลเมทาดาทาของแพ็กเกจได้ดังนี้:
- การกำหนดรุ่นตามความหมาย MAJOR.MINOR.PATCH รวมถึงส่วนต่อท้ายก่อนเผยแพร่
- เก็บรุ่นไว้ในแหล่งข้อมูลจริงเพียงแหล่งเดียว
- ระบุ
descriptionคำอธิบายแบบยาวของ README และlicense - เพิ่ม
classifiersและ[project.urls]เพื่อให้ PyPI แสดงข้อมูลโครงการของคุณได้อย่างเหมาะสม
คำถามที่พบบ่อย
บทเรียน “การกำหนดรุ่นและข้อมูลเมทาดาทา” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การกำหนดรุ่นและข้อมูลเมทาดาทา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การกำหนดรุ่นและข้อมูลเมทาดาทา”
จัดการเมทาดาทาของแพ็กเกจ คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การกำหนดรุ่นและข้อมูลเมทาดาทา” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างโครงการและ pyproject.toml
- การสร้างด้วย build
- การกำหนดรุ่นและข้อมูลเมทาดาทา
- การเผยแพร่ด้วย twine