Contribute/Get a Contributor Account: Difference between revisions

    From KDE TechBase
    (Also ask for location info)
    No edit summary
    (45 intermediate revisions by 19 users not shown)
    Line 1: Line 1:
    This tutorial is about how to apply for a SVN account for KDE.


    == Notations ==
    This tutorial is about how to apply for a commit account for KDE so that you may change files (code, documentation files, art, etc.) in KDE's git and svn repositories.


    * The word ''SVN'' applies to all SVN servers.
    == The short answer: how to get read-write access ==
    * The phrase ''KDE SVN'' refers only to KDE's SVN server.
    * The phrase ''anonymous SVN'' means KDE's anonymous SVN mirrors.


    == What is KDE SVN? ==
    KDE Contributor accounts are managed through [http://identity.kde.org/ KDE Identity]. Go to [https://identity.kde.org/ https://identity.kde.org/] and create an account if you don't have one already. Then visit the [https://identity.kde.org/index.php?r=developerApplication Developer Application page] to apply.


    To have write access to KDE SVN, you have to use the main SVN server of KDE. (Anonymous SVN uses mirrors of this server. SVN does not allow you to read from one server and write to another.)
    == KDE Repositories ==


    To be able to use the main KDE SVN server, you need an account there. An account is made up of a ''username'' (normally your familly name), a password and an email address. The username is for getting in, the password for authenticating and the email address for knowing who to contact if another developer wants to contact the account holder. (The username is sometimes known also as the ''login''.)
    To have write access to KDE's git and SVN servers, you have to use KDE's main git and SVN server. Anonymous git and SVN uses mirrors of this server. Note that SVN does not allow you to read from one server and write to another, while git does. For a tutorial on using KDE's git services, see [[/Development/Git|this tutorial]].


    '''Note''': you can see the accounts in [http://websvn.kde.org/trunk/KDE/kde-common/accounts kde-common/accounts]. That is the list of all accounts. Yes, '''the account list is public''', for example on [http://websvn.kde.org WebSVN].
    To be able to write to files stored in KDE's git and SVN repositories, you need an account. An account is made up of a username (normally your family name), a password, an ssh key and an email address. The username is for getting in, the password and ssh keys are for authenticating and the email address for knowing who to contact if another developer wants to contact the account holder.


    To access the main KDE SVN, you have two possibilities, with different ways to encrypt transmitted data:
    A KDE commit account allows you to write to nearly anywhere in the KDE repositories with a few exceptions, such as the www module. (Of course, exceptions can be made for this as well.)
    * using HTTPS
    * using SSH


    If you have never used ssh before, you might prefer ''HTTPS'', it's a bit simpler to set up.  
    '''Note''': you can see the accounts in [http://websvn.kde.org/trunk/kde-common/accounts kde-common/accounts]. That is the list of all accounts. Yes, '''the account list is public''', for example on [http://websvn.kde.org WebSVN].


    However it seems that currently svn-over-ssh is really much faster than svn-over-https, so that is a good reason for using ssh.
    == Who Can Apply For a KDE Contributor Account? ==


    The password you will need to create depends on the above:
    Normally, any developer who has done some work on projects hosted by KDE can apply for a KDE Contributor account.
    * a normal password for accessing by HTTPS, or
    * a SSH public key for accessing by SSH
     
    A KDE SVN account allows you to write to nearly anywhere in the KDE SVN. However, there are exceptions:
    * the KDE SVN internals
    * the admin directory
    * the www module (exceptions can be made for this.)
     
    == Who Can Apply For a KDE SVN Account? ==
     
    Normally, any developer who has done some work on KDE can apply for a KDE SVN account.


    Translators should get approval from their team leader so that they can organize how the work is being done in his/her team. Please mention the approval from the team leader when requesting the account.
    Translators should get approval from their team leader so that they can organize how the work is being done in his/her team. Please mention the approval from the team leader when requesting the account.


    Please also [[Policies/SVN Commit Policy|read the KDE SVN commit policy]]. You must accept these rules when using your future KDE SVN account.
    Please also [[Policies/SVN Commit Policy|read the KDE commit policy]]. You must accept these rules when using your future KDE Contributor account. Please also familiarize yourself with the [http://www.kde.org/code-of-conduct/ KDE Code of Conduct] which describes the social foundations within KDE.


    Also please apply for an account only if you think that you will work on KDE for a somewhat longer time. If you know that you will only work for a couple of weeks and then never again, please consider not applying for a KDE SVN account but still, do continue to send patches.
    Also please apply for an account only if you think that you will work on KDE for a somewhat longer time. If you know that you will only work for a couple of weeks and then never again, please consider not applying for a KDE Contributor account but instead continue to send patches directly to developers.


    The limitations are not there to exclude anyone - they are there to ensure that the maintenance of accounts remains reasonable.
    The limitations are not there to exclude anyone - they are there to ensure that the maintenance of accounts remains reasonable.


    Of course, to be clear: ''the [mailto:[email protected] KDE's sysadmins] have the last word about whether or not to create a KDE SVN account for somebody''.
    Of course, to be clear: ''the KDE's sysadmins have the last word about whether or not to create a KDE SVN account for somebody''.


    == Choosing a Password ==
    == SSH ==


    This section assumes that you want access via HTTPS (without SSH). Otherwise skip this section.
    You need an SSH public key in order to access your KDE Contributor account. If you already have one, you can skip the next subsection and go to [[#Setting up the SVN+SSH protocol|Setting up the SVN+SSH protocol]].


    First you have to choose a password. If possible, one that you do not use for anything else on your computer (as the SVN account has nothing to do with any other account on your computer.)
    === Generating the SSH keys ===


    In any case, please use ''common precautions'' about passwords.
    To be able to use your KDE Contributor account with SSH, you need a SSH public key. Please notice that it is '''not''' a GPG (OpenPGP) key, which is completely unrelated!


    Strong passwords:
    The password in the sense of this documentation is the '''public key''' that you are creating.
    * have both upper and lower case letters.
    * have digits and/or punctuation characters as well as letters.
    * are easy to remember, so they do not have to be written down.
    * are at least eight characters long.


    A strong password is '''not''':
    For more information on how to create a pair of SSH keys, please refer to a [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen SSH documentation] or book.


    * Personal information such as your name, phone number, social security number, birth date or address. Even names of acquaintances and the like should not be used.
    The command to create a pair of keys is '''ssh-keygen''' and it requires the type of key you will create, either DSA or RSA - both are fine.
    * Any word in the dictionary, or based closely on such a word (such as a word spelled backwards).
    * A word with letters simply replaced by digits. For example, bl0wf1sh is not a strong password.
    * Easy to spot while you're typing them in. Passwords like 12345, qwerty (i.e., all keys right next to each other), or nnnnnn should be avoided.


    All the rules are not here to annoy you but to guarantee a certain level of security for the KDE SVN server.
    To create a new pair of keys, use <syntaxhighlight lang="bash">ssh-keygen -t dsa</syntaxhighlight> or <syntaxhighlight lang="bash">ssh-keygen -t rsa</syntaxhighlight>


    == Getting the Encoded Password ==
    There is also a type called RSA1 which was used in version 1 of the SSH protocol. See the [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen ssh documentation] for more details.


    This section assumes that you want access via HTTPS (without SSH). Otherwise skip this section.
    You can then accept the default filename for your key (either {{path|$HOME/.ssh/id_dsa}} or {{path|$HOME/.ssh/id_rsa}}, depending on the type of key you have chosen). After that, a passphrase is asked. It is recommended that you do not leave it blank.


    Now that you have your password, you need to encode it, not to have to send it in clear in your email. (Note: this encryption is the same type of encryption used by many Linux distributions for their {{path|/etc/shadow}} file.)
    Now that you are finished generating your key pair, you will have two files: a private key and a public key. If you have accepted the default filename, they will be respectively {{path|$HOME/.ssh/id_dsa}} and {{path|$HOME/.ssh/id_dsa.pub}} or {{path|$HOME/.ssh/id_rsa}} and {{path|$HOME/.ssh/id_rsa.pub}}, depending on the type of key you have specified.


    If your password is 8 characters long, one way to do this would be using Perl: <!-- <code>perl -e "print crypt('&lt;your password&gt;','xy'),\"\n\";"</code> -->
    The private key '''must''' remain secret, do not publish it to anyone under any circumstance.
    <nowiki>perl -e 'print crypt("<your password>","\$1\$xyz\$")."\n";'</nowiki>
    where &lt;your password&gt; has to be replaced with your password and ''xyz'' with 3 to 8 random characters of your choice. Leave the \$1\$ before it and the \$ after it.


    (Hint: $ must be "escaped" with a backslash. For instance: If your password is "abc$123" you have to replace &lt;your password&gt; with "abc\$123". )
    The public key can be published and shall be sent when you are applying for a KDE SVN account.


    '''Note''': do not worry to find your choice of &lt;xyz&gt; at the start of the encoded password, it is meant to be so.
    You should also set up <tt>ssh-agent</tt> so you do not have to type the password every time you connect via SSH. There are several tutorials available explaining how to do this, for example [http://mah.everybody.org/docs/ssh this one]. [http://www.gentoo.org/proj/en/keychain Keychain] is a program that makes this task easier.


    Another solution is to create a dummy account on a Unix system where you have administrator access. You can use the built-in user management programs of your distribution and search for the account in your file {{path|/etc/shadow}} or you can use the following code:
    '''Note''': if you already have an ssh key, you can just use the existing key instead of creating a new one.
    useradd dummy; passwd dummy; grep dummy /etc/passwd /etc/shadow; userdel dummy


    In any case, the password is then the part between the first ':' and the second ':'. (Note: not a star! (*) That means that it is not the password!)
    {{tip|
    If you want to use SVN with SSH with another user than the one who created the keys, you need to copy <tt>$HOME/.ssh/id_dsa.pub</tt> and <tt>$HOME/.ssh/id_dsa</tt> or <tt>$HOME/.ssh/id_rsa.pub</tt> and <tt>$HOME/.ssh/id_rsa</tt> to the other user's <tt>$HOME/.ssh</tt> directory.


    Save the encoded password so that you can use it later in the email.
    You should probably also backup those files.
    }}


    == Getting the SSH keys ==
    === Setting up the SVN+SSH protocol ===


    This section assumes that you want access via SSH (not with HTTPS). Otherwise skip this section.
    Once you created your key, you'll have to tell SSH that this one should be used for all connections to KDE sites. For SVN access, add the following lines to the <tt>~/.ssh/config</tt> file. Replace USERNAME with yours.


    Please refer to a SSH documentation or book to see how to create a pair of SSH keys, the short version is <code bash>ssh-keygen -t dsa</code>.
    <pre>
    Host *.kde.org
            User USERNAME
            IdentityFile ~/.ssh/id_dsa
    </pre>


    You '''need''' a SSH public key. Don't send us a GPG (OpenPGP) key, that is completely unrelated!
    The linked IdentityFile must belong to the public key you send in when applying for the SVN account. But it is ''not'' the public key (<tt>*.pub</tt>).


    The password in the sense of this documentation is the '''public key''' that you are creating. The public key can usually be found at {{path|$HOME/.ssh/id_dsa.pub}}.  
    Note that git requires no such configuration.


    Do '''not''' email the private key at {{path|$HOME/.ssh/id_dsa}}, it has to remain a secret.
    == Apply for an account ==


    You should also set up <tt>ssh-agent</tt> so you do not have to type the password every time. There are several tutorials available explaining how to do this, for example [http://mah.everybody.org/docs/ssh this one].
    Now you are ready to apply for for a KDE Contributor account. Go to [https://identity.kde.org/ https://identity.kde.org/] and create an account if you don't have one already. Then visit the [https://identity.kde.org/index.php?r=developerApplication Developer Application page]
     
    {{tip|
    If you want to use SVN with SSH with another user than the one who created the keys, you need to copy <tt>$HOME/.ssh/id_dsa.pub</tt> and <tt>$HOME/.ssh/id_dsa</tt> to the other user's <tt>$HOME/.ssh</tt> directory.
     
    You should probably also backup those files.
    }}


    == Preparing The Email ==
    When you register on identity.kde.org, you will need to enter your name and an e-mail address, which has to be your own (a normal address or a KDE Mail address). Of course, do not forget that '''this email address becomes public''' (at least by [http://websvn.kde.org WebSVN]) so you will unfortunately get some spam as a result.


    Now that you have a password, you need a username for your KDE SVN account. Normally your family name is used. Let us call it ''username'' for this example.
    Also note that this email address should be the same one that you use on [http://bugs.kde.org bugs.kde.org]. If you don't have an account in [http://bugs.kde.org bugs.kde.org], please create one so that it can be given usual developer rights. Closing bug reports with keywords in commit comments only works if the email address associated with your KDE Contributor account and [http://bugs.kde.org bugs.kde.org] accounts match.


    You can propose something else if you want. But be careful that one day, you could ask for a KDE email address and this would be the base for your address. For example: <tt>[email protected]</tt>. KDE email addresses are not granted so easily anymore, as too many people have ranted with a KDE address and other people thought that it was the official position of the KDE Team. In the meantime, [http://www.kdemail.net KDE Mail] was created for if you need a permanent address.
    After that, you must choose a username for your KDE Contributor account between the suggestions presented to you. Please notice it is not possible to propose something else such as a nickname, as the username must be as close as possible to someone's real name.


    So now you have a username and a password. Now the email address: you have to use your own (be it a normal address or a KDE Mail address). Of course, do not forget that this '''email address becomes public''' (at least by [http://websvn.kde.org WebSVN]) so you will unfortunately get spam.
    If you ask for a KDE email address one day, this will be the base for your address. For example: <tt>username@kde.org</tt>. (Note, however, that KDE email addresses are not granted so easily anymore, as too many people have ranted with a KDE address and other people thought that it was the official position of the KDE Team. In the meantime, [http://www.kdemail.net KDE Mail] was created for if you need a permanent address.)


    Also note that this email address should be the same one that you use on [http://bugs.kde.org bugs.kde.org]. If you don't have one, please create it so that it can be given usual developer rights. Closing bug reports with keywords in commit comments only works if the email address of your Subversion and [http://bugs.kde.org bugs.kde.org] accounts match.
    When applying for developer access you have to provide your public SSH key. This key will be added to your profile. You can always add more keys or delete keys you don't use anymore from your profile page on identity.kde.org.


    Now you are ready to send your email to ask for a KDE SVN account.
    The form also holds a field ''Why do you want an account?'', where you can explain what you want to do with your future KDE SVN account, like for example developing a certain application, making documentations or being the team leader of a translation.


    So make sure the following is in your requesting mail:
    Also note that the form will ask you who has encouraged you to apply. He or she will also get an email to verify your request.
    * your full name (it might already be in the email header)
    * your email address
    * the account name (usually the family name)
    * the encoded password '''or''' SSH public key depending on the chosen protocol
    * a concise justification for needing a SVN account


    Hint: the ''concise justification'' means mainly what do you want to do with your future KDE SVN account, like for examples developing a certain application, making documentations, being team leader of a translation...
    == Updating An Existing Account ==


    Now please check again that you have done it all right. (Remember people will receive your email. They get hundreds of emails per day, so help them by doing it correctly if possible). Then send your email to [mailto:sysadmin@kde.org KDE's sysadmins].
    If you already have a KDE Contributor account but want to update the ssh key, you should go to [https://identity.kde.org/ identity.kde.org] and change the keys in your profile.


    == And Now? ==
    == And Now? ==


    After having sent the email, you have to wait for the answer (typically the next working day (Monday to Friday), Central European day time (UTC+1 in winter, UTC+2 in summer).
    After having sent the form and clicking the link in the email, you have to wait for the answer (typically within two or three days).


    Once you have confirmation that your account has been created, you need to adapt your local copy to the new server. See the [[Contribute/First Steps with your KDE SVN Account|next tutorial]] for your first steps with your new account.
    Once you have confirmation that your account has been created, you need to adapt your local copy to the new server. See the [[Contribute/First Steps with your KDE SVN Account|next tutorial]] for your first steps with your new account.


    Please send your geographical location (what country are you in?) to Danny Allen <dannya at kde dot org> so that the commit digest can accurately reflect who is working where.
    Please add your geographical location (what country are you in?) and other details at the [http://commit-digest.org/data/ Commit Digest data page] so that the Commit Digest can accurately reflect who is working where.

    Revision as of 19:01, 12 July 2012

    This tutorial is about how to apply for a commit account for KDE so that you may change files (code, documentation files, art, etc.) in KDE's git and svn repositories.

    The short answer: how to get read-write access

    KDE Contributor accounts are managed through KDE Identity. Go to https://identity.kde.org/ and create an account if you don't have one already. Then visit the Developer Application page to apply.

    KDE Repositories

    To have write access to KDE's git and SVN servers, you have to use KDE's main git and SVN server. Anonymous git and SVN uses mirrors of this server. Note that SVN does not allow you to read from one server and write to another, while git does. For a tutorial on using KDE's git services, see this tutorial.

    To be able to write to files stored in KDE's git and SVN repositories, you need an account. An account is made up of a username (normally your family name), a password, an ssh key and an email address. The username is for getting in, the password and ssh keys are for authenticating and the email address for knowing who to contact if another developer wants to contact the account holder.

    A KDE commit account allows you to write to nearly anywhere in the KDE repositories with a few exceptions, such as the www module. (Of course, exceptions can be made for this as well.)

    Note: you can see the accounts in kde-common/accounts. That is the list of all accounts. Yes, the account list is public, for example on WebSVN.

    Who Can Apply For a KDE Contributor Account?

    Normally, any developer who has done some work on projects hosted by KDE can apply for a KDE Contributor account.

    Translators should get approval from their team leader so that they can organize how the work is being done in his/her team. Please mention the approval from the team leader when requesting the account.

    Please also read the KDE commit policy. You must accept these rules when using your future KDE Contributor account. Please also familiarize yourself with the KDE Code of Conduct which describes the social foundations within KDE.

    Also please apply for an account only if you think that you will work on KDE for a somewhat longer time. If you know that you will only work for a couple of weeks and then never again, please consider not applying for a KDE Contributor account but instead continue to send patches directly to developers.

    The limitations are not there to exclude anyone - they are there to ensure that the maintenance of accounts remains reasonable.

    Of course, to be clear: the KDE's sysadmins have the last word about whether or not to create a KDE SVN account for somebody.

    SSH

    You need an SSH public key in order to access your KDE Contributor account. If you already have one, you can skip the next subsection and go to Setting up the SVN+SSH protocol.

    Generating the SSH keys

    To be able to use your KDE Contributor account with SSH, you need a SSH public key. Please notice that it is not a GPG (OpenPGP) key, which is completely unrelated!

    The password in the sense of this documentation is the public key that you are creating.

    For more information on how to create a pair of SSH keys, please refer to a SSH documentation or book.

    The command to create a pair of keys is ssh-keygen and it requires the type of key you will create, either DSA or RSA - both are fine.

    To create a new pair of keys, use

    ssh-keygen -t dsa
    

    or

    ssh-keygen -t rsa
    

    There is also a type called RSA1 which was used in version 1 of the SSH protocol. See the ssh documentation for more details.

    You can then accept the default filename for your key (either $HOME/.ssh/id_dsa or $HOME/.ssh/id_rsa, depending on the type of key you have chosen). After that, a passphrase is asked. It is recommended that you do not leave it blank.

    Now that you are finished generating your key pair, you will have two files: a private key and a public key. If you have accepted the default filename, they will be respectively $HOME/.ssh/id_dsa and $HOME/.ssh/id_dsa.pub or $HOME/.ssh/id_rsa and $HOME/.ssh/id_rsa.pub, depending on the type of key you have specified.

    The private key must remain secret, do not publish it to anyone under any circumstance.

    The public key can be published and shall be sent when you are applying for a KDE SVN account.

    You should also set up ssh-agent so you do not have to type the password every time you connect via SSH. There are several tutorials available explaining how to do this, for example this one. Keychain is a program that makes this task easier.

    Note: if you already have an ssh key, you can just use the existing key instead of creating a new one.

    Tip
    If you want to use SVN with SSH with another user than the one who created the keys, you need to copy $HOME/.ssh/id_dsa.pub and $HOME/.ssh/id_dsa or $HOME/.ssh/id_rsa.pub and $HOME/.ssh/id_rsa to the other user's $HOME/.ssh directory. You should probably also backup those files.


    Setting up the SVN+SSH protocol

    Once you created your key, you'll have to tell SSH that this one should be used for all connections to KDE sites. For SVN access, add the following lines to the ~/.ssh/config file. Replace USERNAME with yours.

    Host *.kde.org
            User USERNAME
            IdentityFile ~/.ssh/id_dsa
    

    The linked IdentityFile must belong to the public key you send in when applying for the SVN account. But it is not the public key (*.pub).

    Note that git requires no such configuration.

    Apply for an account

    Now you are ready to apply for for a KDE Contributor account. Go to https://identity.kde.org/ and create an account if you don't have one already. Then visit the Developer Application page

    When you register on identity.kde.org, you will need to enter your name and an e-mail address, which has to be your own (a normal address or a KDE Mail address). Of course, do not forget that this email address becomes public (at least by WebSVN) so you will unfortunately get some spam as a result.

    Also note that this email address should be the same one that you use on bugs.kde.org. If you don't have an account in bugs.kde.org, please create one so that it can be given usual developer rights. Closing bug reports with keywords in commit comments only works if the email address associated with your KDE Contributor account and bugs.kde.org accounts match.

    After that, you must choose a username for your KDE Contributor account between the suggestions presented to you. Please notice it is not possible to propose something else such as a nickname, as the username must be as close as possible to someone's real name.

    If you ask for a KDE email address one day, this will be the base for your address. For example: [email protected]. (Note, however, that KDE email addresses are not granted so easily anymore, as too many people have ranted with a KDE address and other people thought that it was the official position of the KDE Team. In the meantime, KDE Mail was created for if you need a permanent address.)

    When applying for developer access you have to provide your public SSH key. This key will be added to your profile. You can always add more keys or delete keys you don't use anymore from your profile page on identity.kde.org.

    The form also holds a field Why do you want an account?, where you can explain what you want to do with your future KDE SVN account, like for example developing a certain application, making documentations or being the team leader of a translation.

    Also note that the form will ask you who has encouraged you to apply. He or she will also get an email to verify your request.

    Updating An Existing Account

    If you already have a KDE Contributor account but want to update the ssh key, you should go to identity.kde.org and change the keys in your profile.

    And Now?

    After having sent the form and clicking the link in the email, you have to wait for the answer (typically within two or three days).

    Once you have confirmation that your account has been created, you need to adapt your local copy to the new server. See the next tutorial for your first steps with your new account.

    Please add your geographical location (what country are you in?) and other details at the Commit Digest data page so that the Commit Digest can accurately reflect who is working where.