Slide 1

Slide 1 text

Contribuindo com projetos OpenSource a teoria na prática

Slide 2

Slide 2 text

@lucasmazza

Slide 3

Slide 3 text

http:/ /www.casadocodigo.com.br/products/livro-html-css

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Open Source wat?

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Open Source

Slide 8

Slide 8 text

Open Source Você

Slide 9

Slide 9 text

OSS Ruby Ruby on Rails jQuery Redis Git Django Bootstrap Backbone Node.JS Debian PHP Elixir MySQL Java Android AngularJS Docker MongoDB H5BP Android Play

Slide 10

Slide 10 text

Open Source não é trabalhar de graça

Slide 11

Slide 11 text

Open Source não é uma competição

Slide 12

Slide 12 text

Open Source é sobre cultura

Slide 13

Slide 13 text

Colaboração Comunicação Aprendizado

Slide 14

Slide 14 text

Desenvolvedores ajudando desenvolvedores

Slide 15

Slide 15 text

(Obrigado GitHub <3)

Slide 16

Slide 16 text

Participando dos projetos você pode aprender muito sobre o código que você usa no seu dia a dia

Slide 17

Slide 17 text

Como as coisas funcionam

Slide 18

Slide 18 text

Como as coisas funcionam Design de APIs

Slide 19

Slide 19 text

Como as coisas funcionam Design de APIs Performance

Slide 20

Slide 20 text

Como as coisas funcionam Design de APIs Performance Como fazer software melhor

Slide 21

Slide 21 text

Ler o código existente é uma bagagem incrível

Slide 22

Slide 22 text

Você pode ajudar a definir o rumo da comunidade

Slide 23

Slide 23 text

E dos projetos que são importantes para você

Slide 24

Slide 24 text

E o importante é começar a participar

Slide 25

Slide 25 text

“Dude, sucking at something is the first step towards being sorta good at something.”

Slide 26

Slide 26 text

como faz?

Slide 27

Slide 27 text

Reportando bugs

Slide 28

Slide 28 text

Reportando bugs Enviando patches

Slide 29

Slide 29 text

Reportando bugs Enviando patches Participando de discussões

Slide 30

Slide 30 text

Reportando bugs Enviando patches Participando de discussões Revisando colaborações

Slide 31

Slide 31 text

Todo mundo começa reportando bugs

Slide 32

Slide 32 text

Confira as issues existentes

Slide 33

Slide 33 text

Confira as issues existentes StackOverflow e mailing lists

Slide 34

Slide 34 text

Confira as issues existentes StackOverflow e mailing lists Explique como reproduzir o bug

Slide 35

Slide 35 text

Confira as issues existentes StackOverflow e mailing lists Explique como reproduzir o bug Stacktraces, versões e tudo mais

Slide 36

Slide 36 text

Não reporte falhas de segurança publicamente

Slide 38

Slide 38 text

Aprenda as regras de cada projeto

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

Contributing to Ghost 1. Reporting An Issue 2. Working on Ghost Core 3. Coding standards 4. Submitting Pull Requests 5. Grunt Toolkit 6. Troubleshooting / FAQ 7. Contributor License Agreement CONTRIBUTING.md @ TryGhost/Ghost

Slide 41

Slide 41 text

twbs/bootstrap joyent/node rails/rails jashkenas/backbone plataformatec/devise

Slide 42

Slide 42 text

Triagem de issues e test drive de correções

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

o papel de “suporte” é muito importante

Slide 51

Slide 51 text

Detalhes de configuração

Slide 52

Slide 52 text

Detalhes de configuração APIs alternativas

Slide 53

Slide 53 text

Detalhes de configuração APIs alternativas Issues duplicadas

Slide 54

Slide 54 text

Detalhes de configuração APIs alternativas Issues duplicadas Benchmarks das suas apps

Slide 55

Slide 55 text

Tente corrigir sozinho e envie um Pull Request

Slide 56

Slide 56 text

$ git clone https://github.com/voce/repo.git $ git checkout -b fix-things # hack hack hack hack hack $ rake test # Pull Request time! $ git commit $ git push origin fix-things -u

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

Busque opiniões sobre o código

Slide 59

Slide 59 text

Busque opiniões sobre o código merge / rebase / squash a vontade

Slide 60

Slide 60 text

Busque opiniões sobre o código merge / rebase / squash a vontade Tome o seu tempo para acabar

Slide 61

Slide 61 text

Busque opiniões sobre o código merge / rebase / squash a vontade Tome o seu tempo para acabar Repita tudo de novo

Slide 62

Slide 62 text

Feedback é a maior recompensa que você pode receber em um Pull Request

Slide 63

Slide 63 text

“[...] Remember that a PR is the start of a conversation, not the end of one.” CONTRIBUTING.md @ boxen/puppet-git

Slide 64

Slide 64 text

“Build First, Discuss Later” Mark McSpadden @ Your First Rails Pull Request

Slide 65

Slide 65 text

https:/ /help.github.com/articles/using-pull-requests

Slide 66

Slide 66 text

http:/ /guidelines.plataformatec.com.br/pull-requests

Slide 67

Slide 67 text

Nem tudo é sobre escrever código

Slide 68

