Proyek ini terdiri dari template cookiecutter yang menghasilkan struktur penuh untuk membuat paket standar PYPI.
Saat menggunakan proyek ini, Anda akan diminta untuk memberikan beberapa input seperti penulis, nama proyek, dll. Sebagai hasilnya, Anda akan mendapatkan file lengkap dan struktur folder untuk dengan cepat mulai mengkode paket Anda.
Mari kita berpura -pura ingin membuat proyek yang disebut "FedDit". Dengan menggunakan template ini berdasarkan cookiecutter, Anda akan dapat dengan cepat mengatur paket PYPI yang dapat dibangun.
Pertama, dapatkan cookiecutter. Percayalah, ini luar biasa:
$ Pip Instal Cookiecutter
atau dengan puisi :
$ puisi sendiri menambahkan cookiecutter
Sekarang jalankan melawan repo ini:
$ cookiecutter https://github.com/zhiwei2017/pyckage-cookiecutter
atau:
$ puisi menjalankan cookiecutter https://github.com/zhiwei2017/pyckage-cookiecutter
Anda akan diminta untuk beberapa nilai. Berikan mereka, maka proyek akan dibuat untuk Anda.
PERINGATAN : Setelah titik ini, ubah ' proyek saya yang luar biasa ', ' John Doe ', dll ke informasi Anda sendiri.
Jawab petunjuknya dengan petunjuk yang diinginkan sendiri. Misalnya:
Mengkloning ke 'pyckage-cookiecutter' ... Remote: Menghitung Objek: 219, selesai. Remote: menghitung objek: 100% (219/219), selesai. Remote: Compressing Objects: 100% (123/123), selesai. Remote: Total 219 (Delta 83), digunakan kembali 181 (Delta 69), paket-re-re-reused 0 Objek Menerima: 100% (219/219), 41.09 Kib | 1.71 MIB/S, selesai. Menyelesaikan delta: 100% (83/83), selesai. [1/8] Pilih nama proyek Anda (proyek saya yang luar biasa): [2/8] URL Proyek untuk Hosting Kode Sumber. (https://repository-hostting.com/example_project): https://github.com/zhiwei2017/feddit [3/8] Penulis Nama Lengkap. (John Doe): John Doe [4/8] Alamat email penulis. ([email protected]): [email protected] [5/8] Deskripsi singkat. (Lihatlah proyek saya yang luar biasa!): API Reddit palsu. [6/8] Versi semantik untuk digunakan untuk rilis. (0.1.0): 0.1.0 [7/8] Lisensi mana yang ingin Anda gunakan untuk proyek Anda? 1 - tidak ada 2 - MIT 3 - Apache 4 - 2 Clause BSD 5 - 3 -klausa BSD 6 - GPL Pilih dari [1/2/3/4/5/6] (1): 2 [8/8] Pipa CI/CD mana yang Anda rencanakan untuk digunakan? 1 - tidak ada 2 - GitHub 3 - Gitlab 4 - Bitbucket Pilih dari [1/2/3/4] (1): 2 ** Harap baca komentar dari ReadMe.rst di proyek Anda untuk mengetahui cara mengatur pipa CI/CD dan menggunakan perintah dari Makefile. **
Masukkan proyek dan lihat -lihat:
$ cd feddit/ $ ls
Repo Anda harus memiliki struktur berikut:
Feddit ├── .github - Konfigurasi Tindakan GitHub │ └── Alur kerja │ ├── uji.yml - Pipa untuk pemeriksaan dan pengujian serat │ ├── Release.yml - pipa untuk rilis dengan tag │ └── sphinx.yml - pipa untuk menerbitkan halaman gitub ├── Docs - Dokumentasi Sphinx │ ├── Makefile - Makefile mendefinisikan perintah terminal untuk dokumentasi sphinx │ └── sumber - Folder Sumber Dokumentasi │ ├── 01_about.rst │ ├── 02_source.rst │ ├── 03_authors.rst │ ├── 04_contributing.rst │ ├── conf.py - file konfigurasi sphinx │ └── Index.RST ├── Feddit │ └── __init__.py ├─ "tes - tes │ ├ tolasan sumber daya - sumber daya yang digunakan dalam tes │ ├── Conftest.py - perlengkapan dalam tes │ └── test_version.py - Informasi versi uji. ├── .gitignore ├── Kontribusi.RST - Pedoman yang berkontribusi ├── lisensi ├── Makefile - perintah terminal yang telah ditentukan sebelumnya ├── manifest.in - perintah, satu per baris, menginstruksikan setuptools untuk menambah atau menghapus beberapa set file dari SDIS ├── readme.rst - informasi paket ├── Setup.cfg - Konfigurasi untuk Flake8, karena tidak mendukung pyproject.toml. └── PyProject.toml - File Konfigurasi Paket
Jika Anda ingin menggunakan pipa CI/CD untuk mengunggah paket Anda ke PYPI, silakan periksa bagian konfigurasi CI/CD .
Catatan :
Repo ini dibangun sebagai paket roda dan diunggah ke PYPI. Anda dapat menginstalnya melalui PIP :
$ Pip Instal Pyckage-Cookiecutter
atau melalui puisi :
$ puisi sendiri menambahkan pyckage-cookiecutter
Dan mulailah menghasilkan proyek baru dengan panggilan:
$ pyckage_cookiecutter
atau:
$ puisi menjalankan pyckage_cookiecutter
Sisanya sama dengan tutorial yang diperkenalkan.
Pipa CI/CD telah ditentukan sebelumnya dalam proyek yang dihasilkan. Silakan periksa bagian berikut untuk langkah mana yang disertakan dan cara mengonfigurasinya di platform yang berbeda.
Anda dapat menemukan semua file konfigurasi dari tindakan github di folder .github/workflows .
| File konfigurasi | Tangga | Aturan pemicu | Variabel CI/CD yang diperlukan | Deskripsi Variabel CI/CD |
|---|---|---|---|---|
| test.yml | mypy check |
| ||
| Periksa Flake8 | ||||
| cek bandit | ||||
| Tes dengan Python 3.8 (Ubuntu/Mac OS/Windows) | ||||
| Tes dengan Python 3.9 (Ubuntu/Mac OS/Windows) | ||||
| Tes dengan Python 3.10 (Ubuntu/Mac OS/Windows) | ||||
| Tes dengan Python 3.11 (Ubuntu/Mac OS/Windows) | ||||
| Tes dengan Python 3.12 (Ubuntu/Mac OS/Windows) | ||||
| Twine Periksa paket yang dibangun | ||||
| Release.yml | Digunakan ke PYPI | Dorong ke tag yang cocok dengan vxx.xx.xx | Poetry_pypi_token_pypi | Token untuk mengunggah paket ke PYPI resmi. Jika Anda menggunakan artefaktor pribadi, silakan gunakan variabel package_index_repository_url, package_index_username, dan package_index_password sebagai gantinya. |
| Package_index_repository_url | URL indeks paket pribadi. | |||
| Package_index_username | Nama pengguna indeks paket pribadi. | |||
| Package_index_password | Kata sandi indeks paket pribadi. | |||
| sphinx.yml | Menyebarkan halaman GitHub | Dorong untuk menguasai cabang |
Catatan :
Sebelum menerbitkan halaman GitHub proyek Anda untuk pertama kalinya, silakan buat secara manual halaman GH cabang melalui:
Master checkout $ git $ git checkout -b halaman gh $ git mendorong asal gh halaman
File .gitlab-ci.yml berisi semua konfigurasi untuk gitlab ci.
| Tahap | Tangga | Aturan pemicu | Variabel CI/CD yang diperlukan | Deskripsi Variabel CI/CD |
|---|---|---|---|---|
| Berbaris | mypy check |
| ||
| Periksa Flake8 | ||||
| cek bandit | ||||
| tes | Tes dengan Python 3.8 | |||
| Tes dengan Python 3.9 | ||||
| Tes dengan Python 3.10 | ||||
| Tes dengan Python 3.11 | ||||
| Tes dengan Python 3.12 | ||||
| membangun | Twine Periksa paket yang dibangun | |||
| menyebarkan | Digunakan ke PYPI | Dorong ke tag yang cocok dengan vxx.xx.xx | Poetry_pypi_token_pypi | Token untuk mengunggah paket ke PYPI resmi. Jika Anda menggunakan artefaktor pribadi, silakan gunakan variabel package_index_repository_url, package_index_username, dan package_index_password sebagai gantinya. |
| Package_index_repository_url | URL indeks paket pribadi. | |||
| Package_index_username | Nama pengguna indeks paket pribadi. | |||
| Package_index_password | Kata sandi indeks paket pribadi. |
Pergi ke Pengaturan .
Klik bagian CI/CD .
Pergi ke bagian Variabel .
Klik Tambahkan tombol Variabel .
Masukkan nama dan nilai variabel CI/CD.
Secara default, bendera yang dilindungi diperiksa, yang berarti variabel yang ditambahkan hanya dapat digunakan untuk cabang/tag yang dilindungi. Jika Anda ingin menjaga variabel Anda terlindungi, silakan tambahkan wildcards v* sebagai tag yang dilindungi dalam pengaturan -> repositori -> tag yang dilindungi .
Atau Anda dapat menghapus centang kotak untuk menggunakan variabel untuk semua cabang dan tag.
File bitbucket-pipelines.yml berisi semua konfigurasi pipa bitbucket.
| Tangga | Aturan pemicu | Variabel CI/CD yang diperlukan | Deskripsi Variabel CI/CD |
|---|---|---|---|
| mypy check |
| ||
| Periksa Flake8 | |||
| cek bandit | |||
| Tes dengan Python 3.8 | |||
| Tes dengan Python 3.9 | |||
| Tes dengan Python 3.10 | |||
| Tes dengan Python 3.11 | |||
| Tes dengan Python 3.12 | |||
| Twine Periksa paket yang dibangun | |||
| Digunakan ke PYPI | Dorong ke tag yang cocok dengan vxx.xx.xx | Poetry_pypi_token_pypi | Token untuk mengunggah paket ke PYPI resmi. Jika Anda menggunakan artefaktor pribadi, silakan gunakan variabel package_index_repository_url, package_index_username, dan package_index_password sebagai gantinya. |
| Package_index_repository_url | URL indeks paket pribadi. | ||
| Package_index_username | Nama pengguna indeks paket pribadi. | ||
| Package_index_password | Kata sandi indeks paket pribadi. |
Buka pengaturan repositori .
Klik Variabel Repositori .
Klik Tambah tombol.
Masukkan nama dan nilai variabel CI/CD.
Anda perlu mengaktifkan saluran pipa sebelum menambahkan variabel baru untuk pertama kalinya.
| Memerintah | Keterangan |
|---|---|
| membersihkan | Hapus folder dan artefak yang diotogenerasi. |
| Clean-pyc | Hapus artefak Python. |
| Bangunan bersih | Hapus artefak build. |
| bandit | Jalankan analisis keamanan bandit. |
| mypy | Jalankan pemeriksaan tipe mypy. |
| Flake8 | Jalankan Flake8 Linting. |
| memasang | Instal semua dependensi dan paket itu sendiri. |
| tes | Jalankan tes dan hasilkan laporan cakupan. |
| membangun | Bangun paket roda. |
| menerbitkan | Publikasikan paket roda yang dibangun. |
Terima kasih khusus kepada proyek Cookiecutter- Pypackage untuk Template yang bagus.