Como participar de um projeto de software livre

Slides:



Advertisements
Apresentações semelhantes
MOODLE PARA TODOS Projeto EAD-CPD MOODLE UFBA
Advertisements

Desenvolvendo para o Caio S. de B. Almeida Universidade Federal da Bahia 2008 Fabricio Oliveira Silva Universidade Federal da Bahia 2008.
Testes de Interface de Usuário AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.
Por que desenvolver para o Projeto Debian?. A. Meu perfil de desenvolvedor é alinhado com a cultura do Projeto Debian? B. Me sentirei integrado e satisfeito.
Migração para Debian GNU/Linux Usuário corporativo.
Traduzindo o GNOME Qualidades para se tornar um bom tradutor: Saber inglês e português. Disposição para ler a documentação sobre tradução e consultar referências.
Padrões de Testes Automatizados Curso de Verão IME/USP Hugo Corbucci
GNOME: um “bazar” organizado? Vicente Aguiar IV Fórum GNOME - Aracaju/SE.
O projeto br.kernelnewbies.org Douglas Schilling Landgraf Eduardo Habkost.
Traduzindo o GNOME Antonio Fernandes C. Neto Flamarion Jorge Traduzindo o GNOME Antonio Fernandes C. Neto Flamarion Jorge IV ENSL.
Linuxchix V – set/2007 brasília – DF / Brasil segurança de software em ambientes livres josé de paula eufrásio júnior aka coredump V.
Desmistificando o Git Rodrigo Carvalho
Projeto software livre B A H I A O que é Software Livre? Antonio Terceiro FLISOL 2007 Salvador/BA/Brasil Faculdades Jorge Amado.
Tópicos Especiais de Administração Rede de Negócios.
GNOME: um “bazar” organizado? Vicente Aguiar V Fórum GNOME – Latinoware 2008.
Obrigado a 4Linux e Itaipu pelo patrocínio. Obrigado a GNOME Foundation pelo apoio.
Fedora ArtWork Jayme Ayres
Palestrante: Teylo Laundos Aguiar
Ajudando o GNOME 3 Jonh Wendell V ENSOL, 23 Jul 2011.
Testes de Unidade Curso de Verão IME/USP Hugo Corbucci
Launchpad.net: o canivete suíço do Ubuntu Lançamento do Ubuntu 10.10, Maverick Meerkat 29/Outubro/2010 – São Bernardo do Campo, SP Ursinha (Ursula Junque)
Daniel Lenharo 06 de Maio de 2017
Site Summit.
Projeto Fedora Sergio Durigan Junior Red Hat, Inc
“Modelo de Camadas OSI e TCP/IP ” Nataniel Vieira
Debian-l10n-portuguese Fazendo Parte do Time
Olá sou Willian Marques, natural de Minas Gerais que atualmente mora na cidade São Paulo. Programador.
Registro De Dados (Parte 1)
COMEX EMPREENDEDORISMO
Disciplina: Sistemas de Informação
Prof. Arthur Albertin.
Lição de programação iniciante
Métodos Formais em Engenharia de Software Utilização da Ferramenta VDMTools Lite João Pascoal Faria
UNIVERSIDADE FEDERAL DO PARÁ- UFPA
Introdução ao RUP – Rational Unified Process
e a Nova Identidade Visual do Rotary
Tradução do Debian para Português do Brasil
Linguagens de Programação Conceitos e Técnicas
Paulo Henrique de Lima Santana
Métodos Formais em Engenharia de Software Utilização da Ferramenta VDMTools Lite João Pascoal Faria
Se eu morrer antes de você
Módulo I Capítulo 2: IDE e Variáveis
Olá!  Aula 2 Nesta aula vamos falar de um procedimento muito necessário para identificar os textos que lemos: a referenciação bibliográfica. A ABNT (Associação.
Introdução à programação orientada por objetos
Workshop Agile tdd - Test Driven development
O LibreOffice em qualquer lugar
Carlos Gonçalves Membro openSUSE
Tendências e futuro do Asp.Net:
Algoritmos e Programação I
Modelagem de Banco de Dados através do ERwin
Original por Paul W. Frields – Líder do Projeto Fedora
Desenvolvimento em Camadas
MARKETING III A5 – PESQUISA DE MERCADO III.
Clientes Satisfeitos Glécia Lima
Seja o profissional de tecnologia que o mercado DESEJA!
Como Conduzir uma Apresentação
Título do Trabalho Trabalho de Conclusão de Curso (1 ou 2)
Fazendo de conta... Letícia Thompson.
Soluções Inteligentes para ONGs Esportivas
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Feedback! ISAÍAS HUBER.
Teste de hipótese em R.
Colaboração: Renata Alvarez
Sobre o Template de Apresentações...
PESSOA GANHADORA.
Projecto Teórico Científico Escreva aqui o título do projecto O seu nome O nome do professor A escola.
Clean Architecture com .NET Core
Gerenciamento de backup e dumps do MySQL
Transcrição da apresentação:

Como participar de um projeto de software livre Antonio Terceiro http://softwarelivre.org/terceiro Identi.ca: @terceiro Twitter: @aterceiro - Quem aí é, ou quer ser, programador? - Vamos falar de todas, ou de boa parte das formas de participar em um projeto de SL - Todas elas são importantes - Mas estamos na trilha de desenvolvimento - Então vamos dar um pouco mais de atenção às formas que envolvem programação

Sobre mim - Participação em vários projetos, tanto liderando quando mandando patches esporádicos - Debian, Foswiki, Noosfero, analizo, awesome e outros - doutorado - Foco: falar sobre os meus erros - T++ - erro: querer começar o próprio projeto - pstreams p/ Debian: erro de empacotar um software que você não usa

Por quê participar?

Aprender

Trabalhar - Desempenhar um trabalho - Conseguir um trabalho - Eu tenho a sorte de trabalhar diretamente com software livre → MOSTRAR FIGURAS! - Quem quiser saber um pouco mais pode vir amanhã na palestra “Contribuindo com o Noosfero”

Brincar

Todas as alternativas anteriores ;-)

