Na última semana de julho, eu, Leo e Catia fomos, representando o Hacklab, para San Francisco para participar do WordCamp San Francisco 2013, o maior evento da comunidade do WordPress. Foi uma ótima oportunidade para conhecer alguns dos desenvolvedores da Automatic e saber quais são os planos para o futuro do projeto e da comunidade.
Os dois primeiros dias do evento foram dedicados a palestras dividas em duas trilhas. A primeira tinha como público alvo desenvolvedores e designers e a segunda usuários e empreendedores. O terceiro e último dia foi reservado para o Contributor Day, onde os interessados tem a oportunidade de contribuir diretamente com o WordPress.
Do primeiro dia destaco as palestras Confident Commits, Delightful Deploys do Mark Jaquith (slides) e a Writing Code as User Experience Design do Nikolay Bachiyski.
A palestra do Mark Jaquith tratou de boas práticas para todos os desenvolvedores e sysadmins que trabalham com WordPress, em especial na hora de publicar uma nova versão do código. Ele reforçou algumas coisas que já deveriam ser senso comum (e que infelizmente ainda não são), como o uso de um sistema de controle de versão. Também citou algumas ferramentas que facilitam bastante o fluxo de trabalho como o WP Stack ou o Capistrano-WP para fazer deploys, Puppet ou Chef que são ferramentas para o gerenciamento das configurações dos servidores e, por fim, o Vagrant para criar um ambiente de desenvolvimento semelhante ao servidor onde o site está publicado.
Na palestra do Nikolay Bachiyski, ele explorou o que os desenvolvedores podem aprender da experiência de quem estuda user experience design. Considerando que um desenvolvedor passa mais de 70% do seu tempo de trabalho lendo código e não escrevendo, quando criamos código temos que nos preocupar com a experiência do usuário, que neste caso serão os outros desenvolvedores que terão contato com ele. Além de sugerir algumas boas práticas para criação de código, ele mostrou alguns vídeos da tela e cara de alguns desenvolvedores enquanto estes criavam uma página usando a Settings API do WP.
Já do segundo dia destaco as palestras Three Security Issues You Thought You’d Fixed do Mike Adams e a Magical WordPress Management using WP-CLI do Mike Schroder (slides).
No último dia teve ainda o State of the Word 2013 do Matt Mullenweg. Nele o fundador do WordPress falou do crescimento do software que agora representa 18,9% de todo o conteúdo da web (ano passado era 16,7%), do uso crescente a partir de plataformas móveis e de um novo modelo de desenvolvimento para o core. A ideia é implementar ciclos mais curtos de release com o lançamento das versões 3.7 e 3.8 ainda esse ano e organizar os desenvolvedores do core em pequenos times que trabalhem em plugins. Quando um plugin estiver pronto ele é incorporado ao código principal. Este novo modelo já está sendo testado com o desenvolvimento da nova interface para o admin.
No Contributor Day trabalhei na automatização dos testes unitários do core do WordPress utilizando o Travis CI junto com o Bryan Petty e com a ajuda do Nikolai Bachiyski. Criamos um fork do repositório do WordPress no github e nele configuramos o serviço de integração continua que pode ser visto neste link. Nas próximas semanas o Andrew Nacin deve integrar o que fizemos no repositório do WordPress.
O arquivo de configuração que criamos para o Travis CI pode ser visto neste link. Ele roda os testes do WP usando PHP 5.2, 5.3 e 5.4 e para cada uma dessas versões com o modo multisite habilitado ou desabilitado. Por enquanto, o Travis só é chamado quando há um commit no core e não quando há um commit no repositório de testes. O próprio Nacin disse que a intenção é juntar os dois num único repositório.
Uma vez com a integração dos testes do WordPress com o Travis CI funcionando partimos para resolver os testes que estavam falhando. Conseguimos resolver cerca de dez testes, não deu tempo de resolver apenas um que foi resolvido uns dias depois. Após o WordCamp descobrimos mais três testes que falham quando executados com o PHP 5.2. Estes ainda estão pendentes e podem ser vistos na página do repositório no Travis CI.