Entendo seu ponto de vista Alan. Realmente temos muitas dificuldades para manter o LBR. Eu estou trabalhando em uma forma de organizar os processos de desenvolvimento, recentemente estivemos no encontro mundial que ocorreu na Alemanha e conseguimos entender um pouco de como o projeto principal está se organizando. Ao meu ver a maior dificuldade é manter o código com qualidade, principalmente para que as instalações fiquem consistentes. Vamos citar como exemplo o caso do SPED, a minha idéia era fazer o desenvolvimento até certo ponto separado do trunk, a decisão de fazer assim era pra justamente disponibilizar quando estivesse uma versão que exigiria poucas correções para que funcionasse em outras empresas, assim poderíamos usar as contribuições da comunidade para melhorar o código. Acontece que tudo foi disponibilizado antes dentro do trunk, com muita coisa ainda hardcoded. Acredito que o ideal seria ter sido colocado em um branch separado e depois que estivesse pronto, deveria ser integrado no trunk, pois hoje temos um trunk com inúmeras classes do ECD/EFD que não servem pra nada, já que não tinha scripts até então.
Outra coisa que dificulta um pouco é que em alguns casos as soluções são feitas pensando em um ambiente específico, para solucionar o problema de um cliente, e quase nunca é feito de forma genérica. Quando você usa o Adempiere na sua empresa ou tem apenas uma instalação, isso não chega a ser um grande problema, pois você consegue mudar o que foi disponibilizado para atender a sua necessidade, mas depois de algum tempo cada empresa terá sua parte do sistema modificado e não conseguirão mais falar entre si. Quando partimos para uma empresa de consultoria esse problema é maior, pois temos que prezar pela qualidade no sistema de cada cliente e as rotinas precisam ser genéricas. Temos cenários atípicos onde uma instalação contém vários empresas com regimes diferentes ou até mesmo em países diferentes.
As contribuições da comunidade são de grande importância para os sistemas open-source, realmente temos que melhorar a forma como as coisas são feitas. Eu estou preparando uma contribuição para tentar servir de modelo, com melhor documentação, a codificação do LBR menos intrusiva no sistema core, maior aderência a legislação, entre outras melhorias. Devemos concluir esta primeira versão, já com os scripts de atualização na virada do ano. Infelizmente não foi possível fazer esta versão juntamente no trunk do LBR, pois muitas alterações no LBR são feitas sem documentação, sem consulta a comunidade, sem especificações de funcionamento, etc. Neste novo cenário a idéia seria que todas as contribuições devem ser feitas em branches separadas e depois de aprovadas poderão ser integradas no trunk. Desta forma teremos proveito dos dois cenários, citando o exemplo do ECD/EFD novamente, se uma empresa quer rodar o ECD/EFD ela pode contribuir nesta branch melhorando o código, ou simplesmente usar o código da branch se atender as necessidades dela, mesmo que existam problemas que impeçam a integração com o Trunk naquele momento, e posteriormente quando for mais testado e estiver com qualidade suficiente pode ser integrado no trunk. Resumidamente =) é isso que estava preparando para falar há algum tempo, como você tocou no assunto gostaria de ouvir a sua opinião e poderíamos abrir um novo tópico para que a comunidade se expresse.
Att.