A estrutura social de um projeto de software livre

Core and periphery in free software projects Initiator Release Coordinator Passive users Active users Co-developers Core developers - Explicar as camadas - Você tem que “agradar” os caras ali no meio - mas como você descobre quem são eles/elas? The “onion” model. Adapted from [Crowston and Howison, 2005]

Chegue mais - participe dos espaços do projeto - mailing list, IRC, forum, etc etc - a não ser que você queira fazer uma contribuição pontual!

O quê fazer num projeto?

Testar Certifique-se de testar a versão mais atual!

Relatar bugs - Versão mais atual também - Varia de projeto pra projeto - O procedimento provavelmente está documentado - Senão, pergunte

Documentação - Doc para desenvolvedores - Doc para usuários - Procure fazer de forma integrada com o projeto

Trabalhando com tradução - Saiba inglês - Não faça tradução literal - Se aproxime dos times de tradução (GNOME, KDE, times genéricos)

Anatomia de um aqruivo .po - Apesar de vários projetos usarem interfaces gráficas, acho válido mostrar como é um arquivo .po por dentro

Contexto

Texto original

Tradução

Enviando traduções - Única exceção nas contribuições de “código”: enviar arquivo completo, e NÃO UM PATCH. - Quase sempre o patch fica muito maior do que o original, a não ser quando for uma mudança de apenas 1 ou 2 strings. - Comprima o arquivo com gzip

Patches - Patches para consertar bugs - Patches para implementar novas funcionalidades - Patches para melhorar a organização do código - Patches para documentação

Anatomia de um patch

Nome do arquivo

Contexto

Contexto (2)

Linhas removidas

Linhas adicionadas

Criando um patch

Com um SCM $ svn diff > meu.patch $ git format-patch # etc - Aprenda a usar o SCM que o projeto que você quer contribuir usa!

Sem SCM – 1 arquivo $ cp src/a.ext src/a.ext.orig $ hack src/a.ext $ diff -u src/a.ext.orig \ a/a.ext

Sem SCM – 2+ arquivos $ cp -r projeto-x.y.z \ projeto-x.y.z.orig $ hack projeto-x.y.z/* $ diff -Nru projeto-x.y.z.orig \ projeto-x.y.z > meu.patch

Enviando um patch - Depende da cultura do projeto - Lista de discussão - BTS - Comprimir ou não

Aplicando um patch $ patch -p0 < /tmp/meu.patch $ git apply|am /tmp/meu.patch # etc

O que se espera de um bom patch?

Limpo - O patch faz apenas uma coisa - Mal exemplo: consertar um bug e ao mesmo tempo arrumar a indentação - Patch series - Cuidado com editores que mexem na indentação automaticamente!

Revisado - LEIA o seu próprio patch antes de enviar

Testado - testes automatizados - teste manual

Consistente - Fazer uma mesma sempre do mesmo jeito - Evita que o código fique bagunçado - Como coisas parecidas foram feitas no passado - não inclui arquivos gerados automaticamente MAKE CLEAN

Consensual - No caso de patches grandes e/ou que fazem mudanças significativas, normalmente precisa haver um consenso sobre a forma de fazer as coisas - Saudável discutir um patch antes de ter uma versão final dele.

Considerações finais

Tempo Economize o tempo das pessoas

Reputação - Sua contribuição com o projeto é o seu cartão de visita na comunidade - Você será reconhecido por boas contribuições. - Você será ESPECIALMENTE reconhecido por más contribuições

Happy hacking

Hackeia aí, omi! :)