Slide 68 text

Documentação e guias

Slide 69

Slide 69 text

Wikis

Slide 70

Slide 70 text

Typos, warnings e código obsoleto

Slide 71

Slide 71 text

rails/docrails github/developer.github.com janl/waaa

Slide 72

Slide 72 text

não se esqueça

Slide 73

Slide 73 text

Não existe contribuição “pequena demais”

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

Existe um zilhão de formas de participar

Slide 76

Slide 76 text

No content

Slide 77

Slide 77 text

Não tenha medo de pedir ajuda

Slide 78

Slide 78 text

No content

Slide 79

Slide 79 text

Colocando o seu código no mundo

Slide 80

Slide 80 text

“Porque eu colocaria o meu código no GitHub?”

Slide 81

Slide 81 text

Manter o seu código para o futuro

Slide 82

Slide 82 text

Manter o seu código para o futuro Receber ajuda de outros devs

Slide 83

Slide 83 text

Manter o seu código para o futuro Receber ajuda de outros devs Vale mais que o seu LinkedIn

Slide 84

Slide 84 text

No content

Slide 85

Slide 85 text

1 Escolha uma licença

Slide 86

Slide 86 text

“Choosing a n OSS license doesn’t need to be scary” http:/ /choosealicense.com

Slide 87

Slide 87 text

“Choosing a n OSS license doesn’t need to be scary” http:/ /choosealicense.com TL;DR: Apache 2.0 ou MIT

Slide 88

Slide 88 text

2 Escreva um README

Slide 89

Slide 89 text

Readme Driven Development - @mojombo “Consider the process of writing the Readme for your project as the true act of creation.”

Slide 90

Slide 90 text

3 Escreva o seu código

Slide 91

Slide 91 text

Dave Thomas @ elixir-lang-core “[...]In the meantime, the only truth is code.”

Slide 92

Slide 92 text

Faça ser fácil contribuir com o seu projeto

Slide 93

Slide 93 text

O que eu preciso instalar?

Slide 94

Slide 94 text

O que eu preciso instalar? Como eu testo o que eu fiz?

Slide 95

Slide 95 text

O que eu preciso instalar? Como eu testo o que eu fiz? Qual o workflow do projeto?

Slide 96

Slide 96 text

Cuide do seu README.md e CONTRIBUTING.md

Slide 97

Slide 97 text

Abuse do ferramental da comunidade

Slide 98

Slide 98 text

Automatize as partes mecânicas

Slide 99

Slide 99 text

source 'https://rubygems.org' gemspec gem 'country_select', '~> 1.1.1' gem 'railties', '>= 4.0.0', '< 4.1' gem 'activemodel', '>= 4.0.0', '< 4.1' gem 'actionpack', '>= 4.0.0', '< 4.1' gem 'rake' gem 'rdoc' gem 'tzinfo' Bundler

Slide 100

Slide 100 text

Travis CI

Slide 101

Slide 101 text

Documentação

Slide 102

Slide 102 text

Vagrant Boxes

Slide 103

Slide 103 text

WebHooks

Slide 104

Slide 104 text

Dedique um tempo para revisar as contribuições

Slide 105

Slide 105 text

E ajude os outros a melhorar o seu software

Slide 106

Slide 106 text

Retrocompatibilidade

Slide 107

Slide 107 text

Retrocompatibilidade APIS e styleguides

Slide 108

Slide 108 text

Retrocompatibilidade APIS e styleguides Promova contribuidores

Slide 109

Slide 109 text

Retrocompatibilidade APIS e styleguides Promova contribuidores Lidere por exemplo

Slide 110

Slide 110 text

Não tenha medo de começar de novo

Slide 111

Slide 111 text

No content

Slide 112

Slide 112 text

“I have learned that in the open- source world, you are not your code. A critique of your project is not tantamount to a personal attack.” http:/ /sstephenson.us/posts/you-are-not-your-code

Slide 113

Slide 113 text

Open Source e código fechado

Slide 114

Slide 114 text

Open Source é baseado em:

Slide 115

Slide 115 text

Colaboração

Slide 116

Slide 116 text

Colaboração Comunicação

Slide 117

Slide 117 text

Colaboração Comunicação Aprendizado

Slide 118

Slide 118 text

Desenvolvimento de Sofware é baseado em:

Slide 119

Slide 119 text

Colaboração

Slide 120

Slide 120 text

Colaboração Comunicação

Slide 121

Slide 121 text

Colaboração Comunicação Aprendizado

Slide 122

Slide 122 text

O que funciona de um lado pode funcionar do outro

Slide 123

Slide 123 text

Descentralização

Slide 124

Slide 124 text

Descentralização Visibilidade do que é feito

Slide 125

Slide 125 text

Descentralização Visibilidade do que é feito Comunicação aberta

Slide 126

Slide 126 text

Descentralização Visibilidade do que é feito Comunicação aberta Autoria coletiva

Slide 127

Slide 127 text

“Your team should work like an open source project.” http:/ /tomayko.com/writings/adopt-an-open-source-process-constraints

Slide 128

Slide 128 text

Obrigado! https:/ /twitter.com/lucasmazza https:/ /speakerdeck.com/lucas