นี่คือเทมเพลต CookieCutter เพื่อสร้างโครงการ Python ที่จะแจกจ่ายที่ PYPI มันรวมถึงการรวมเข้ากับการกระทำของ gitHub, readthedocs.io และ coveralls.io
โครงสร้างโครงการเป็นไปตามรูปแบบจากโครงการสาธิตขอโทษ บทกวีใช้จัดการบรรจุภัณฑ์ Python และการพึ่งพาและงานประจำวันส่วนใหญ่ (เช่นการทดสอบหน่วยการเรียกใช้จากบรรทัดคำสั่ง) ได้รับการจัดเตรียมผ่านบทกวีโดยใช้บทกวีของฉัน มาตรฐานการเข้ารหัสถูกบังคับใช้โดยใช้สีดำ, isort และ pylint Python 3 Type คำใบ้ได้รับการตรวจสอบความถูกต้องโดยใช้ mypy เวิร์กโฟลว์การกระทำของ GitHub เป็นงานสร้างเมทริกซ์ที่ใช้งานโดยใช้ GHA-shared-workflows ของฉัน นอกจากนี้ยังมีตะขอล่วงหน้าเพื่อบังคับใช้การตรวจสอบสไตล์รหัส ไฟล์ DEVELOPER.md ที่สร้างขึ้น MD ให้บันทึกเกี่ยวกับวิธีการจัดโครงสร้างรหัสวิธีการตั้งค่าสภาพแวดล้อมการพัฒนา ฯลฯ
ในการใช้เทมเพลตนี้คุณต้องติดตั้ง CookieCutter:
pip install cookiecutter
โครงการที่ได้ขึ้นอยู่กับเครื่องมือสร้างบทกวี คุณต้องติดตั้งเฉพาะล่ามและบทกวีของ Python 3 บทกวีเองดูแลทุกอย่าง ดูคำแนะนำ
กระบวนการนักพัฒนาที่อธิบายไว้ในไฟล์ DEVELOPER.md ที่ได้รับมา MD ถือว่าคุณกำลังทำงานเชลล์สไตล์ Unix เช่น Bash บน Windows คุณคาดว่าจะใช้ Git Bash Emulator ที่ติดตั้งด้วย Git สำหรับ Windows
โดยค่าเริ่มต้นกระบวนการวางจำหน่ายในเวิร์กโฟลว์ .github/workflows/test-suite.yml ได้รับการกำหนดค่าให้เผยแพร่สิ่งประดิษฐ์โดยแนบไปยังการเปิดตัวในที่เก็บ GitHub (ไฟล์ที่สร้างขึ้น DEVELOPER.md มีคำแนะนำ) เป็นทางเลือกคุณสามารถเผยแพร่ไปยัง PYPI ได้ ในการทำเช่นนี้ให้สร้างบัญชีที่ PYPI ด้วยตัวคุณเองและลงทะเบียนโครงการของคุณ เมื่อโครงการมีอยู่แล้วให้ไปที่การตั้งค่าบัญชี PYPI ของคุณและสร้างโทเค็น API พร้อมสิทธิ์อัปโหลดสำหรับโครงการใหม่ ในที่เก็บ GitHub ของคุณเพิ่มความลับของการกระทำของ GitHub ที่เรียกว่า PYPI_TOKEN เพื่อถือโทเค็น จากนั้นปรับ test-suite.yml เพื่อตั้งค่า publish-pypi: true
ใช้ cookiecutter เพื่อดำเนินการเทมเพลต:
cookiecutter gh:pronovic/cookiecutter-pypi
เมื่อได้รับแจ้งให้ให้ค่าสำหรับพารามิเตอร์เทมเพลตทั้งหมด:
project_slug [sample-project]:
project_name [Sample Project]:
short_description [Short description]:
author_name [First Last]:
author_email [[email protected]]:
github_owner [owner]:
github_repo [samplerepo]:
default_branch [master]:
package [sample]:
python_version [>=3.9,<4]:
black_target ['py39', 'py310']:
copyright_year [2022]:
Slug Project เป็นชื่อของไดเรกทอรีผลลัพธ์ดังนั้นในตัวอย่างนี้โครงการจะถูกสร้างขึ้นใน sample-project :
cd sample-project
จากนั้นเริ่มต้นที่เก็บ GIT:
git init . && git add . && git commit -m "Initial revision based on pronovic/cookiecutter-pypi"
สมมติว่าคุณได้ติดตั้ง poetry (ตามคำแนะนำ) แล้วคุณสามารถเริ่มต้นสิ่งต่าง ๆ ได้โดยใช้สคริปต์ run ขั้นแรกให้ติดตั้งการพึ่งพาและตั้งค่าตะขอล่วงหน้า:
./run install
ในที่สุดเรียกใช้ชุดทดสอบ:
./run suite
สมมติว่าผ่านชุดทดสอบคุณจะต้องตรวจสอบ poetry.lock ด้วยเวอร์ชันปัจจุบันของการพึ่งพาทั้งหมด:
git add poetry.lock && git commit -m "Add initial poetry.lock" poetry.lock
จากนั้นคุณสามารถผลักดันไปยังที่เก็บและทดสอบกระบวนการดำเนินการของ GitHub
หมายเหตุ: หากต้องการดูคำสั่งอื่น ๆ ให้ใช้
./run --helpดูไฟล์ที่สร้างขึ้นสำหรับDEVELOPER.mdพัฒนา
คุณจะต้องปรับ .github/workflows/test-suite.yml ด้วยตนเองเพื่อสะท้อนแพลตฟอร์มและรุ่น Python ที่คุณต้องการทดสอบ เวิร์กโฟลว์ที่แนะนำใช้งานสร้างเมทริกซ์บน Linux สำหรับรุ่น Python ที่รองรับทั้งหมดและสร้างบน Windows และ MacOS สำหรับรุ่น Python ล่าสุดเท่านั้น ในการกระทำของ GitHub นักวิ่ง Linux นั้นเร็วกว่าและเชื่อถือได้มาก ขึ้น ดังนั้นกลยุทธ์นี้ดูเหมือนจะให้ผลลัพธ์ที่ดีที่สุด