Práticas de Agilidade e QA na Comunidade KDE

Post on 12-Apr-2017

75 views 0 download

Transcript of Práticas de Agilidade e QA na Comunidade KDE

Práticas de Agilidade e QAna Comunidade KDE

Sandro AndradeIFBA / KDE

sandroandrade@kde.org@andradesandro

O KDE

4239 colaboradores em todo o mundo20 anos de existência21.216.876 de linhas de código7664 anos de trabalho (modelo COCOMO) Fonte: Open HUB

KDE – o que fazemos?

http://plasma-desktop.org

KDE – o que fazemos?

http://plasma-mobile.org

163 Aplicações (KA) em diversos domínios

KDE – o que fazemos?

minuet.kde.org

KDE – o que fazemos?

minuet.kde.org

KDE – o que fazemos?

minuet.kde.org

KDE – o que fazemos?

minuet.kde.org

KDE – o que fazemos?

KDE Frameworks 5 (KF5):

KDE – o que fazemos?

SO (Linux, Windows, OS X, ...)

Servidor Gráfico (X11, Wayland, ...)

C++ / Qt 5 / QML / JavaScript

KDE Frameworks 5

KDE Plasma

KDE Applications

65 novos módulos para o Qt:

Compressão de arquivosConfiguração do sistemaNovos models e viewsPlottingIntegração e detecção de HWMultithreadingSystem notifications...

http://www.frameworks.org

KDE – o ecossistema

Colaboradores(desenvolvedores, testadores, tradutores, designers, sysadmins, etc)

KDE e.V.(membros da associação)

Empresas

KDEFree Qt

Foundation

WorkingGroups

KDE e.V.Board ofDirectors

Afiliados

KDE – o ecossistema

KDE – múltiplos atores

KDE – múltiplos atores

Core Developers

KDE – múltiplos atores

Core Developers Co-developers

KDE – múltiplos atores

Core Developers Co-developers Tradutores

KDE – múltiplos atores

Core Developers Co-developers Tradutores Release Team

KDE – múltiplos atores

Core Developers

Empacotadores

Co-developers Tradutores Release Team

KDE – múltiplos atores

Core Developers

Empacotadores

Co-developers

Usuários (passivos/ativos)

Tradutores Release Team

KDE – múltiplos atores

Core Developers

Empacotadores

Co-developers

Usuários (passivos/ativos)

Tradutores

Sysadmins

Release Team

KDE – múltiplos atores

Core Developers

Empacotadores

Co-developers

Usuários (passivos/ativos)

Tradutores

Sysadmins

Release Team

Designers

KDE – múltiplos atores

Core Developers

Empacotadores

Novatos

Co-developers

Usuários (passivos/ativos)

Tradutores

Sysadmins

Release Team

Designers

KDE – múltiplos atores

Core Developers

Empacotadores

Novatos

Co-developers

Usuários (passivos/ativos)

Community Manager

Tradutores

Sysadmins

Release Team

Designers

KDE – múltiplos atores

Core Developers

Empacotadores

Novatos

Co-developers

Usuários (passivos/ativos)

Community Manager

Tradutores

Sysadmins

PR/Marketing

Release Team

Designers

KDE – múltiplos atores

Core Developers

Empacotadores

Novatos

Co-developers

Usuários (passivos/ativos)

Community Manager

Tradutores

Sysadmins

PR/Marketing

Release Team

Designers

Board de Diretores

KDE e Métodos Ágeis

● Release Schedule● Epics Dashboard● Automação● phabricator.kde.org● Git Branching Model● Neon e Continuous Delivery

KDE e Métodos Ágeis

KA Release Schedule (anterior)

KA Release Schedule (atual)

● Releases mensais● String freeze duas semanas antes do release● Não há feature freeze:

– Desde que testadas, revisadas, sem problemas de CI e não violem o string freeze

KF5 Release Schedule

Epics Dashboard

● Traduções– gettext+scripts → tradutores → commit automático

no repositório original → empacotamento (release)● Release 100% automatizado

– Versionamento, QA, geração de tarballs e upload● Integração Phabricator, Git, IRC, Telegram e

listas de discussão● Zabbix + Ansible + Docker● Redeploy de websites via git hooks (jekyll, etc)

Automação

phabricator.kde.org

Git Branching Model

Neon e Continuous Delivery

http://neon.kde.org

KDE e Quality Assurance

● Release Schedule● Continuous Delivery (Neon)● Sanity Checks● Revisões (dev + i18n + UI)● KF5 Policy e CI/CD

KDE e Quality Assurance

● Krazy● Clazy● astyle-kdelibs

Sanity Checks

● Suportadas via Phabricator● Revisões de código – core developers● Revisões de mockups – Visual Design Group –

vdesign.kde.org (via Phabricator Pholio)● Revisões de i18n – equipe de i18n

Revisões

● KF5 Definition of Done:– Dependências não utilizadas são removidas– Frameworks tier1 dependem somente do Qt– Nome de bibliotecas em CamelCase– Em conformidade com a política de organização

de diretórios– Possui testes de unidade– Mantém compatibilidade de código-fonte com

kdelibs– CI em estado OK ...

KF5 Policy e CI/CD

KF5 Policy e CI/CDhttp://build.kde.org

● Atividades realizadas via CI:– Compilação em múltiplas plataformas– Detecção de regressões– Detecção de violações de arquitetura– Atualização de documentação de API

● Atividades realizadas via CD:– Verificação de dependências– Geração de pacotes– Atualização de repositórios

KF5 Policy e CI/CD

● KDE = agilidade em alta escala● O processo está em constante evolução● Software livre é um excelente lugar

para aprender e experimentartécnicas ágeis

● Nós fazemos software,amigos e livros :)– 20years.kde.org

Conclusão

Obrigado!

Sandro AndradeIFBA / KDE

sandroandrade@kde.org@andradesandro