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

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

  • 1.
    Contribuir com oDjango é 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 maissobre 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 maisusado! + 24k commits https://github.com/django/django https://www.djangoproject.com/
  • 5.
    Por que fazerOpen Source? ● Aprendizado ● Melhoramento profissional ● Visibilidade no mercado de trabalho ● Boas práticas de programação ● Retribuição a comunidade ● Lazer
  • 6.
    Por que nãofazer Open Source?
  • 7.
    Por que euescolhi falar sobre esse assunto... ● Um pouco da minha trajetória...
  • 8.
    Um pouco dosmeus (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 oDjango em 5 passos! Sem medo!
  • 10.
    Não sei poronde começar...
  • 11.
  • 12.
    Analizando o ticket... Vamosa partir de agora fazer o passo a passo com bug que ja foi resolvido anteriormente por mim. https://code.djangoproject.com/ticket/26026
  • 13.
  • 14.
    Não sei poronde começar...
  • 15.
    Não sei comoiniciar 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 comoiniciar o projeto...
  • 22.
    Não sei comoescrever o código...
  • 23.
  • 24.
    Entendendo o problema "isinstancecheck on any instance, that is not QuerySet (actually anything without .query attribute) and django.db.models.query.EmptyQuerySet throws AttributeError."
  • 25.
  • 26.
    Não sei comoescrever o código...
  • 27.
    O que fazercom o meu código?
  • 28.
    Contribuindo com oprojeto (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 oprojeto ● 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 fazercom meu código?
  • 31.
    Sera que vaogostar do meu código?
  • 32.
    Bam!!! Algo deuerrado! Mas, eles estão sempre prontos pra ajudar...
  • 33.
    Nunca paramos deaprender! Vamos fazer um teste de regressão!
  • 34.
    Meu novo PullRequest!
  • 35.
    Sera que vaogostar do meu código?
  • 36.
    A importância do ambientee porque você é capaz!
  • 37.
  • 38.
    Dúvidas? Quer trabalhar navinta? jobs@vinta.com.br bit.ly/vinta-pyne-17