0Pricing
Python Academy · บทเรียน

การกำหนดรุ่นและข้อมูลเมทาดาทา

จัดการเมทาดาทาของแพ็กเกจ

การกำหนดรุ่นและข้อมูลเมทาดาทา เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โครงสร้างโครงการและ pyproject.toml
  2. การสร้างด้วย build
  3. การกำหนดรุ่นและข้อมูลเมทาดาทา
  4. การเผยแพร่ด้วย twine
← กลับไปที่ Python Academy