SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Contribuir com o Django é mais
simples do que você imagina!
Anderson Resende
Quem sou eu
● Anderson Resende
○ Recife
○ Trabalho na Vinta
○ ~4 anos de experiência Python/Django
@AndersonRe86
github.com/andersonresende
Um pouco mais sobre mim...
● Algumas contribuições
○ edx/edx-documentation A primeira vez, nunca
esquecemos...)
○ allisson/django-pagseguro2 (Checkout
transparente)
○ fixmydjango/fixmydjango
○ vintasoftware/django-role-permissions
○ vintasoftware/django-templated-email
○ django/django
Framework Python mais usado!
+ 24k commits
https://github.com/django/django
https://www.djangoproject.com/
Por que fazer Open Source?
● Aprendizado
● Melhoramento profissional
● Visibilidade no mercado de trabalho
● Boas práticas de programação
● Retribuição a comunidade
● Lazer
Por que não fazer Open Source?
Por que eu escolhi falar sobre esse assunto...
● Um pouco da minha trajetória...
Um pouco dos meus (nossos) medos!
“Não sei por onde começar…”
“Será que vão gostar do meu código?”
“Isso deve ser muito difícil…”
“Contribuir com uma lib que todo mundo usa, deve ser bem complicado”
“Como eu faço pra contribuir com essas libs?”
“Será que alguém vai me ajudar?”
“Quais libs eu devo contribuir?”
Vamos contribuir com
o Django em 5 passos!
Sem medo!
Não sei por onde começar...
Encontrando o bug/feature/melhoria!
https://code.djangoproject.com/query?status=!closed&easy=1
Analizando o ticket...
Vamos a partir de agora fazer o passo a passo com bug que ja foi resolvido
anteriormente por mim.
https://code.djangoproject.com/ticket/26026
Se coloque como owner...
Não sei por onde começar...
Não sei como iniciar o
projeto...
Preparando o ambiente (Django guidelines)
https://docs.djangoproject.com/en/dev/internals/contributing/
Preparando o ambiente (Django guidelines)
● Fork do Django (github.com/django/django)
https://docs.djangoproject.com/en/dev/internals/contributing/writin
g-code/working-with-git/#setting-up-local-repository
Preparando o ambiente (Django guidelines)
● Clonando o projeto
○ git clone github.com/vintasoftware/django.git
https://docs.djangoproject.com/en/dev/internals/contributing/writin
g-code/working-with-git/#setting-up-local-repository
Preparando o ambiente (Django guidelines)
● Adicionando Upstream
○ git remote add upstream
git@github.com:django/django.git
○ git fetch upstream
https://docs.djangoproject.com/en/dev/internals/contributing/writin
g-code/working-with-git/#setting-up-local-repository
Preparando o ambiente (Django guidelines)
● Criando a sua branch
○ git checkout -b ticket_26026
https://docs.djangoproject.com/en/dev/internals/contributing/writin
g-code/working-with-git/#setting-up-local-repository
Não sei como iniciar o
projeto...
Não sei como escrever o
código...
Vamos codar!
https://docs.djangoproject.com/en/dev/internals/contributing/writin
g-code/
Entendendo o problema
"isinstance check on any instance, that is not QuerySet
(actually anything without .query attribute) and
django.db.models.query.EmptyQuerySet
throws AttributeError."
Resolvendo o problema
Não sei como escrever o
código...
O que fazer com o meu
código?
Contribuindo com o projeto (Django guidelines)
● Commitando seu codigo
○ git commit -am [1.9.x] Fixed #26026 -- Checked if the
QuerySet is empty
○ git push origin ticket_26026
https://docs.djangoproject.com/en/dev/internals/contributing/writin
g-code/working-with-git/#working-on-a-ticket
Contribuindo com o projeto
● Criando um Pull Request
https://help.github.com/articles/creating-a-pull-request/
“Uma série de testes automatizados
vão ser executados.
Se os testes passarem seu codigo será revisado”
O que fazer com meu
código?
Sera que vao gostar do
meu código?
Bam!!! Algo deu errado!
Mas, eles estão sempre prontos pra ajudar...
Nunca paramos de aprender!
Vamos fazer um teste de regressão!
Meu novo Pull Request!
Sera que vao gostar do meu
código?
A importância do
ambiente e porque você
é capaz!
Slides:
bit.ly/vinta-pyne-17
Dúvidas?
Quer trabalhar na vinta?
jobs@vinta.com.br
bit.ly/vinta-pyne-17

Mais conteúdo relacionado

Mais procurados

Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazo
Bernardo Fontes
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
ricobl
 
