Diese Projekte bestehen aus einer CookieCutter -Vorlage, die eine vollständige Struktur für ein PYPI -Standardpaket erzeugt.
Während der Verwendung dieses Projekts werden Sie gebeten, einige Eingaben wie den Autor, den Namen des Projekts usw. anzugeben. Infolgedessen erhalten Sie die vollständige Datei- und Ordnerstruktur, um schnell mit dem Codieren Ihres Pakets zu beginnen.
Stellen wir uns vor, Sie möchten ein Projekt namens "Feddit" erstellen. Durch die Verwendung dieser Vorlage basierend auf CookieTutter können Sie schnell ein erbaubares PYPI -Paket einrichten.
Holen Sie sich zuerst CookieCutter. Vertrauen Sie mir, es ist großartig:
$ pip installieren CookieCutter
oder mit Gedichten :
$ poetry self füge CookieCutter hinzu
Führen Sie es nun gegen dieses Repo aus:
$ cookieCutter https://github.com/zhiwei2017/pyckage-cookiecutter
oder:
$ Poetry Run CookieCutter https://github.com/zhiwei2017/pyckage-cookieCieTter
Sie werden für einige Werte aufgefordert. Stellen Sie sie vor, dann wird ein Projekt für Sie erstellt.
WARNUNG : Ändern Sie nach diesem Zeitpunkt " Mein großartiges Projekt ", " John Doe " usw. in Ihre eigenen Informationen.
Beantworten Sie die Eingabeaufforderungen mit Ihren eigenen gewünschten Eingabeaufforderungen. Zum Beispiel:
Klonen in 'Pyckage-CookieCieter' ... Fernbedienung: Aufzählungsobjekte: 219, fertig. Fernbedienung: Zählen von Objekten: 100% (219/219), fertig. Fernbedienung: Komprimierungsobjekte: 100% (123/123), fertig. Fernbedienung: Total 219 (Delta 83), wiederverwendet 181 (Delta 69), Pack-Resektion 0 Empfangsobjekte: 100% (219/219), 41,09 KIB | 1,71 MIB/S, fertig. Lösung von Deltas: 100% (83/83), fertig. [1/8] Wählen Sie Ihren Projektnamen (mein großartiges Projekt) aus: [2/8] Projekt -URL zum Hosting des Quellcode. (https://repository-hosting.com/example_project): https://github.com/zhiwei2017/feddit [3/8] Autor Vollständiger Name. (John Doe): John Doe [4/8] E -Mail -Adresse des Autors. ([email protected]): [email protected] [5/8] Kurzbeschreibung. (Siehe mein großartiges Projekt!): Eine gefälschte Reddit -API. [6/8] Semantische Version, die zur Veröffentlichung verwendet werden soll. (0,1,0): 0,1,0 [7/8] Welche Lizenz möchten Sie für Ihr Projekt verwenden? 1 - keine 2 - MIT 3 - Apache 4 - 2 -Klausel BSD 5 - 3 -Klausel BSD 6 - GPL Wählen Sie aus [1/2/3/4/5/6] (1): 2 [8/8] Welche CI/CD -Pipelines planen Sie zu verwenden? 1 - keine 2 - GitHub 3 - Gitlab 4 - Bitbucket Wählen Sie aus [1/2/3/4] (1): 2 ** Bitte lesen Sie die Kommentare von readme.rst in Ihrem Projekt, um zu erfahren, wie Sie die CI/CD -Pipeline einrichten und Befehle von makefile verwenden. **
Geben Sie das Projekt ein und schauen Sie sich um:
$ cd feddit/ $ ls
Ihr Repo sollte die folgende Struktur haben:
Feddit ├── .github - GitHub -Aktionen Konfigurationen │ └── Arbeitsabläufe │ ├── test.yml - Pipelines zum Linken und Tests │ ├── Release.yml - Pipelines für Veröffentlichungen mit Tags │ └── sphinx.yml - Pipelines zum Veröffentlichen von Github -Seiten ├inger Docs - Sphinx -Dokumentation │ ├── Makefile - Makefile definiert Terminalbefehle für die Sphinx -Dokumentation │ └── Quelle - Dokumentationsquellenordner │ ├── 01_about.rst │ ├── 02_Source.rst │ ├── 03_Authors.rst │ ├── 04_Contributing.rst │ ├── conf.py - Sphinx -Konfigurationsdatei │ └── Index.rst ├── Feddit │ └── __init__.py ├── Tests - Tests │ ├── Ressourcen - Ressourcen, die in Tests verwendet werden │ ├── kontest.py - Armaturen in Tests │ └── test_version.py - Testversionsinformationen. ├── .gitignore ├── beitragen. ├── Lizenz ├── Makefile - Vordefinierte Terminalbefehle ° ├── readme.rst - Paketinformationen ├── Setup.cfg - Konfigurationen für Flake8, da es nicht pyproject.toml unterstützt. └── PYProject.toml - Paketkonfigurationsdatei
Wenn Sie die CI/CD -Pipeline zum Hochladen Ihres Pakets auf PYPI verwenden möchten, überprüfen Sie bitte die CI/CD -Konfiguration von Abschnitt.
Notiz :
Dieses Repo ist als Radpaket gebaut und auf PYPI hochgeladen. Sie können es über PIP installieren:
$ pip Installieren Sie Pyckage-Cookiecterter
oder durch Gedichte :
$ poetry self add Pyckage-Cookiecterter
Und generieren Sie ein neues Projekt per Call:
$ pyckage_cookiecutter
oder:
$ poetry rennen pyckage_cookiecutter
Der Rest ist der gleiche wie das eingeführte Tutorial.
Die CI/CD -Pipelines sind im generierten Projekt vordefiniert. Bitte überprüfen Sie die folgenden Abschnitte, für die Schritte enthalten sind und wie Sie sie auf verschiedenen Plattformen konfigurieren.
Sie finden alle Konfigurationsdateien von Github -Aktionen im Ordner .github/workflows .
| Konfigurationsdatei | Schritte | Regeln auslösen | Erforderliche CI/CD -Variablen | CI/CD -Variablen Beschreibung |
|---|---|---|---|---|
| test.yml | mypy check |
| ||
| Flake8 Scheck | ||||
| Banditenprüfung | ||||
| Test mit Python 3.8 (Ubuntu/Mac OS/Windows) | ||||
| Test mit Python 3.9 (Ubuntu/Mac OS/Windows) | ||||
| Test mit Python 3.10 (Ubuntu/Mac OS/Windows) | ||||
| Test mit Python 3.11 (Ubuntu/Mac OS/Windows) | ||||
| Test mit Python 3.12 (Ubuntu/Mac OS/Windows) | ||||
| Schnur | ||||
| Release.yml | Bereitstellung in PYPI | Drücken Sie zu Tags, die mit vxx.xx.xx entsprechen | Poetry_pypi_token_pypi | Token zum Hochladen von Paket auf offizielle PYPI. Wenn Sie ein privates Artefaktor verwenden, verwenden Sie die Variablen paket_index_repository_url, paket_index_username und stattdessen Paket_index_password. |
| Package_index_repository_url | URL des Privatpaketindex. | |||
| Package_index_username | Benutzername des Privatpaketindex. | |||
| Package_index_password | Passwort des privaten Paketindex. | |||
| sphinx.yml | GitHub -Seiten bereitstellen | Drängt , den Zweig zu meistern |
Notiz :
Bevor Sie die GitHub-Seiten Ihres Projekts zum ersten Mal veröffentlichen, erstellen Sie bitte die Zweig -GH-Seiten manuell über:
$ Git Checkout Master $ git checkout -b GH -Seiten $ git push Origin GH-Seiten
Die Datei .gitlab-ci.yml enthält alle Konfigurationen für GitLab CI.
| Stufen | Schritte | Regeln auslösen | Erforderliche CI/CD -Variablen | CI/CD -Variablen Beschreibung |
|---|---|---|---|---|
| Linie | mypy check |
| ||
| Flake8 Scheck | ||||
| Banditenprüfung | ||||
| prüfen | Test mit Python 3.8 | |||
| Test mit Python 3.9 | ||||
| Test mit Python 3.10 | ||||
| Test mit Python 3.11 | ||||
| Test mit Python 3.12 | ||||
| bauen | Schnur | |||
| einsetzen | Bereitstellung in PYPI | Drücken Sie zu Tags, die mit vxx.xx.xx entsprechen | Poetry_pypi_token_pypi | Token zum Hochladen von Paket auf offizielle PYPI. Wenn Sie ein privates Artefaktor verwenden, verwenden Sie die Variablen paket_index_repository_url, paket_index_username und stattdessen Paket_index_password. |
| Package_index_repository_url | URL des Privatpaketindex. | |||
| Package_index_username | Benutzername des Privatpaketindex. | |||
| Package_index_password | Passwort des privaten Paketindex. |
Gehen Sie zu Einstellungen .
Klicken Sie auf CI/CD -Abschnitt.
Gehen Sie zum Abschnitt Variablen .
Klicken Sie auf die Schaltfläche Variable hinzufügen .
Geben Sie den Namen und den Wert einer CI/CD -Variablen ein.
Standardmäßig wird das geschützte Flag überprüft, was bedeutet, dass die hinzugefügte Variable nur für geschützte Zweige/Tags verwendet werden kann. Wenn Sie Ihre variable geschützt halten möchten, fügen Sie bitte Wildcards V* als geschützte Tags in Einstellungen -> Repository -> geschützte Tags hinzu.
Oder Sie können das Feld deaktivieren, um die Variable für alle Zweige und Tags zu verwenden.
Die Datei bitbucket-pipelines.yml enthält alle Konfigurationen von Bitbucket-Pipelines.
| Schritte | Regeln auslösen | Erforderliche CI/CD -Variablen | CI/CD -Variablen Beschreibung |
|---|---|---|---|
| mypy check |
| ||
| Flake8 Scheck | |||
| Banditenprüfung | |||
| Test mit Python 3.8 | |||
| Test mit Python 3.9 | |||
| Test mit Python 3.10 | |||
| Test mit Python 3.11 | |||
| Test mit Python 3.12 | |||
| Schnur | |||
| Bereitstellung in PYPI | Drücken Sie zu Tags, die mit vxx.xx.xx entsprechen | Poetry_pypi_token_pypi | Token zum Hochladen von Paket auf offizielle PYPI. Wenn Sie ein privates Artefaktor verwenden, verwenden Sie die Variablen paket_index_repository_url, paket_index_username und stattdessen Paket_index_password. |
| Package_index_repository_url | URL des Privatpaketindex. | ||
| Package_index_username | Benutzername des Privatpaketindex. | ||
| Package_index_password | Passwort des privaten Paketindex. |
Gehen Sie zu Repository -Einstellungen .
Klicken Sie auf Repository -Variablen .
Klicken Sie auf die Schaltfläche Hinzufügen .
Geben Sie den Namen und den Wert einer CI/CD -Variablen ein.
Sie müssen Pipelines aktivieren, bevor Sie zum ersten Mal eine neue Variable hinzufügen.
| Befehl | Beschreibung |
|---|---|
| sauber | Entfernen Sie autogenerierte Ordner und Artefakte. |
| Clean-Pyc | Python -Artefakte entfernen. |
| Reinigungsgebäude | Entfernen Sie Build -Artefakte. |
| Bandit | Führen Sie die Banditensicherheitsanalyse aus. |
| Mypy | Führen Sie die Überprüfung des mypy -Typs aus. |
| Flake8 | FLAKE8 -LINTING FLAKE. |
| installieren | Installieren Sie alle Abhängigkeiten und das Paket selbst. |
| prüfen | Führen Sie Tests aus und generieren Sie den Berichtungsbericht. |
| bauen | Radpaket erstellen. |
| veröffentlichen | Veröffentlichen Sie das gebaute Radpaket. |
Besonderer Dank geht an den Projekt CookieCutter-Pypackage für die nette beitragen.RST -Vorlage.