O que acontecen na Maratona de Programação 2016

A Maratona de Programação deste ano tomou lugar no Devonshire Hall, na Universidade de Leeds, no Reino Unido. O espaço do encontro foi num grandioso complexo de antigos edifícios, que forneceu um bonito cenário para trabalhar no Inkscape.

Dez programadores participaram na maratona, apenas o anfitrião era de Leeds todos os restantes eram de fora de Inglaterra, e deslocaram-se durante o fim de semana. Na primeira noite reunimo-nos para socializar acompanhados de bebidas e umas pizzas num bar local, antes de regressarmos aos respectivos hotéis. Isto permitiu a todos conhecer conhecer-nos melhor, e sentirmo-nos mais à vontade no dia seguinte no ponto de encontro.

No primeiro dia frequentámos uma sala ao fundo do Devonshire Hall. Ofereceram-nos chá, café e biscoitos, uma sala para socializar, e prosseguimos para a sala de trabalho onde um conjunto de mesas foi disposto. Cada mesa tinha espaço para três pessoas e começamos pelas apresentações, interesses no projecto e pontos de foque para a maratona. Os pontos acordados foram:

  1. CMake: Queremos terminar a mudança para o novo sistema de compilação, para que utilizemos o mesmo mecanismo em todas as plataformas. É este o principal objectivo antes do lançamento da versão 0.92.
  2. Corrigir o erro de exibição que causa intermitência no ramo do GTK3. Queremos migrar para o GTK3 depois do lançamento da versão 0.92. Isto irá simplificar profundamente o nosso código, uma vez que temos 700 ramos condicionais na nossa árvore de código base no GTK 2 em contraste com o GTK3. O GTK3 irá permitir maior flexibilidade no interface gráfico (por exemplo ícones maiores/menores) e tem melhor suporte para a plataforma OSX.
  3. Existem também diversas discussões, correcções de erros menores, adições à página da internet e alguma limpeza.

Às horas de almoço o Devonshire Hall punha ao nosso dispor um completo serviço de almoço. Todos acordaram que o anfitrião foi o melhor até à data e irá elevar a fasquia para futuros eventos.

Nessa noite socializámos um pouco e jantámos num bar chamado "The Library" (A Biblioteca) antes de regressarmos aos hotéis.

No dia seguinte passámos a maior parte do tempo a trabalhar no código. Provavelmente o maior sucesso foi o Krzysztof ter conseguido resolver o erro de de exibição com o Gtk3. A correcção faz com que as pré-visualizações no diálogo de ficheiros deixe de funcionar, por isso temos ainda de resolver esse problema. Apesar da versão Gtk3 estar já num estado utilizável, há ainda muito trabalho a fazer. O Alex e o Martin têm trabalhado nisto. Acordámos em migrar a compilação pré definida para GTK3 após o lançamento da versão 0.92 para que este receba mais atenção. Foi adicionalmente feito algum progresso no sistema CMake e em diversas outras áreas.

Tivemos uma apresentação preliminar do sistema de extensões C++ do Sebastian e Moritz da Semiodesk, incluindo uma demonstração da extensão de Grelha implementada em C++. Eles iram colocar documentação na Wiki do Inkscape, incluindo um exemplo de "Hello World". O enfoque será agora em fazer as extensões funcionar no sistema Windows. Estas extensões iram complementar as existentes em Python, e não substitui-las.

O Alex levou-nos a uma especialidade local para o momento social do segundo dia, um restaurante de caril da cidade. Envolveu uma longa caminhada, mas valeu totalmente o esforço.

O dia final trouxe mais programação. Cerca de 70 submissões foram feitas à árvore de código do Inkscape durante a maratona, algumas apenas uma linha ou duas, outras consideravelmente maiores. O maior sucesso foi a correcção do erro de exibição com o GTK3 que requereu várias iterações. Foi bom ter tantos participantes na sala para testar e dar pareceres e opiniões instantâneas, enquanto o Krzysztof trabalhava nas correcções. Após o lançamento da versão 0.92 tornaremos o GTK3 pré definido no ramo principal de desenvolvimento, para temos mais programadores a trabalhar em correcções adicionais. O Alex e o Martin já deram um considerável avanço na redução dos literais milhares de linhas de avisos de obsolescência que ocorrem na compilação com GTK3.

O grande objectivo, pôr o sistema de compilação CMake a funcionar, está também próximo de completo. O CMake funciona bem no Linux, mas têm ainda um problema de conexão no Windows. Os participantes da Semiodesk mostraram-se disponíveis para o fazer, uma vez que é também essencial para poderem utilizar o seu sistema de extensões no Windows.

Passámos também algum tempo a discutir problemas de infra-estrutura. O consenso foi de migrar o nosso código para o Git. Isto trará alguns benefícios. Git é melhor conhecido por entre os programadores, pelo que será mais fácil novos participantes começarem a contribuir. O Git permitem também "sub-módulos", o que dá a possibilidade do Inkscape mover código para bibliotecas separadas. Deixará de ser necessário manter uma cópia da biblioteca lib2geom na nossa árvore de código.

O Martin trabalhou nalguns melhoramentos na nossa extensão de Códigos de Barras e sua limpeza.

O Tav reuniu todos os membros após o almoço para uma rápida reunião.

  1. Decidimos que o GitHub será o nosso serviço anfitrião de controlo de código fonte. Foi manifestada alguma relutância em utilizar um anfitrião de código fechado, mas estes oferecem a melhor solução de CI (integração contínua) para compilações automáticas e testes. Não dispomos de muito tempo nem recursos dedicado dos programadores para gerir uma solução mais complexa. Não é possível de momento utilizar o gestor de questões do GitHub para o Inkscape de momento, por essa razão os erros e respostas ficaram no Launchpad de momento.
  2. Queremos mudar as nossas listas de correio do Mailman 2 para o Mailman 3. É um assunto de baixa prioridade para o nosso anfitrião OSUOSL, mas o Martin ofereceu os nossos serviços para instalar o Mailman 3.
  3. Chegámos ao consenso de migrar para C++11 após o lançamento da versão 0.92. Algumas das bibliotecas das quais dependemos já o tornaram obrigatório. Existem também benefícios directos da transição para C++11, especialmente na simplificação e legibilidade do código.

A última actividade para o dia final foi um jantar oficial da maratona num bar de Leeds com as melhores sobremesas e uma óptima discussão. A programação continuou no dia seguinte, antes dos participantes se encaminharem para Londres para estarem presentes na LGM (Libre Graphics Meeting) para o segundo acto desta aventura.

No geral foi uma maratona de grande sucesso. Queremos agradecer aos nossos patrocinadores que tornaram esta maratona possível! Veja a galeria completa aqui!