Desenvolvimento PHP com Vagrant - TDC 2012
Desenvolvimento PHP com Vagrant - TDC 2012Desenvolvimento PHP com Vagrant - TDC 2012
Desenvolvimento PHP com Vagrant - TDC 2012
Rogerio Prado de Jesus
 

Mais procurados (17)

Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019
 
Vagrant você deveria está usando
Vagrant   você deveria está usandoVagrant   você deveria está usando
Vagrant você deveria está usando
 
Tdd com-python
Tdd com-pythonTdd com-python
Tdd com-python
 
Do zero ao python em 40 minutos!
Do zero ao python em 40 minutos!Do zero ao python em 40 minutos!
Do zero ao python em 40 minutos!
 
Pgxn.pgday
Pgxn.pgdayPgxn.pgday
Pgxn.pgday
 
Yo! Geradores modernos com Yeoman!
Yo! Geradores modernos com Yeoman!Yo! Geradores modernos com Yeoman!
Yo! Geradores modernos com Yeoman!
 
Python storm grupy_sp_23_04
Python storm grupy_sp_23_04Python storm grupy_sp_23_04
Python storm grupy_sp_23_04
 
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
Encontro da Comunidade Pentaho - CONSEGI 2010 - Brasília - DF - 20 de Agosto ...
 
Ubuntu o projeto e a comunidade
Ubuntu   o projeto e a comunidadeUbuntu   o projeto e a comunidade
Ubuntu o projeto e a comunidade
 
Arquitetura de projetos e pacotes em GO
Arquitetura de projetos e pacotes em GOArquitetura de projetos e pacotes em GO
Arquitetura de projetos e pacotes em GO
 
Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazo
 
Import python
Import pythonImport python
Import python
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
E dá para desenvolver webgames com Django?
E dá para desenvolver webgames com Django?E dá para desenvolver webgames com Django?
E dá para desenvolver webgames com Django?
 
Ambiente de desenvolvimento em Python - PUG-MA
Ambiente de desenvolvimento em Python - PUG-MAAmbiente de desenvolvimento em Python - PUG-MA
Ambiente de desenvolvimento em Python - PUG-MA
 
Desenvolvimento PHP com Vagrant - TDC 2012
Desenvolvimento PHP com Vagrant - TDC 2012Desenvolvimento PHP com Vagrant - TDC 2012
Desenvolvimento PHP com Vagrant - TDC 2012
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 

Semelhante a Contribuir com o django é mais simples do que voce imagina!

Usabilidade de Ferramentas
Usabilidade de FerramentasUsabilidade de Ferramentas
Usabilidade de Ferramentas
André Willik Valenti
 

Semelhante a Contribuir com o django é mais simples do que voce imagina! (20)

Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
PGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLPGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQL
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Usabilidade de Ferramentas
Usabilidade de FerramentasUsabilidade de Ferramentas
Usabilidade de Ferramentas
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
Coding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programandoCoding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programando
 
ESOL 2008 - Contribuindo com o GNOME
ESOL 2008 - Contribuindo com o GNOMEESOL 2008 - Contribuindo com o GNOME
ESOL 2008 - Contribuindo com o GNOME
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
 
Python MongoDB no MongoSP
Python MongoDB no MongoSPPython MongoDB no MongoSP
Python MongoDB no MongoSP
 
Laravel + Vue: Como começar
Laravel + Vue: Como começarLaravel + Vue: Como começar
Laravel + Vue: Como começar
 
Software livre para leigos - VII SIECOMP
Software livre para leigos - VII SIECOMPSoftware livre para leigos - VII SIECOMP
Software livre para leigos - VII SIECOMP
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e Django
 
#Qualidade decodigo
#Qualidade decodigo#Qualidade decodigo
#Qualidade decodigo
 
Melhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magentoMelhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magento
 
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...
 
ESLUCAP 2008 - Contribuindo com o GNOME
ESLUCAP 2008 - Contribuindo com o GNOMEESLUCAP 2008 - Contribuindo com o GNOME
ESLUCAP 2008 - Contribuindo com o GNOME
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratar
 
Dando vida ao Arduino com JavaScript
Dando vida ao Arduino com JavaScriptDando vida ao Arduino com JavaScript
Dando vida ao Arduino com JavaScript
 

Mais de Vinta Software

Mais de Vinta Software (6)

Python e tipagem estática
Python e tipagem estáticaPython e tipagem estática
Python e tipagem estática
 
Django’s Club: Como fazer um sistema de assinatura
Django’s Club: Como fazer um sistema de assinaturaDjango’s Club: Como fazer um sistema de assinatura
Django’s Club: Como fazer um sistema de assinatura
 
5 meses de python o que aprendi
5 meses de python  o que aprendi5 meses de python  o que aprendi
5 meses de python o que aprendi
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.
 
