releases de projetos open source. como você faz o seu?

Minhas dores de cabeça com os releases desse nano-projetinho open source (CachedObjects), essa biblioteca de cache para um framework (CodeIgniter) de desenvolvimento web em php me colocaram pra pensar:

Como você administra os releases do seu projeto open source? Tudo manualmente? Chama o tar -cvzf na linha de comando? Automatizou isso? e controle de versão? Qual? (povo do nerds.valeta, essa é pra vcs responderem :p)

Para quem não me entendeu, controle de versão não automatiza em nada o processo de release, seja cvs, svn, bzr, git, o que você quiser.

No meu caso, fiz um makefile para simplificar as seguintes etapas:
a) extração do history svn e formatação no padrão changelog.
b) produção tanto do README quando do site usando txt2tags
c) empacotamento em .tar.gz e .zip
d) upload do site atualizado e dos pacotes.
Mas ainda falta + coisa pra que o release seja realmente one liner.

Category(s): Nerd, Software

7 Responses to releases de projetos open source. como você faz o seu?

  1. Bruder, eu começo um projeto gerenciando versões dos arquivos com copia (cp foo foo.1, .2, .3 etc). Se o projeto cresce, mantenho versões em arquivos tar. Em seguida eu escolho algum lugar para hospedar. Acabo indo pro SOurceForge ou na hospedagem de código do GOogle. Se uso o SF, então utilizo o CVS, se voi pro GOogle, SVN, simples assim.

  2. Acho que você não entendeu minha pergunta direito, então. Até mesmo usando Sourceforge, google, etc. O uso de controle de versão não automatiza o processo de release de versão.

    No meu caso, fiz um makefile para automatizar:

    a) extração do history svn e formatação no padrão changelog.
    b) produção tanto do README quando do site usando txt2tags
    c) empacotamento em .tar.gz e .zip
    d) upload do site atualizado e dos pacotes.

    Mas ainda falta + coisa pra que o release seja realmente one liner.

    Leandro says:

    Para o HardInfo, eu fiz um alvo no Makefile que gera os tarballs, e os compacta com bzip2 e gzip. Também há um alvo que gera o instalador com o autopackage.

    O upload ainda não é automático, mas como eu não faço isso sempre, não me preocupei em fazer algo que enviasse os arquivos para o diretório de upload do Berlios.

    O que enche a paciência e eu quero automatizar é fazer o anúncio do release, em sites como Freshmeat e GNOME Files. O que está me segurando é fazer o ChangeLog da forma que esses sites esperam. O diff do svn ajuda mas não dá pra automatizar aquilo…

  3. Bruder, então seja mais específico Smilie: :)

    No meu caso, o rudix.org, o próprio sistema de ports gera o “distribuível”, pacote .pkg para a instalação no Mac. O processo é automatizado com o makefiles (make pkg). Geralmente gero releases a partir de um tag do CVS/SVN/etc. com algum comando similar ao “cvs export”.

  4. Sobre o Changelog… Eu não automatizei (embora sinta falta). Até porque eu tenho dois tipos de changelog no rudix. Um que diz respeito somente ao build system e outro que é específico do pacote. Eu costumo “catar” o changelog que faço quando dou checkout no cvs e colo no release do pacote (no site). Em resumo, manual.

  5. Pra automatizar a criação de changelog me basta o eyrie.org/~eagle/software/svnlog/ mas é claro que isso depende bastante da qualidade dos teus commits Smilie: :-)

  6. svn2cl, no ubuntu faz parte do pacote subversion-tools, é o que eu uso.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

* Copy this password:

* Type or paste password here: