- O documento discute a qualidade do ecossistema Python e identifica algumas áreas que podem ser melhoradas, como a documentação e a segurança de bibliotecas.
- É enfatizado que a responsabilidade pela qualidade do ecossistema é da comunidade Python e que todos devem contribuir para a evolução contínua do PyPI e do processo de publicação de bibliotecas.
- Ferramentas colaborativas que classifiquem e avaliem bibliotecas podem ajudar a garantir a qualidade do grande acervo disponível no PyPI.
4. “a todas as relações dos organismos entre
si, e com seu meio ambiente chamamos
ecossistema ou seja, podemos definir
ecossistema como sendo um conjunto de
comunidades interagindo entre si..”
-- Wikipedia
5. - Você (e seus grupos)
- Comunidades (eventos)
- Material teórico (livros, tutoriais, cursos)
- Ferramentas(sistemas, IDEs, plataformas)
- Biblioteca de pacotes (pip, github, conda)
- Python Software Foundation
- A Linguagem (core developers)
Ecossistema Python?
7. - Python é fácil de aprender.
- A comunidade é receptiva
- Tem eventos muito legais
- É fácil escrever e publicar novas
bibliotecas com Python.
- Pensou… já tem no PyPI.
- É popular e está na moda.
- Aprovado por Grandes empresas.
$ pip install magic
>>> magic.run()
11. Como garantir profissionais de qualidade?
?Certificação Profissional Python
Seja um expert por apenas $ 9.999,99 / year
12. Como garantir ecossistema de bibliotecas de qualidade?
?Seja um “Python Developer Partner”
e publique suas bibliotecas
na “PyPI store” por apenas $ 9.999,99 / year
PY
13. New Python 3.6
Featuring exclusive `f’string`
Only $ 999/year
You need Python 3.6
Call 555 - 5555
And buy it now!
Oportunity:
First 100 customers
Will get IDLE for free...By Guido Inc.
14.
15. ● Python não tem dono, pertence a comunidade.
● A comunidade é o controle de qualidade.
● A comunidade é a entidade certificadora*.
* Na comunidade Python TODOS são encorajados a participar e fazer a diferença, colaborar
com os diversos pilares da comunidade (slide 4) tem um grande valor para a carreira do
profissional Python.
17. “I came for the language
but I stay for the community”
- Brett Cannon
18. “Diversidade acontece quando pessoas
diferentes se reunem em um mesmo local”
“Inclusão acontece quando essas pessoas
conseguem atuar em conjunto, como iguais,
com as mesmas oportunidades e sem
prejuizo para nenhuma delas”
- Adaptação da palestra de Naomi Ceder (Python Brasil 12)
19. Como tratar ameaças a comunidade e diversidade?
- Código de conduta
- Postura de mentor e não de juiz
20. Open by default
- PSF (grants, membership, fellowship and board)
- Repositories
- Experiments (MyPy, Gilectomy)
- APyB
- Call 4 Papers
- PyPI/Warehouse
- Python Planet
- PEPs
- GruPys
Você pode participar
abertamente!!!
22. $ pip install magic
>>> magic.run()
- Python é fácil de aprender.
- E tem muita biblioteca pronta!
23. >>> Traceback
Cannot do the
magic today...
- Quantos dos 100_000 pacotes
disponíveis tem cobertura de
testes?
- Quantos tem boa documentação?
- Como faço para escolher?
24. $ pip install magic
$ installing…
$ HAHA you got
hacked!!!
- E essas bibliotecas são seguras?
- Se qualquer pessoa pode
publicar uma nova lib no PyPI
quem garante a segurança e a
qualidade?
26. # setup.py `pip install magic`
from setuptools import setup
setup(
name="magic",
...
)
Sempre faça review do
código fonte da lib a ser
instalada.
Especialmente o `setup.py`
E não se esqueça da barra
de rolagem.
38. Warehouse is a next generation Python Package
Repository designed to replace the legacy code base that
currently powers PyPI
39. Rank: 4.5 - safe
Rank: 2.0 - outdated
Rank: 1.0 - danger
1.234 Reviews ++
1 Review --Why not making it more `social driven` to address
the library quality problem?
Example:
More maintainers
More quality
points!
40. Segurança das libs: o que podemos fazer ?
- Verificar antes de instalar
- Instalar bibliotecas conhecidas e confiáveis
- Usar SafetyCI - pyup.io
- Criar ferramentas para ajudar na verificação
- Denunciar caso encontrar lib suspeita
- Colaborar com o projeto Pypa/Warehouse
42. Toda biblioteca publicada no PyPI acompanha uma etiqueta invisivel que diz:
“Eu estou ciente das
responsabilidades que devo assumir
ao publicar este código e prometo
fazer o possível para mante-lo com
qualidade até o fim dos tempos!”
E deixarei explicito caso por qualquer motivo eu não possa mais manter deixando o caminho livre
para quem desejar criar um fork!
43. Seus projetos publicados no PyPI devem ser
Maintanable:
Project that can be maintable by as many and diverse
people.
Sustentável:
Projeto que possa ser mantido por várias e diferentes
pessoas
* diferente no sentido de diversidade
44.
45. Leftpad is ` npm`
problem, will not
happen with
Python?
46. pip install requests
● 99,9% das instalações de ambientes Python instalam requests
● Se a versão não estiver especifica seu build pode quebrar
● Ferramentas como Travis-Ci dependem de requests e já quebraram por isso!
● Sistemas operacionais trazem requests por padrão
● Até poucos meses atrás este era um ‘one man band’ project, mas depois de
recentes problemas com releases o criador decidiu excluir os próprios
poderes de administrador da lib e elegeu outros mantenedores
● Não é o único, existem outras libs Python publicadas com o mesmo risco
● Sempre especifique suas versões
● Use o pyup.io ou requires.io ou qualquer outra solução do tipo
● Use o safety/CI ou algo do tipo
52. Q: Por que a maioria das bibliotecas não tem
boa documentação?
A: Escrever documentação é um processo chato!
Q: O que precisa melhorar?
A: Ferramentas e formatos (rst) não amigaveis
afastam as pessoas da documentação.
Precisamos fazer como fizemos com os testes e
adotar formatos (md?) e ferramentas mais fáceis.
Q: Como incentivar as pessoas a contribuir
com documentação?
A: Primeiro precisamos definir o processo (assim
como nos testes) e então criar um manifesto
atraindo os contribuidores, mostrando a
importância, oferecendo um certo “status” ao
documentador e usar os eventos para fomentar
essa cultura.
54. Conclusão
- Python não é um produto!
- O ecossistema (principalmente a comunidade) já tem qualidade acima da média
- Precisamos de mais materiais teóricos de qualidade para iniciantes
- Podemos utilizar ferramentas para ajudar no QA de bibliotecas Python
- Podemos colaborar com a evolução do PyPI
- Podemos colaborar com a evolução do Python
- A qualidade do ecossistema é NOSSA responsabilidade
- Seja responsável e publique apenas bibliotecas de qualidade no PyPI
- Precisamos de uma solução colaborativa para classificar 100 mil libs
- Ajude e seja ajudado