Vinta Software Presentation
Vinta Software PresentationVinta Software Presentation
Vinta Software Presentation
 

Último

Último (9)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

Contribuir com o django é mais simples do que voce imagina!

  • 1. Contribuir com o Django é mais simples do que você imagina! Anderson Resende
  • 2. Quem sou eu ● Anderson Resende ○ Recife ○ Trabalho na Vinta ○ ~4 anos de experiência Python/Django @AndersonRe86 github.com/andersonresende
  • 3. Um pouco mais sobre mim... ● Algumas contribuições ○ edx/edx-documentation A primeira vez, nunca esquecemos...) ○ allisson/django-pagseguro2 (Checkout transparente) ○ fixmydjango/fixmydjango ○ vintasoftware/django-role-permissions ○ vintasoftware/django-templated-email ○ django/django
  • 4. Framework Python mais usado! + 24k commits https://github.com/django/django https://www.djangoproject.com/
  • 5. Por que fazer Open Source? ● Aprendizado ● Melhoramento profissional ● Visibilidade no mercado de trabalho ● Boas práticas de programação ● Retribuição a comunidade ● Lazer
  • 6. Por que não fazer Open Source?
  • 7. Por que eu escolhi falar sobre esse assunto... ● Um pouco da minha trajetória...
  • 8. Um pouco dos meus (nossos) medos! “Não sei por onde começar…” “Será que vão gostar do meu código?” “Isso deve ser muito difícil…” “Contribuir com uma lib que todo mundo usa, deve ser bem complicado” “Como eu faço pra contribuir com essas libs?” “Será que alguém vai me ajudar?” “Quais libs eu devo contribuir?”
  • 9. Vamos contribuir com o Django em 5 passos! Sem medo!
  • 10. Não sei por onde começar...
  • 12. Analizando o ticket... Vamos a partir de agora fazer o passo a passo com bug que ja foi resolvido anteriormente por mim. https://code.djangoproject.com/ticket/26026
  • 13. Se coloque como owner...
  • 14. Não sei por onde começar...
  • 15. Não sei como iniciar o projeto...
  • 16. Preparando o ambiente (Django guidelines) https://docs.djangoproject.com/en/dev/internals/contributing/
  • 17. Preparando o ambiente (Django guidelines) ● Fork do Django (github.com/django/django) https://docs.djangoproject.com/en/dev/internals/contributing/writin g-code/working-with-git/#setting-up-local-repository
  • 18. Preparando o ambiente (Django guidelines) ● Clonando o projeto ○ git clone github.com/vintasoftware/django.git https://docs.djangoproject.com/en/dev/internals/contributing/writin g-code/working-with-git/#setting-up-local-repository
  • 19. Preparando o ambiente (Django guidelines) ● Adicionando Upstream ○ git remote add upstream git@github.com:django/django.git ○ git fetch upstream https://docs.djangoproject.com/en/dev/internals/contributing/writin g-code/working-with-git/#setting-up-local-repository
  • 20. Preparando o ambiente (Django guidelines) ● Criando a sua branch ○ git checkout -b ticket_26026 https://docs.djangoproject.com/en/dev/internals/contributing/writin g-code/working-with-git/#setting-up-local-repository
  • 21. Não sei como iniciar o projeto...
  • 22. Não sei como escrever o código...
  • 24. Entendendo o problema "isinstance check on any instance, that is not QuerySet (actually anything without .query attribute) and django.db.models.query.EmptyQuerySet throws AttributeError."
  • 26. Não sei como escrever o código...
  • 27. O que fazer com o meu código?
  • 28. Contribuindo com o projeto (Django guidelines) ● Commitando seu codigo ○ git commit -am [1.9.x] Fixed #26026 -- Checked if the QuerySet is empty ○ git push origin ticket_26026 https://docs.djangoproject.com/en/dev/internals/contributing/writin g-code/working-with-git/#working-on-a-ticket
  • 29. Contribuindo com o projeto ● Criando um Pull Request https://help.github.com/articles/creating-a-pull-request/ “Uma série de testes automatizados vão ser executados. Se os testes passarem seu codigo será revisado”
  • 30. O que fazer com meu código?
  • 31. Sera que vao gostar do meu código?
  • 32. Bam!!! Algo deu errado! Mas, eles estão sempre prontos pra ajudar...
  • 33. Nunca paramos de aprender! Vamos fazer um teste de regressão!
  • 34. Meu novo Pull Request!
  • 35. Sera que vao gostar do meu código?
  • 36. A importância do ambiente e porque você é capaz!
  • 38. Dúvidas? Quer trabalhar na vinta? jobs@vinta.com.br bit.ly/vinta-pyne-17