Frameworks/Tools/releaseme

From KDE Community Wiki

requirements

  • Can reliably create 100% accurate release tarballs
  • Fast at redoing tarballs
  • Semi-fast at l10n and documentation retrieval
  • Can tag
  • Can support meta-constructs such as KTP (consisting of arbitrary sub-recipes)
  • Configuration files for projects (recipes) containing information like the svn protocol to use, the name/module/component, random settings...
  • (Supports injection of arbitrary code to manipulate the tarball) <- questionable need (used to be version fiddling in amarok2.rb)

feature list

  • Tarball creation
  • Automatic retrieval of l10n into the tar source tree
  • Automatic retrieval of documentation and its l10n into the tar source tree
  • Instead of operating on branches, operation on origins (trunk/stable) as per quickgit.kde.org is preferred
    • l10n-branch (trunk/stable) is automatically mapped from quickgit.kde.org
  • ChangeLog generation from commit keywords BUG/FEATURE/... (secondary util)
  • Tag generation (secondary util)

notes

  • Changelog generation must be detatched from tarball creation because both must be re-doable in the fastest possible manner
  • Tagging must be detatched from tarball creation because tarballs are easy to redo, tags not so much.
  • Tagging can result in a tar in which case the secondary util will simply exec the primary one once tagged

proposed invocation

  • tarme.rb foo --origin stable --version 1.0
  • logme.rb foo --origin stable --version 1.0
  • tagme.rb foo --origin stable --version 1.0
    • tagme.rb foo --origin stable --version 1.0 --tar

meta projects

  • tarme.rb ktp --origin stable --version 1.0

manual - without recipe

  • tarme.rb --name bar --module playground --component multimedia --branch master --l10n-branch trunk --svn-protocol ssh --version 1.0

data