$30 off During Our Annual Pro Sale. View Details »

Lançando seu pacote Python open source

Lançando seu pacote Python open source

Dicas para lançar pacote Python open source: escolher licença, configurar pacote, projeto template, deploy no PyPI.

Elias Dorneles

August 26, 2015
Tweet

More Decks by Elias Dorneles

Other Decks in Programming

Transcript

  1. Lançando seu pacote
    Python open source
    Elias Dorneles
    @Scrapinghub

    View Slide

  2. View Slide

  3. Passos
    1. Escolha uma licença
    2. Empacote apropriadamente
    3. Documentação
    4. Ship it!

    View Slide

  4. 1. Escolha uma licença
    http://choosealicense.com

    View Slide

  5. 1. Escolha uma licença
    ... ou simplesmente use BSD! =)

    View Slide

  6. 2. Empacote apropriadamente
    Caminho mais curto: cookiecutter-pypackage
    Basta:
    $ cookiecutter https://github.com/audreyr/cookiecutter-pypackage
    ... seguir as instruções e mandar pro GitHub.

    View Slide

  7. 2. Empacote apropriadamente
    ● setup.py
    ○ dependências mínimas em install_requires
    ○ descrição e classifiers
    ● requirements.txt
    ○ dependências específicas
    ● testes!
    ○ use tox: https://tox.readthedocs.org
    ○ Travis-CI: https://travis-ci.org

    View Slide

  8. 3. Documentação
    ● Sphinx vem configurado no ck-pypackage
    ○ vantagens: autodocs, código linkável
    ○ https://readthedocs.org
    ● Se prefere Markdown:
    ○ http://www.mkdocs.org
    ● Caso seja difícil escrever, faça um vídeo
    ○ ou algo do tipo (https://asciinema.org)

    View Slide

  9. 4. Ship It!
    Checklist: https://gist.github.
    com/audreyr/5990987
    Bumpversion ajuda a automatizar:
    https://pypi.python.org/pypi/bumpversion
    ● atualiza número da versão, cria tag, etc
    ● versionamento semântico: http://semver.org/lang/pt-BR/

    View Slide

  10. 4. Ship It!
    Teste o release:
    ● python setup.py sdist
    ● mktmpenv
    ● python setup.py install
    Se tudo for bem, publique no PyPI:
    ● python setup.py sdist bdist_wheel upload
    ○ configure universal wheel para PY2 & PY3

    View Slide

  11. 4. Ship It!
    Opcionalmente, configure Travis para deploy
    no PyPI a cada nova tag:
    http://docs.travis-ci.com/user/deployment/pypi/

    View Slide

  12. Leia mais
    Python Guide: http://docs.python-guide.org
    ● dicas de empacotamento, testes, docs
    licença, PY2 vs PY3, etc
    10 rules of open source projects:
    http://brunorocha.org/10-rules-of-open-source-
    projects.html

    View Slide

  13. Obrigado!
    Elias Dorneles
    @Scrapinghub

    View Slide