Pentru documentația completă:
Navighează către ReadTheDocs
Dacă doriți să publicați proiectul către PyPi, mai întâi trebuie să faceți un fișier de instalare.
În acest tutorial, voi acoperi utilizarea PBR care simplifică procesul.
După cum puteți vedea în fișierul python setup inclus în acest repository, sintaxa este destul de elementară.
"""Setup example."""
from setuptools import setup
setup(
setup_requires=['pbr'],
pbr=True
)
🎉 Trivial, definiți că doriți să utilizați PBR și numai atât! 🎉
După cum puteți vedea în fișierul config setup inclus în acest repository, sintaxa nu este mai complicată decât în fișierul precendet.
Să trecem prin fiecare secțiune împreună.
În primul rând, secțiunea metadate:
# Tipul distribuției python
[bdist_wheel]
universal=0
[metadata]
# Numele aplicatiei
name = Publishing to PyPI with pbr and Travis
# Cine a făcut-o?
author = Maël Pedretti
# Chiar trebuie să explic următoarele?
author_email = [email protected]
# Descrierea scurtă a aplicației dvs.
summary = Publishing to Pypi with PBR and Travis.
# Tipul licenței
license = MIT
# Care fișier conține descrierea lungă?
description-file =
README.rst
# Unde pot accesa proiectul?
home-page = https://github.com/73VW/Publishing-to-PyPI-with-pbr-and-Travis
# Ce versiune de Python are nevoie să ruleze?
python_requires = >=3.6
# Cum clasificați aplicația dvs.? https://pypi.python.org/pypi?%3Aaction=list_classifiers
classifier =
Development Status :: 4 - Beta
Environment :: Other Environment
Intended Audience :: Education
Operating System :: MacOS :: MacOS X
Operating System :: Microsoft :: Windows
Operating System :: POSIX
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3.6
Programming Language :: Python :: Implementation :: CPython
Topic :: Education
# Găsiți automat pachetul rădăcină
[options]
packages = find:
# Ce fișiere care nu sunt cod sursă doriți să le implementați?
[files]
data_files =
some/example = some/example/*
# Unde începe aplicația dvs.?
[entry_points]
console_scripts =
automabot = your_package.__main__:main
🎉 După câteva modificări, sunteți gata de pasul următor! 🎉
Două moduri de a activa Travis sunt prezentate aici. Unul folosind Travis CLI și altul fără.
Execută travis login
și loghează-te în travis.
Acum poți executa travis init
.
Dacă vă aflați într-un git repository, Travis îl va detecta și vă va întreba dacă este corect.
În caz contrar, vă va spune că poate detecta repo.
Odată ce execuți Enter
, Travis întreabă limba principală. În acest caz, tastați Python
.
Un fișier nou .travis.yml
este creat și disponibil în repo. Mai mult ca atât, Travis este acum activat pentru acest repo.
Vom trece mai târziu peste acest fișier.
- Navighează către Travis home page.
- Sign up sau Sign in.
- Accesați pagina de profil și sincronizați-vă contul.
- Repositoriile publice Github care vă aparțin sunt acum listate mai sus.
- Schimbați proiectul dorit.
Acum, să scriem fișierul de setare.
Deoarece documentarea este foarte bine făcută, vă sugerez să o verificați mai întâi, deoarece nu vă voi explica totul. O puteți găsi aici https://docs.travis-ci.com/user/getting-started/.
Cu toate acestea, voi explica setările pe care le folosesc de obicei.
# Chiar trebuie să explic această linie?
language: python
# Puteți utiliza o memorie cache pentru a construi mai repede
cache: pip
# versiunea python. Puteți defini mai multe dacă doriți să executați mai multe teste
python:
- '3.6'
# scriptul de instalare sau lista de instalare
install: pip install rstcheck
# scriptul de testare sau lista de instalare
script: rstcheck --recursive .
# setări pentru notificări, personal nu-mi place să fiu spamat pe e-mailul meu
notifications:
email:
on_failure: never
on_pull_requests: never
# partea interesantă!
deploy:
# Dacă aveți nevoie să implementați fișierele create de Travis, utilizați linia următoare
skip_cleanup: true
# În acst caz dorim să lansăm către pypi
provider: pypi
# Ce distribiție dorim să lansăm
distributions: sdist bdist_wheel
# Când dorim să lansăm?
on:
# În acest caz, vreau să se lanseze numai atunci când este prezentă o etichetă...
tags: true
# ... și numai atuncî când eticheta este pe master și respectă the forma "v0.0.0"
branch:
- master
- /v?(\d+\.)?(\d+\.)?(\*|\d+)$/
# Usernameul tău pypi
user: 73VW
# Parola dvs. Pypi securizată de Travis dacă aveți instalat Travis CLI
password:
secure: cGJz+vETnxwWAZQvzveJKOyn3rWy3/tcVmJvTVuflrgKgwMRm+sfQZB3vo39LzDcDbMzlzxLO4SUsqDpCxlPPM1pCjqHeUkke76pXA3HGTqfSS5VBic979pBDBqzFe8SLxery0ND7uPAam2xtZQcMRjIzMZFS+ZBD3tD9pWFnFqQOaw6Mwnfj2dWuA7BeNEBEeG+EErAJTqWHlwodjLsDBBilrvYEMPha049JWSz9TE1SMUKWZszCpo2hda8edvcB7WrNWJCYO+Pmc56aUHGlqiyRUowec9ZQplhmD7HWriRvda4n+1WqUB8tdACqBSBo6t39dis/yiLDv/qZpi6cooxJBtlK184AZvCIfjiu8ua5JqJ/SBghzrwLf7b5VbWg/WOtS8NEB+TYhZhpmkYLPXnOoJLYbbrOYA/sz/QfwXke2NCTp7apZFAtU1lFN2gVWsmff7ysRWwwHW/iidCAcu9BXlwMt2x2dv5PqSSqN1QdwCQ+cGcewlIPInHwCpXwI4sJXPEHeax0J5c206Yf4PMkzgrUj1+UmpB2AKJkMF0+kGd+MOj9SXYbNE1Lc456CuvKUflVry12mVQCgqqL6lZQadQ+aNKy0LoK4o4CN6JTUMpIn6JIOapLc9hzOGZgVuFzZ5YAs6l8VraMzZuAzOEv79UB92B3Iq2Vxki8vo=
# Utilizați următoarele dacă nu aveți Travis CLI
password : ${PYPI_PASSWORD}
Dacă nu aveți instalat Travis CLI , utilizați a doua opțiune pe care am menționat-o mai sus și faceți următoarele
- În pagina dvs. de profil, găsiți proiectul dvs. și faceți clic pe iconița ⚙️. Astfel veți ajunge la setări.
- Mergeți la secțiunea
Environment Variables
și adăugați o nouă variabilă. - Dacă îmi luați exemplul, numele lui va fi PYPI_PASSWORD și valoarea parolei dvs..
Daca ai`Travis CLI`_, asta e pentru tine.
- Lăsați goală secțiunea de parolă, după cum urmează.
user: 73VW
# Parola ta Pypi
password:
- Acum să-l criptez! Pur și simplu execută
travis encrypt --add deploy.password
iar Travis vă va cere parola, o va cripta și o va adăuga în fișier.
🎉 Acum sunteți gata! 🎉
Acum să încercăm să trimitem totul către repository pentru a verifica dacă totul este bine și dacă testele trec!
Deschideți Travis home page și verificați dacă totul a reușit!
După cum vă amintiți, nu am creat nicio etichetă în github, astfel încât această comitetare să nu se desfășoare.
Travis va raporta, de asemenea:
Skipping a deployment with the pypi provider because this is not a tagged commit
Acum, creați o etichetă. Acest lucru este ușor cu git. Documentația poate fi găsită aici.
Rețineți că cu git tag
opțiunea -a
vă permite să specificați versiunea și -m
mesajul.
Deci, comanda dvs. va fi următoarea:
git tag -a 0.0.1 -m "Prima implementare pypi"
Acum puteți verifica dacă a fost creat prin executarea git tag
.
Rezultatul ar trebui să arate după cum urmează.
$ git tag
v0.0.1
Acum, încărcați și verificați din nou Travis și pypi și pachetul dvs. ar trebui să fie desfășurate!
PSA: Nu uitați să adăugați --tags
la comanda de încărcare în caz contrar ei vor rămâne în repo local.
✔️Desfășurat!
✔️ Proiectul dvs. trebuie să fie public pentru a utiliza Travis. În caz contrar, trebuie să faceți upgrade la Travis pro.
✔️ Adresa dvs. de e-mail trebuie verificată pe pypi pentru a încărca un nou proiect. În caz contrar, încărcarea va fi respinsă.
✔️ Versiunea dvs. de etichetă ** TREBUIE ** să aibă forma [CIFRĂ.CIFRĂ.CIFRĂ]. Verifică https://docs.openstack.org/pbr/3.1.0/semver.html pentru mai multă informație.