O que aconteceu na Maratona de Programação 2016

A Maratona de Programação do Inkscape este ano realizou-se no Devonshire Hall, na Universidade de Leeds, no Reino Unido. O espaço de reunião foi um grande e antigo conjunto de edifícios, que acabou se tornando um belo cenário para melhorias do Inkscape.

Dez programadores participaram da maratona, apenas um era do anfitrião de Leeds e todos os outros eram de fora do Reino Unido e se deslocaram durante o fim de semana. Na primeira noite reunimo-nos para socializar acompanhados de bebidas e umas pizzas num bar local, antes de retornar à nossos respectivos hotéis. Isso permitiu que todos conhecessem uns aos outros, e para sentirmo-nos mais confiantes no dia seguinte no local do evento.

No primeiro dia, visitamos uma sala de reuniões no fundo do Salão de Devonshire. Serviram-nos com chá, café e biscoitos no corredor, uma sala para socialização e, em seguida, fomos para a sala principal, onde um conjunto de mesas estavam disponíveis. Cada mesa tinha espaço suficiente para três pessoas e começamos com apresentações, participações no projeto e em seguida, definindo o foco para a Maratona. Foram eles:

  1. CMake: Queremos terminar nossa mudança para o sistema de compilação CMake, para que utilizemos o mesmo sistema de construção em todas as plataforma. Este é o objetivo principal antes de uma liberação 0.92.
  2. Corrigir o erro de cintilação no ramo GTK3. Queremos passar para GTK3 depois da liberação 0.92. Isso vai simplificar muito o nosso código, como nós temos cerca de 700 ramificações condicionais no nosso código com base em GTK2 vs GTK3. GTK3 permitirá maior flexibilidade na GUI (por exemplo, ícones maiores/menores) e também tem melhor suporte para OSX.
  3. Também houveram muitas discussões e pequenas correções de bugs, algumas limpezas e acréscimos do site.

Em cada almoço, o Devonshire Hall disponibilizava à nós um ótimo serviço de almoço. Todos concordaram que o anfitrião foi o melhor de todos para uma maratona do Inkscape e isso contribui com uma alta pontuação para eventos futuros.

Naquela noite, passamos pouco tempo se socializando e comendo em um bar chamado "The Library" antes de fazer o caminho até nossos hotéis.

No dia seguinte, passamos a maior parte do tempo trabalhando no código. Provavelmente, a maior realização é que Krzysztof conseguiu corrigir o erro de cintilação da GTK3. A correção quebra a prévia da caixa de diálogo de arquivo, de modo que ainda terá de ser melhorada. Enquanto a versão Gtk3 já se encontra em um estado utilizável, há muito, muito mais trabalho que precisa ser feito. Alex e Martin têm trabalhado nisso. Nós discutimos mudar a compilação padrão de Gtk2 para Gtk3 após o lançamento da versão 0.92 para garantir que mais olhos concentrem-se em Gtk3. Também houve avanços no sistema de compilação CMake, assim como muitas outras áreas.

Nós tivemos uma prévia do sistema de extensões C++ de Sebastian e Moritz da Semiodesk, incluindo uma demonstração da extensão de grades implementado em C++. Eles vão colocar a documentação, incluindo um exemplo "Hello World", no Inkscape Wiki. O foco agora é sobre como obter extensões C++ para trabalhar no Windows. Essas extensões irão complementar nossas extensões existentes em Python, e não substituí-las.

Alex nos levou para uma especialidade local para nosso segundo dia de sociabilidade, um restaurante de caril na cidade. Isto envolveu uma longa caminhada, mas valeu muito a pena o esforço.

O último dia trouxe mais modificações! Cerca de 70 submissões foram feitas para a árvore de código Inkscape durante toda a maratona, algumas apenas de uma ou duas linhas, outras bem maiores. O principal êxito foi a correção do problema de cintilação da GTK3, que teve muitas iterações. Foi bom ter tantos testadores na sala para uma resposta instantânea, enquanto Krzysztof estava trabalhando na correção. Após o lançamento da 0.92, vamos fazer a GTK3 a compilação padrão no ramo principal de desenvolvimento, para ter mais programadores trabalhando em muitas correções adicionais que serão necessárias. Alex e Martin já tiveram um bom começo na redução de literalmente milhares de linhas de avisos de descontinuação quando compilam com a GTK3.

Outro grande objetivo, que corrige a compilação CMake, está quase no ponto. O CMake funciona bem no Linux, mas no Windows, ainda existe um problema de ligação. O pessoal da Semiodesk estão ansiosos para conseguir este feito, uma vez que isso é necessário para que eles possam usar o sistema de extensões do C++ no Windows.

Também passamos algum tempo discutindo questões de infra-estrutura. O consenso é para mover o nosso código para Git. Isto trará alguns benefícios reais. Git é mais familiar entre os programadores, por isso vai ser mais fácil para novos desenvolvedores começarem a contribuir. Git também permite "sub-módulos", o que significa que o Inkscape pode mover o código para bibliotecas separadas. Não precisaremos mais manter uma cópia duplicada de lib2geom na nossa árvore.

Martin trabalhou em algumas melhorias da extensão de código de barras e uma limpeza lá.

Tav reuniu todos os participantes depois do almoço para uma reunião rápida.

  1. Decidimos usar o GitHub para o controle de nosso do código fonte. Foi vista um certa oposição em usar uma hospedagem de código-fonte fechado, mas eles oferecem a melhor solução CI (Integração Contínua) para compilações e testes automatizados. Não temos muito tempo para desenvolver e gerenciar uma solução mais complexa. O rastreador de problemas do GitHub não é utilizável para Inkscape no momento, então os erros e respostas vão continuar no Launchpad.
  2. Queremos avançar nossas listas de discussão para os nossos próprios servidores e para atualizar o Mailman 2 para Mailman 3. Esta é uma prioridade baixa para a nossa hospedagem OSUOSL, mas Martin ofereceu os nossos serviços para fazer o trabalho para instalar Mailman 3.
  3. Chegamos a um consenso para a mudança para C++ 11 após o lançamento da versão 0.92. Algumas bibliotecas de que dependemos já tornaram a mudança obrigatória. Existem benefícios reais para C++ 11, especialmente na simplificação e legibilidade do código.

A atividade final para o último dia foi um jantar oficial da maratona em um bar de Leeds com as melhores sobremesas e uma ótima discussão. A programação continuou no dia seguinte, antes dos participantes seguirem para Londres para a LGM (Libre Graphics Meeting) para a segunda etapa desta aventura.

No geral foi uma maratona de programação muito bem sucedida. Gostaríamos de agradecer a nossos patrocinadores que tornaram possível essa maratona! Veja a galeria completa aqui!