• Eu quero ajudar na programação do LyX, o que eu devo fazer?
A melhor maneira é iniciar consertando pequenos bugs ou fazendo pequenos ajustes no código, dessa maneira você conseguirá ir se familiarizando com o código. Nós temos muito receio nos grandes projetos iniciados por novatos que foram deixados de lado sem terem sido finalizados. Entenda que o código do LyX é um pouco complexo e que é difícil de entendê-lo num curto espaço de tempo. ;)
  • E sobre os bugs e melhorias, o que eu devo fazer?
Regra número 1: conserte os bugs que você tenha algum interesse pessoal ou que esteja te incomodando. O primeiro contato com o código geralmente é bastante complicado, mas um pouco de motivação pode ajudar a superar este problema. Como nós não temos muita documentação, sinta-se livre a fazer perguntas na lista de discussão sobre como as coisas são e devem ser organizadas. O tempo que as pessoas tem disponível para explicar como as coisas funcionam para você pode variar, mas nós tentaremos ser o mais úteis possível.
Outra sugestão é iniciar dando uma olhada nos bugs que já contém patches, que estão aqui. Alguns patches podem precisar de melhorias e, observar como eles funcionam, é uma ótima maneira de aprender mais sobre o código. Bugs marcados com a palavra-chave "easyfix" (lit. fácil de consertar) também são ótimos pontos de partida.
  • Como vocês organizam as tarefas?
Não não possuímos grupos formalmente organizados e geralmente as pessoas fazem o que acham que devem fazer. Por isso é importante acompanhar a lista de discussão dos desenvolvedores pois é por lá que normalmente sabemos quem está trabalhando com o quê. As informações contidas no bug tracker também podem dar algumas dicas, embora o campo "assign" nos bugs não signifique muita coisa, pois o fato de alguém estar atribuído a um bug não significa necessáriamente que este alguém esteja realmente trabalhando nele. Na dúvida, o melhor é sempre perguntar para a lista... ;)
  • Se eu decidir resolver uma tarefa, ela ficará bloqueada para mim ou outras pessoas podem tentar resolver o mesmo problema em paralelo?
Atualmente não existe nenhum tipo de bloqueio no sistema, embora ninguém vá perder seu tempo tentando resolver um problema que outra pessoa já decidiu resolver. Existem exceções, logicamente, mas normalmente as pessoas trabalham nos seus próprios problemas e quando o código fica muito complexo, logo aperecem mensagens na lista com mensagens do tipo "Eu criei um patch para implementar/consertar isso, alguém quer fazer algum comentário ou tem alguma objeção?".
Se você começar a trabalhar em algum bug em particular e acha que vai demorar algum tempo para resolver o problema, você pode inserir um comentário no bug tracker para as pessoas tomarem conhecimento.
  • Existe alguma lista de pendências onde eu posso encontrar bugs e novos recursos a serem implementados?
Primeiro, acompanhe a lista de discussão dos desenvolvedores.
Depois veja o bug tracker: ele contém algumas tarefas e feedbacks dos usuários.
Nós também possuímos alguns objetivos, mas eles são apenas uma referência.
  • Como eu envio o código que eu desenvolvi? Quem verifica ele?
Novatos podem enviar patches na lista de desenvolvimento, assim, quando o patch é aprovado alguém vai aplicá-lo ao código. Como novato, esteja preparado para diversos comentários, especialmente relacionados com coisas triviais como o seu estilo de programar (veja os arquivos já desenvolvidos para ter uma ideia do estilo que utilizamos e tente utilizar o mesmo). Se você participar ativamente da comunidade por alguns meses, corrigindo bugs, enviando melhorias etc, você acabará ganhando confiança do time e terá permissões para submeter suas alterações diretamente.
Se você precisa de algum tipo de sistema para controle de versão, considere utilizar o git.
  • É possível programar em Python?
A maior parte do LyX está escrito em C++, então a maioria dos recursos a serem implementados e correção de bugs envolve programação em C++. No entanto, diversas partes do código está implementada em Python. Em especial, você pode procurar por bugs do lyx2lyx aqui. Outro lugar importante são os problemas relativos ao código que faz a configuração e detecção de aplicativos externos. Estes problemas são normalmente pequenas melhorias como a detecção de algum aplicativo ou a configuração de algum conversos e são normalmente marcadas como easyfix.