OS X, da Apple.ReproducaoGrafico exibe as descendencias dos sistemas operacionais Unix-likeO Writer, processador de textos da suite OpenOffice.org Como um projeto open source e desenvolvido O codigo fonte Antes de tudo, para se ter um software e necessario escreve-lo em uma linguagem de programacao. O codigo fonte e composto de varios arquivos, normalmente resultado de uma engenharia que permite a sua escrita e manutencao em pequenas unidades de codigo. Grande parte dos projetos open source sao desenvolvidos nas linguagens C e C++. No entanto, esta nao e uma regra. Ha milhares de projetos livres em Python, Ruby, Perl, PHP e outras linguagens. 2008 Variavel HackerArquivo fonte do projeto lighttpd, servidorweb escrito em C, editado no VIMAmbiente de Compilacao e Depuracao Compilar um programa significa traduzir o codigo fonte em codigo de maquina. Para isso utilizam-se softwares compiladores, como o gcc e o g++ (GNU C Compiler e GNU C++ Compiler). Porem, projetos grandes costumam ter centenas ou milhares de arquivos fontes, e para que o projeto funcione com tanta gente trabalhando neles e necessario um sistema de compilacao automatizado. Os softwares desenvolvidos em C/C++ normalmente utilizam a suite de aplicativos de compilacao do GNU Build System, conjunto de softwares de linha de comando que preparam o codigo fonte para que funcione em varias plataformas com varios desenvolvedores. Ja a depuracao e o meio pelo qual os desenvolvedores checam se suas partes de codigo estao funcionando. Pode ser feita manualmente, utilizando softwares como o gdb (GNU debugger), ou em alguns casos utilizando rotinas de testes automatizados que alguns projetos de software open source disponibilizam. Arvores de codigo Para que nao haja confusao entre codigo novo e testado e codigo em desenvolvimento, a maioria dos projetos separam os codigos fontes em tres unidades diferentes: estavel, testes e desenvolvimento. 2008 Variavel HackerCiclo de desenvolvimento de um projeto open sourceA arvore estavel contem apenas codigo fonte de lancamentos. Isso significa que as unicas alteracoes que ela ira receber e de bugfixes (correcoes) de erros encontrados depois do seu lancamento. Nenhuma nova funcionalidade sera incluida nesta arvore de codigo. Essa arvore corresponde a ultima versao estavel liberada para o publico e pronta para o uso. A arvore de testes contem codigos que precisam ser testados (e normalmente reparados, caso ocorram erros). Correspondem as versoes beta e nao sao totalmente seguras. Devem ser usadas apenas para depuracao, garantindo estar livre de bugs na proxima versao estavel. A arvore de desenvolvimento contem codigo mutavel. Nela todos os dias sao incluidas novas funcionalidades, e nao ha garantias de que o software ira funcionar, pois a versao baixada uma hora antes pode ser diferente da versao atual, dependendo do fluxo de desenvolvimento do projeto. Versoes de desenvolvimento so sao usadas por programadores envolvidos no projeto. Forks No mundo do desenvolvimento de software, os forks acontecem quando um programador copia uma arvore de codigo e nela inicia um desenvolvimento independente, criando um software diferente. As alteracoes feitas no fork nao sao aplicadas na arvore de codigo do primeiro projeto, fazendo com que o software copiado vire um novo software. Os forks sao