KTp/ReleaseProcess: Difference between revisions

From KDE Community Wiki
< KTp
No edit summary
 
(32 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Update repos ==
== Clone repos (if you haven't already) ==


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
$ for i in ktp-* telepathy-logger-qt; do cd $i; git fetch origin; git checkout master; git merge origin/master; cd ..; done
repos=(
kde:ktp-accounts-kcm
kde:ktp-approver
kde:ktp-auth-handler
kde:ktp-call-ui
kde:ktp-common-internals
kde:ktp-contact-list
kde:ktp-contact-runner
kde:ktp-desktop-applets
kde:ktp-filetransfer-handler
kde:ktp-kded-integration-module
kde:ktp-kded-module
kde:ktp-send-file
kde:ktp-text-ui
kde:telepathy-logger-qt
)
 
for repo in ${repos[@]};do
    git clone "$repo"
done
</syntaxhighlight>
</syntaxhighlight>


== Create new branches ==
== Update repos ==
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
$ for i in ktp-* telepathy-logger-qt; do cd $i; git checkout -b kde-telepathy-0.4; cd ..; done
$ for i in ktp-* telepathy-logger-qt; do cd $i; git fetch origin; git checkout master; git merge origin/master; cd ..; done
</syntaxhighlight>
</syntaxhighlight>


Line 30: Line 48:
</syntaxhighlight>
</syntaxhighlight>


=== Verify versions ===
mck182's lazy approach (requires lots of scrolling and paying good attention):
<syntaxhighlight lang="bash">
$ for i in ktp-* telepathy-logger-qt; do cd copyright-helper; ./copyright-helper.pl -sc -l ../$i/; cd ..; done
</syntaxhighlight>
 
=== Verify version numbers ===


* Manual process for the moment...
* Manual process for the moment...
=== Bump SONAMEs ===
* REALLY IMPORTANT! For common-internals and tp-logger-qt (and any other library that is used out of its own repo) make sure to bump the SONAME if the library is no longer binary compatible with the previous version.
=== Other ===
* It is also a good idea to keep an eye on Messages.sh and whether the .pot files have correct names and/or they are loaded properly by the code.
=== Compilation check ===
<syntaxhighlight lang="bash">
$ for i in ktp-* telepathy-logger-qt; do cd $i; mkdir bcheck; cd bcheck; cmake .. >>../../buildlog 2>&1; make -j4 >>../../buildlog 2>&1; echo "$i: $?"; cd ..; rm -rf bcheck; cd ..; done
</syntaxhighlight>
This assumes that you have the latest libraries (common-internals, logger-qt) installed in the system as well. The output will show "repo: 0" if it compiled sucessfully and anything other than 0 if it didn't. The buildlog is saved in the current directory.
== Create new branches ==
<syntaxhighlight lang="bash">
$ for i in ktp-* telepathy-logger-qt; do cd $i; git checkout -b kde-telepathy-0.4; cd ..; done
$ for i in ktp-* telepathy-logger-qt; do cd $i; git push origin kde-telepathy-0.4; cd ..; done
</syntaxhighlight>
== Create tarballs ==
=== Clone the scripts ===
<syntaxhighlight lang="bash">
$ git clone kde:scratch/mklapetek/createtarball
$ cd createtarball
</syntaxhighlight>
=== Edit telepathy_config.ini to reflect the changes ===
* Bump versions (they should match the name of the tag, without the leading 'v')
* Add new repositories
* Verify the .po file names are correct, according to http://websvn.kde.org/trunk/l10n-kde4/templates/messages/extragear-network/ - note that if the .pot file matches the name of the repo, you don't need to specify it in the config file
* stable_branch should be set to "yes" for releasing with translations from the l10n stable branch (0.x.y releases) and "no" for releasing with translations from trunk (0.x.0 releases)
* For the other fields, refer to config.ini for documentation.
=== Tag ===
<syntaxhighlight lang="bash">
$ for i in ktp-* ; do cd $i; git tag -a -m "KDE Telepathy 0.4.0" v0.4.0; cd ..; done
$ for i in ktp-* ; do cd $i; git push origin --tags; cd ..; done
</syntaxhighlight>
* Also, if you have done any commits in the stable branch that are not in master, at this point you should also merge the stable branch to master. The rule is that the commit with the tag should always be visible in the history of master.
<syntaxhighlight lang="bash">
$ for i in ktp-* telepathy-logger-qt; do cd $i; git checkout master; git merge kde-telepathy-0.4; cd ..; done
</syntaxhighlight>
* You can verify that everything is merged by running git describe on master of all repos and grepping for the previous version:
<syntaxhighlight lang="bash">
$ for i in ktp-* telepathy-logger-qt; do cd $i; echo -n "$i " && git describe ; cd ..; done | grep 0.3
</syntaxhighlight>
=== Create the tarballs ===
<syntaxhighlight lang="bash">
$ ./create_tarball.rb -n -a all -c telepathy_config.ini
</syntaxhighlight>
* Wait...
=== Upload to ftp ===
* ftp://upload.kde.org/README
mck182's handy shas generator - put all the tars in a separate folder, then do
<syntaxhighlight lang="bash">
for i in ktp-* telepathy-logger-qt*; do sha1sum $i; sha256sum $i; done
</syntaxhighlight>
==Websites==
* Update the wiki header (http://community.kde.org/index.php?title=KTp/Header&action=edit)
* Update the list of bugzilla versions
* Close the bugzilla milestones
==Changelog==
Export to XML, '''don't use Chrome to copy the XML, use Firefox!!!111!11!, Chrome copies invalid XML'''
use
http://community.kde.org/KTp/ReleaseProcess/XSL
to transform do XML export and go to this webpage: http://www.purplegene.com/static/transform.html
To get commit numbers in repos, use this (and replace v0.7.1 with the last tag and v0.8.0 with the new tag):
<pre>
for i in ktp-*; do cd $i; printf '%s\n' "${PWD##*/}"; git log --oneline v0.7.1..v0.8.0 | grep -v "SVN"| wc -l; cd ..; done
</pre>

Latest revision as of 15:25, 25 April 2014

Clone repos (if you haven't already)

repos=(
kde:ktp-accounts-kcm
kde:ktp-approver
kde:ktp-auth-handler
kde:ktp-call-ui
kde:ktp-common-internals
kde:ktp-contact-list
kde:ktp-contact-runner
kde:ktp-desktop-applets
kde:ktp-filetransfer-handler
kde:ktp-kded-integration-module
kde:ktp-kded-module
kde:ktp-send-file
kde:ktp-text-ui
kde:telepathy-logger-qt
)

for repo in ${repos[@]};do
    git clone "$repo"
done

Update repos

$ for i in ktp-* telepathy-logger-qt; do cd $i; git fetch origin; git checkout master; git merge origin/master; cd ..; done

Sanity checking

Copyright checking

  • Verify that the repository has a COPYING file in the top level directory with the correct license.
  • Verify that cmake/modules/COPYING-CMAKE-SCRIPTS exists.
  • Verify that all the files have a proper license header and that their license is that of the COPYING file or a compatible one:


$ git clone git://anonscm.debian.org/users/modax/copyright-helper.git
$ cd copyright-helper

And for each repository:

$ ./copyright-helper.pl -sc -l ../path/to/repository

mck182's lazy approach (requires lots of scrolling and paying good attention):

$ for i in ktp-* telepathy-logger-qt; do cd copyright-helper; ./copyright-helper.pl -sc -l ../$i/; cd ..; done

Verify version numbers

  • Manual process for the moment...

Bump SONAMEs

  • REALLY IMPORTANT! For common-internals and tp-logger-qt (and any other library that is used out of its own repo) make sure to bump the SONAME if the library is no longer binary compatible with the previous version.

Other

  • It is also a good idea to keep an eye on Messages.sh and whether the .pot files have correct names and/or they are loaded properly by the code.

Compilation check

$ for i in ktp-* telepathy-logger-qt; do cd $i; mkdir bcheck; cd bcheck; cmake .. >>../../buildlog 2>&1; make -j4 >>../../buildlog 2>&1; echo "$i: $?"; cd ..; rm -rf bcheck; cd ..; done


This assumes that you have the latest libraries (common-internals, logger-qt) installed in the system as well. The output will show "repo: 0" if it compiled sucessfully and anything other than 0 if it didn't. The buildlog is saved in the current directory.

Create new branches

$ for i in ktp-* telepathy-logger-qt; do cd $i; git checkout -b kde-telepathy-0.4; cd ..; done
$ for i in ktp-* telepathy-logger-qt; do cd $i; git push origin kde-telepathy-0.4; cd ..; done

Create tarballs

Clone the scripts

$ git clone kde:scratch/mklapetek/createtarball
$ cd createtarball

Edit telepathy_config.ini to reflect the changes

  • Bump versions (they should match the name of the tag, without the leading 'v')
  • Add new repositories
  • Verify the .po file names are correct, according to http://websvn.kde.org/trunk/l10n-kde4/templates/messages/extragear-network/ - note that if the .pot file matches the name of the repo, you don't need to specify it in the config file
  • stable_branch should be set to "yes" for releasing with translations from the l10n stable branch (0.x.y releases) and "no" for releasing with translations from trunk (0.x.0 releases)
  • For the other fields, refer to config.ini for documentation.

Tag

$ for i in ktp-* ; do cd $i; git tag -a -m "KDE Telepathy 0.4.0" v0.4.0; cd ..; done
$ for i in ktp-* ; do cd $i; git push origin --tags; cd ..; done


  • Also, if you have done any commits in the stable branch that are not in master, at this point you should also merge the stable branch to master. The rule is that the commit with the tag should always be visible in the history of master.
$ for i in ktp-* telepathy-logger-qt; do cd $i; git checkout master; git merge kde-telepathy-0.4; cd ..; done


  • You can verify that everything is merged by running git describe on master of all repos and grepping for the previous version:
$ for i in ktp-* telepathy-logger-qt; do cd $i; echo -n "$i " && git describe ; cd ..; done | grep 0.3

Create the tarballs

$ ./create_tarball.rb -n -a all -c telepathy_config.ini
  • Wait...

Upload to ftp


mck182's handy shas generator - put all the tars in a separate folder, then do

for i in ktp-* telepathy-logger-qt*; do sha1sum $i; sha256sum $i; done

Websites


Changelog

Export to XML, don't use Chrome to copy the XML, use Firefox!!!111!11!, Chrome copies invalid XML use http://community.kde.org/KTp/ReleaseProcess/XSL

to transform do XML export and go to this webpage: http://www.purplegene.com/static/transform.html

To get commit numbers in repos, use this (and replace v0.7.1 with the last tag and v0.8.0 with the new tag):

for i in ktp-*; do cd $i; printf '%s\n' "${PWD##*/}"; git log --oneline v0.7.1..v0.8.0 | grep -v "SVN"| wc -l; cd ..; done