<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://techbase.kde.org/skins/common/feed.css?0.2"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://techbase.kde.org/api.php?action=feedcontributions&amp;user=Mechanical+snail&amp;feedformat=atom</id>
		<title>KDE TechBase - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://techbase.kde.org/api.php?action=feedcontributions&amp;user=Mechanical+snail&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Special:Contributions/Mechanical_snail"/>
		<updated>2013-05-24T04:48:53Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://techbase.kde.org/Projects/Utils/ksecretsservice</id>
		<title>Projects/Utils/ksecretsservice</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Utils/ksecretsservice"/>
				<updated>2013-05-05T01:19:51Z</updated>
		
		<summary type="html">&lt;p&gt;Mechanical snail: /* Structure */ Fix URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
ksecretsservice is a secrets management infrastructure aiming to replace [[Projects/Utils/kwallet]]. &lt;br /&gt;
&lt;br /&gt;
All the sources of this infrastructure are located on projects.kde.org [[https://projects.kde.org/projects/playground/utils/ksecrets]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! part&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| ksecretsserviced&lt;br /&gt;
| store the secrets in a secure manner&lt;br /&gt;
|-&lt;br /&gt;
| ksecretsservice&lt;br /&gt;
| Public API to be used by KDE applications&lt;br /&gt;
|-&lt;br /&gt;
| secretsync&lt;br /&gt;
| Tool used to synchronize secrets between several devices&lt;br /&gt;
|-&lt;br /&gt;
| kio&lt;br /&gt;
| Let users browse secrets using the ksecrets:// protocol&lt;br /&gt;
|-&lt;br /&gt;
| kwl2kss&lt;br /&gt;
| KWallet to KSecretsService conversion tool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Roadmap ===&lt;br /&gt;
&lt;br /&gt;
* Daemon (ksecretsserviced)&lt;br /&gt;
** ksecrets specific file format storage [DONE]&lt;br /&gt;
** testing and bugfixing [IN PROGRESS]&lt;br /&gt;
* KDE API (ksecretsservice)&lt;br /&gt;
** support secret creation and retrieving [DONE]&lt;br /&gt;
** implement signals [TO BE DONE]&lt;br /&gt;
* Secrets Sync Tool (ksecretssync)&lt;br /&gt;
** Implement syncing protocol [TO BE DONE]&lt;br /&gt;
** Add IMAP support [TO BE DONE]&lt;br /&gt;
** Add SFTP support [TO BE DONE]&lt;br /&gt;
* ksecrets tool&lt;br /&gt;
** Specify commands to be added [TO BE DONE]&lt;br /&gt;
** Implement these commands [TO BE DONE]&lt;br /&gt;
* kio (used to display secrets in e.g. Dolphin)&lt;br /&gt;
** Finish it [TO BE DONE]&lt;br /&gt;
* KWallet conversion tool (kwl2kss)&lt;br /&gt;
** More testing [TO BE DONE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
Originally, this project was started as a freedesktop.org specification, that one could find here [[http://specs.freedesktop.org/secret-service/]]. This specification is for a DBus daemon providing a means for applications to securely store and retrieve secrets information. Under KDE, this is considered an implementation detail and KDE applications are supposed to use the client API described above. However, this implementation detail is important to be known for those users mixing KDE and GNOME, as the freedesktop.org specification is also implemented by gnome-keyring. These user should make a choice about the actual daemon they want to activate and then stick with it, as no migration tool exists (yet) from ksecretsserviced to gnome-keyring or viceversa.&lt;/div&gt;</summary>
		<author><name>Mechanical snail</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Using_Project_Neon_to_contribute_to_KDE</id>
		<title>Getting Started/Using Project Neon to contribute to KDE</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Using_Project_Neon_to_contribute_to_KDE"/>
				<updated>2012-09-11T05:35:05Z</updated>
		
		<summary type="html">&lt;p&gt;Mechanical snail: Formatting; specify it's for ubuntu in the lead.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://launchpad.net/project-neon Project Neon] is a nightly build of the latest KDE trunk for Ubuntu. It is an easy way for new contributors to KDE to get started without having to download and build the entire KDE source code tree. Additionally, dependencies are automatically handled and updated. This is suitable for new developers, translators, usability designers, documenters, promoters, bug triagers, etc. This process makes the steps detailed on [[Getting_Started/Build|this page]].&lt;br /&gt;
&lt;br /&gt;
However, for developers, it may at some point become necessary to build more components from source code as you become more involved in the project. The [[Getting_Started/Build/kdesrc-build|kdesrc-build]] script is an easy way to build all or parts of KDE from its source code repositories.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Project Neon always requires either the latest stable Kubuntu release or the development release. Previous versions of Kubuntu are not supported. &lt;br /&gt;
&lt;br /&gt;
== Installing Project Neon ==&lt;br /&gt;
&lt;br /&gt;
To use Project Neon, add the following PPA (Personal Package Archive) to your &amp;lt;tt&amp;gt;sources.list&amp;lt;/tt&amp;gt; using your preferred method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:neon/ppa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Project neon nightly KDE4 build&lt;br /&gt;
deb http://ppa.launchpad.net/neon/ppa/ubuntu maverick main&lt;br /&gt;
&lt;br /&gt;
#above repository is PGP signed, refer to below link for getting PGP key&lt;br /&gt;
https://launchpad.net/~neon/+archive/ppa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, you can simply install the nightly package of whichever modules you want to work on. The Packages are named project-neon-&amp;lt;git/svn module name&amp;gt;. The packages are installed in /opt/project-neon/ and won't affect your stable KDE install.&lt;br /&gt;
&lt;br /&gt;
You can install all of the packages or just the ones you are interested in, depending on what you want to use them for. For example if you want to install the KDE Workspace with the extra plasmoids, you would install the &amp;lt;tt&amp;gt;project-neon-kdeplasma-addons&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;project-neon-session&amp;lt;/tt&amp;gt; so you get KDM support for Project Neon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install project-neon-kdeplasma-addons project-neon-session&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are only interested in application development in another module, you can install just the module package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install project-neon-kdepim project-neon-common&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That command will also install the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; and other dependencies too. In your regular (stable) KDE session you can then run the nightly version of your chosen application after setting up the environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
neon-env&lt;br /&gt;
kmail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;neon-env&amp;lt;/tt&amp;gt; will setup the environment and start a subshell from which you can work with your project neon installation.&lt;br /&gt;
This will correctly use the nightly version of libraries instead of using the stable versions, so no other changes are necessary to your library path etc.&lt;br /&gt;
You'll need to close the terminal session for the settings to be undone.&lt;br /&gt;
&lt;br /&gt;
Note that settings for applications that you run from project neon do not conflict with your regular application settings and data. &amp;lt;tt&amp;gt;.project-neon-kde/&amp;lt;/tt&amp;gt; is used instead of &amp;lt;tt&amp;gt;.kde/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using Project Neon for development ==&lt;br /&gt;
&lt;br /&gt;
If you are joining one of the development teams in KDE, you will need a real SVN/GIT checkout in order to contribute your code back to the project and create patches easily. If you only code for KDE every now and then, Project Neon provides some extra tools for this purpose in the package &amp;lt;tt&amp;gt;project-neon-utils&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
NOTE: both neon-cmake and neonmake require neon-env to be run first!&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;neon-env&amp;lt;/tt&amp;gt; - sets up the necessary environment settings for project neon builds and opens a subshell.&lt;br /&gt;
* &amp;lt;tt&amp;gt;neon-cmake&amp;lt;/tt&amp;gt; - cmake wrapper with neon environment settings for cmake, same synopsis as cmake and passes arguments to cmake&lt;br /&gt;
* &amp;lt;tt&amp;gt;neonmake&amp;lt;/tt&amp;gt; - convenience script which will create a build folder, configure the source, build it and install it in /opt/project-neon/ so you can test your changes.&lt;br /&gt;
* &amp;lt;tt&amp;gt;neon-clean&amp;lt;/tt&amp;gt; - script that resets any changes you made to /opt/project-neon after installing the packages. Since this script reinstalls the packages it might require a working internet connection.&lt;br /&gt;
* &amp;lt;tt&amp;gt;neonbuild&amp;lt;/tt&amp;gt; - pbuilder/pdebuild wrapper to rebuild a neon package in a chroot. Takes the same options as pbuilder. If no pbuidler action is given pdebuild is run instead.&lt;br /&gt;
&lt;br /&gt;
=== Options for cmake/make ===&lt;br /&gt;
You can change the cmake and make options used by setting these variables in ~/.neonrc:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;NEON_CMAKE_OPTS=&amp;quot;&amp;quot;&amp;lt;/tt&amp;gt; - Here you can add additional cmake options that should be used together with the default neon options.&lt;br /&gt;
* &amp;lt;tt&amp;gt;NEON_CMAKE_OVERRIDE=&amp;quot;&amp;quot;&amp;lt;/tt&amp;gt; - If you set this variable cmake will ignore the default neon options and only use the ones in NEON_CMAKE_OVERRIDE.&lt;br /&gt;
* &amp;lt;tt&amp;gt;NEON_MAKE_OVERRIDE=&amp;quot;&amp;quot;&amp;lt;/tt&amp;gt; - If you set this variable make in neonmake will only use your options. By default make uses '-j CPUs+1'&lt;br /&gt;
&lt;br /&gt;
=== Debugging symbols ===&lt;br /&gt;
The debugging symbols for every package are in it's corresponding &amp;lt;code&amp;gt;-dbg&amp;lt;/code&amp;gt; package, so to install the debugging symbols for kdelibs you can use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install project-neon-kdelibs-dbg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are already using a nightly package of the module you want to develop for, you should remove that, and checkout the development version. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Remove the packaged nightly version&lt;br /&gt;
sudo apt-get purge project-neon-kdepim&lt;br /&gt;
&lt;br /&gt;
# Add below Project Neon source code repository to sources.list if you didn't use add-apt-repository&lt;br /&gt;
deb-src http://ppa.launchpad.net/neon/ppa/ubuntu maverick main&lt;br /&gt;
&lt;br /&gt;
# Get the dependencies for building kdepim&lt;br /&gt;
sudo apt-get build-dep project-neon-kdepim&lt;br /&gt;
cd ~&lt;br /&gt;
# You may choose to do your development in a different folder.&lt;br /&gt;
cd Development&lt;br /&gt;
# Gets the latest version of the kdepim module.&lt;br /&gt;
git clone git://anongit.kde.org/kdepim&lt;br /&gt;
cd kdepim&lt;br /&gt;
# Set up neon environment&lt;br /&gt;
neon-env&lt;br /&gt;
# Shortcut provided by Project Neon to make the module&lt;br /&gt;
# and install it to the prefix /opt/project-neon/&lt;br /&gt;
neonmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you should usually checkout a module from KDE, not an application. Most modules contain libraries shared within the module and which are necessary to build the applications in the module.&lt;br /&gt;
&lt;br /&gt;
Also note that when using apt-get build-dep it will always get all build-depends, so watch out that it doesn't install a component you want to build yourself as that would overwrite your changes should you install the packages after installing your build. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using Project Neon for translation ==&lt;br /&gt;
&lt;br /&gt;
The Project Neon nightly packages include English language strings only. Translated packages are not available. However, if you are translating KDE applications, you can install the translations from KDE SVN in your normal workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
cd Translations&lt;br /&gt;
# The -N switch checks out only the top level directory from svn.&lt;br /&gt;
svn co -N svn://anonsvn.kde.org/home/kde/trunk/l10n-kde4&lt;br /&gt;
cd l10n-kde4&lt;br /&gt;
# scripts necessary to build translations.&lt;br /&gt;
svn up scripts&lt;br /&gt;
# Get the German translations&lt;br /&gt;
svn up de&lt;br /&gt;
# Generate the build files for the German language pack - if you get a message&lt;br /&gt;
# that revpath couldn't be found you need to install the xutils-dev package&lt;br /&gt;
./scripts/autogen.sh de&lt;br /&gt;
cd de&lt;br /&gt;
neon-env&lt;br /&gt;
neonmake&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After building the translations it is possible to either change the language in system settings, or run applications in another language using the environment variable &amp;lt;tt&amp;gt;KDE_LANG&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
switchtonightly # or neon-env&lt;br /&gt;
KDE_LANG=de kmail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
exit the shell to reset the settings.&lt;br /&gt;
&lt;br /&gt;
== Using Project Neon for documentation ==&lt;br /&gt;
&lt;br /&gt;
The Project Neon nightly source packages include the official KDE User Documentation in English.&lt;br /&gt;
&lt;br /&gt;
TODO: How to build user docs from SVN.&lt;br /&gt;
&lt;br /&gt;
== Using Project Neon for promotion ==&lt;br /&gt;
&lt;br /&gt;
If you are creating screenshots or screencasts of the latest version of KDE, project Neon is a simple and fast way of getting a default KDE4 session.&lt;br /&gt;
&lt;br /&gt;
The KDE Promotion team recommends using the default background, theme, icons etc when preparing official promotional materials (unless the feature you are showing is related to configuring KDE artwork). Project Neon uses the default artwork that comes with KDE4, so it is useful for creating promo materials.&lt;br /&gt;
&lt;br /&gt;
Here is a shortcut to get all available modules from the PPA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install project-neon-all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The application [http://ariya.blogspot.com/2008/06/creating-fancy-screenshots-with.html screenie] is provided since Kubuntu 8.10 as &amp;lt;tt&amp;gt;screenie-qt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install screenie-qt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contact the Team ==&lt;br /&gt;
&lt;br /&gt;
You can reach the Project Neon team on IRC in &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;#project-neon on irc.freenode.net&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
by mail at &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;neon@lists.launchpad.net&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or you can ask a question on [https://answers.launchpad.net/project-neon launchpad]&lt;br /&gt;
&lt;br /&gt;
If you think there is a bug in our packaging of the provided software you can file a bug on [https://bugs.launchpad.net/project-neon launchpad]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.kubuntu.org/Kubuntu/ProjectNeon Team page in the Kubuntu Wiki]&lt;/div&gt;</summary>
		<author><name>Mechanical snail</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Thread:Talk:Policies/Git_commit_policy</id>
		<title>Thread:Talk:Policies/Git commit policy</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Thread:Talk:Policies/Git_commit_policy"/>
				<updated>2012-09-11T05:15:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mechanical snail: New thread: Git commit policy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the recent move to Git, I assume there should be a policy for Git contributions. Currently there's only the SVN commit policy.&lt;/div&gt;</summary>
		<author><name>Mechanical snail</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Languages/Java</id>
		<title>Development/Languages/Java</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Languages/Java"/>
				<updated>2012-09-11T05:01:59Z</updated>
		
		<summary type="html">&lt;p&gt;Mechanical snail: punctuation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Java support for KDE is now fairly significant. You can add applet support to your KDE applications, and with the Qt/KDE Java bindings you can develop KDE apps in Java. Issues relating to Java support for KDE should be discussed on the kde-java mailing list (though applet issues are usually discussed on kfm-devel).&lt;br /&gt;
&lt;br /&gt;
* [http://developer.kde.org/language-bindings/java/qtjava.html QtJava and KDEJava (Koala)]&amp;lt;br /&amp;gt; The QtJava and KDEJava (Koala) bindings developed by Richard Dale allow you to create Qt and KDE applications using Java. The code uses JNI to allow Java code to access KDEs native widgets. These bindings can be found in the [http://websvn.kde.org/trunk/KDE/kdebindings/ kdebindings module] of the KDE Subversion repository ([http://developer.kde.org/source/anonsvn.html Instructions]).&lt;br /&gt;
&lt;br /&gt;
* [http://developer.kde.org/language-bindings/java/kjas/index.html KDE Java Applet Server (KJAS)]&amp;lt;br /&amp;gt;KJAS allows KDE applications to embedd Java applets. It uses a pure Java server to run the applets, which it communicates with using standard UNIX pipes. KDE programmers can use a special KJavaAppletWidget to display the applets in their application. KJAS is already in a usable state.&lt;br /&gt;
&lt;br /&gt;
* [http://developer.kde.org/language-bindings/java/qtawt/index.html QtAWT]&amp;lt;br /&amp;gt;The QtAWT is a port of the peer classes underlying the Java AWT to the Qt toolkit, in future it will also use the KDE widgets. QtAWT is currently very incomplete, but you should feel free to give it a try, or even better to help finish it.&lt;br /&gt;
&lt;br /&gt;
* [https://mail.kde.org/mailman/listinfo/kde-java Mailing List] ([http://mail.kde.org/pipermail/kde-java/ Archives]) &amp;lt;br /&amp;gt;There is a dedicated mailing list for Java-specific issues in KDE. It is a fairly low-traffic list aimed at developers with an interest in writing Java applications for KDE and/or writing and maintaining the Java bindings.&lt;br /&gt;
&lt;br /&gt;
* [http://doc.trolltech.com/qtjambi-1.0.0beta/com/trolltech/qt/qtjambi-index.html Qt Jambi Reference Documentation]&lt;br /&gt;
* [http://www.trolltech.com/pdf/qtjambi-whitepaper-tp3.pdf Qt Jambi Whitepaper]&lt;br /&gt;
* [http://lists.trolltech.com/qt-jambi-interest/ Qt-jambi-interest Mailing List]&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Mechanical snail</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Review_Board</id>
		<title>Development/Review Board</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Review_Board"/>
				<updated>2012-09-11T04:59:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mechanical snail: /* Using post-review to post changes for review */ add corresponding package name for debian/ubuntu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KDE Review Board =&lt;br /&gt;
&lt;br /&gt;
KDE currently uses the [http://www.reviewboard.org/ Review Board] software for performing reviews on code changes.&lt;br /&gt;
&lt;br /&gt;
There are separate versions of Review Board for use with Git and Subversion:&lt;br /&gt;
* [http://git.reviewboard.kde.org KDE Git Review Board]&lt;br /&gt;
* [http://svn.reviewboard.kde.org KDE Subversion Review Board]&lt;br /&gt;
&lt;br /&gt;
Note that http://reviewboard.kde.org/ redirects to the Git version.&lt;br /&gt;
&lt;br /&gt;
== Using Review Board and post-review with Git ==&lt;br /&gt;
&lt;br /&gt;
Every Git Project repository has its own entry on the KDE Git Review Board.&lt;br /&gt;
&lt;br /&gt;
=== Creating your changeset ===&lt;br /&gt;
&lt;br /&gt;
To create your changeset, you probably want to work in a separate branch - or even in your clone. This is actually suggested and the proper way to do changesets in Git. You can create any number of commits, amend them, and do whatever you want to do - it won't affect the next steps, as you will submit the whole branch for review.&lt;br /&gt;
&lt;br /&gt;
Before proceeding it is good practice to rebase your branch onto the branch you want to target for the merge. So, supposing you want to target &amp;lt;tt&amp;gt;master&amp;lt;/tt&amp;gt;, make sure it is up-to-date with the remote and then run, and want to publish a review for a local branch:&lt;br /&gt;
&lt;br /&gt;
 git pull --rebase&lt;br /&gt;
&lt;br /&gt;
If you want to post a review for merging a non local branch, you might want to run the following:&lt;br /&gt;
&lt;br /&gt;
 git merge master&lt;br /&gt;
&lt;br /&gt;
=== Using post-review to post changes for review ===&lt;br /&gt;
&lt;br /&gt;
Once you are done with the above, it is time to post the changes to ReviewBoard. The easiest and most comfortable way to do that is &amp;lt;tt&amp;gt;[http://www.reviewboard.org/docs/manual/dev/users/tools/post-review/ post-review]&amp;lt;/tt&amp;gt;, a handy command line tool which takes care of creating review requests for you. This is normally in a package called RBTools, available as [http://software.opensuse.org/search?q=rbtools &amp;lt;code&amp;gt;rbtools&amp;lt;/code&amp;gt; in OpenSuse's devel:tools repository] and [apt://python-rbtools &amp;lt;code&amp;gt;python-rbtools&amp;lt;/code&amp;gt; in Debian/Ubuntu].&lt;br /&gt;
&lt;br /&gt;
==== Prerequisites ====&lt;br /&gt;
&lt;br /&gt;
The following has to be done only once to make your local clone fit for use with &amp;lt;tt&amp;gt;post-review&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
First of all, you have to tell it about the ReviewBoard server. If your project does not ship with a &amp;lt;tt&amp;gt;.reviewboardrc&amp;lt;/tt&amp;gt; file (encourage the project manager to add one!), the first thing you have to run is:&lt;br /&gt;
&lt;br /&gt;
 git config reviewboard.url https://git.reviewboard.kde.org&lt;br /&gt;
&lt;br /&gt;
ReviewBoard currently only knows the project repositories by their git:// URLs, making it necessary to have a remote using the git:// URL in your clone. If your &amp;lt;tt&amp;gt;origin&amp;lt;/tt&amp;gt; remote is already using the git:// URL, you are all set. If not you need to add another remote now. &lt;br /&gt;
&lt;br /&gt;
Let's suppose you are looking to have some changes to [https://projects.kde.org/projects/extragear/multimedia/amarok Amarok] reviewed, and the URL of your &amp;lt;tt&amp;gt;origin&amp;lt;/tt&amp;gt; remote is &amp;lt;tt&amp;gt;git@git.kde.org:amarok&amp;lt;/tt&amp;gt;. To add another remote using the git:// URL you might run:&lt;br /&gt;
&lt;br /&gt;
 git remote add anonupstream git://anongit.kde.org/amarok&lt;br /&gt;
 git fetch anonupstream&lt;br /&gt;
&lt;br /&gt;
If your &amp;lt;tt&amp;gt;origin&amp;lt;/tt&amp;gt; remote was already using the git:// url, substitute &amp;lt;tt&amp;gt;anonupstream&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;origin&amp;lt;/tt&amp;gt; throughout the rest of this tutorial.&lt;br /&gt;
&lt;br /&gt;
If you used a &amp;lt;tt&amp;gt;kde:&amp;lt;/tt&amp;gt; prefix for your git remotes, post-review won't expand it (it uses &amp;lt;tt&amp;gt;git config --get remote.origin.url&amp;lt;/tt&amp;gt;).&lt;br /&gt;
This can be fixed by editing  &lt;br /&gt;
&amp;lt;tt&amp;gt;/usr/local/lib/python2.7/site-packages/RBTools-0.4.1-py2.7.egg/rbtools/clients/git.py&amp;lt;/tt&amp;gt;&lt;br /&gt;
and at the end of the function &amp;quot;def get_origin&amp;quot;, adding the following line before the return line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;origin_url = origin_url.replace(&amp;quot;kde:&amp;quot;, &amp;quot;git://anongit.kde.org/&amp;quot;)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating the review request ====&lt;br /&gt;
&lt;br /&gt;
You are now ready to create the review request. The &amp;lt;tt&amp;gt;post-review&amp;lt;/tt&amp;gt; command should look something like this:&lt;br /&gt;
&lt;br /&gt;
 post-review --parent=master --tracking-branch=anonupstream/master&lt;br /&gt;
&lt;br /&gt;
This command tells &amp;lt;tt&amp;gt;post-review&amp;lt;/tt&amp;gt; that your branch is based upon &amp;lt;tt&amp;gt;master&amp;lt;/tt&amp;gt;, and it is set to track the remote branch &amp;lt;tt&amp;gt;anonupstream/master&amp;lt;/tt&amp;gt;. You can also give &amp;lt;tt&amp;gt;post-review&amp;lt;/tt&amp;gt; some more arguments to avoid using the web interface later - have a look at the [http://www.reviewboard.org/docs/manual/dev/users/tools/post-review/ user manual] for more on that.&lt;br /&gt;
&lt;br /&gt;
After the command has been run a web address will be shown in the terminal, pointing at your review request.&lt;br /&gt;
&lt;br /&gt;
==== Updating a review request ====&lt;br /&gt;
&lt;br /&gt;
If you need to update an existing review request you can invoke &amp;lt;tt&amp;gt;post-review&amp;lt;/tt&amp;gt; with an additional &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; argument, which should be the numeric id of the review request you want to update. Supposing you want to update review request 54, you would run:&lt;br /&gt;
&lt;br /&gt;
 post-review --parent=master --tracking-branch=anonupstream/master -r 54&lt;br /&gt;
&lt;br /&gt;
==== Create a convenient git alias ====&lt;br /&gt;
&lt;br /&gt;
To reduce the typing needed you can create a git alias with the options you use for post-review. Add the line&lt;br /&gt;
below to the &amp;lt;tt&amp;gt;[alias]&amp;lt;/tt&amp;gt; section of your ~/.gitconfig file.&lt;br /&gt;
&lt;br /&gt;
 post-review = !post-review --guess-summary --guess-description --username=&amp;lt;YOUR USERNAME&amp;gt; --parent=master --tracking-branch=anonupstream/master&lt;br /&gt;
&lt;br /&gt;
Now you can submit a committed patch for review by just typing&lt;br /&gt;
&lt;br /&gt;
 git post-review&lt;br /&gt;
&lt;br /&gt;
If you want to amend an already existing review request just add &amp;lt;tt&amp;gt;-r NUM&amp;lt;/tt&amp;gt; to the end of the command.&lt;br /&gt;
&lt;br /&gt;
==== Creating a ReviewBoard-compatible diff ====&lt;br /&gt;
&lt;br /&gt;
In some rare cases you simply want to generate a diff and submit it to ReviewBoard later. You can do that by running:&lt;br /&gt;
&lt;br /&gt;
 post-review --parent=master -n &amp;gt; your-patch.patch&lt;br /&gt;
&lt;br /&gt;
=== Closing a review request ===&lt;br /&gt;
&lt;br /&gt;
A review request can be closed in two ways. Either the user who opened the review request can use the ReviewBoard web interface. Or you close the review right in a GIT commit. This is done by using the REVIEW keyword followed by the review ID you want to close. For example, to close review 54, you would put&lt;br /&gt;
&lt;br /&gt;
 REVIEW: 54&lt;br /&gt;
&lt;br /&gt;
in your commit. A message will also be posted to ReviewBoard indicating the commit SHA1 that closed the request. Please note that this only works for GIT commits, and not for Subversion commits.&lt;br /&gt;
&lt;br /&gt;
== Using Review Board With Subversion ==&lt;br /&gt;
&lt;br /&gt;
Not all KDE Subversion projects use Review Board so first you need to check if the project you've created the patch for is actually using reviewboard. For this, go to the [http://svn.reviewboard.kde.org/groups/ groups section] and see if the project's group is listed there. If it is listed there, you should use the reviewboard, otherwise send the patch by other means.&lt;br /&gt;
&lt;br /&gt;
For sending a patch, you first need to register. Then simply click ''[http://svn.reviewboard.kde.org/r/new/ New Review Request]'' and fill out the form. The most important parts of the form are:&lt;br /&gt;
&lt;br /&gt;
* '''The actual patch'''. You need to upload the patch you've created earlier here&lt;br /&gt;
* '''The SVN base path'''. This is needed for the inline patch display to work. This can be a bit tricky, if you are unfamiliar with KDE's SVN layout, check [http://websvn.kde.org WebSVN]. For example, if you're ''svn diff'ing'' from &amp;lt;tt&amp;gt;/path/to/your/copy/of/kdelibs/cmake/modules&amp;lt;/tt&amp;gt;, the base path should be &amp;lt;tt&amp;gt;/trunk/KDE/kdelibs/cmake/modules&amp;lt;/tt&amp;gt;. If you still don't know the correct base path, ask a developer on IRC. You can also edit the review request later.&lt;br /&gt;
* '''A summary of the patch'''. This should be short, it will show up as subject of the notification emails.&lt;br /&gt;
* '''A description of the patch'''. This can be longer.&lt;br /&gt;
* '''The group(s)'''. Make sure you enter the correct group '''ID''' here, as seen earlier on the [http://reviewboard.kde.org/groups/ groups page].&lt;br /&gt;
&lt;br /&gt;
After you completed the form, a notification mail will be sent to the developers and they will answer you.&lt;br /&gt;
&lt;br /&gt;
/!\ You need to use svn diff in english, if your system is not english, please do LC_ALL=C svn diff&lt;/div&gt;</summary>
		<author><name>Mechanical snail</name></author>	</entry>

	</feed>