X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=developers-reference.sgml;h=ad1efc628674067e6b2127b2539f61385c492d72;hb=17b5ee7c8f6747aa5776d5545f28f62e5b1ac0b3;hp=f45f7f67be44dd045559eecd800145dea077b56a;hpb=62dfc977a8d09fda8b2ea98f42ef9dcc8aafae01;p=developers-reference.git diff --git a/developers-reference.sgml b/developers-reference.sgml index f45f7f6..ad1efc6 100644 --- a/developers-reference.sgml +++ b/developers-reference.sgml @@ -5,7 +5,7 @@ %commondata; - + @@ -112,71 +112,68 @@ id="mentors"> for details. The IRC channel #debian on the Linux People IRC network (e.g., irc.debian.org) can also be helpful. +

+When you know how you want to contribute to the Debian Project, you +should get in contact with existing Debian maintainers who are working +on similar tasks. That way, you can learn from experienced developers. +For example, if you are interested in packaging existing software for +Debian you should try to get a sponsor. A sponsor will work together +with you on your package and upload it to the Debian archive once he +is happy with the packaging work you have done. You can find a sponsor +by mailing the &email-debian-mentors; mailing list, describing your +package and yourself and asking for a sponsor (see +for more information on sponsoring). On the other hand, if you are +interested in porting Debian to alternative architectures or kernels +you can subscribe to port specific mailing lists and ask there how to +get started. Finally, if you are interested in documentation or +Quality Assurance (QA) work you can join maintainers already working on +these tasks and submit patches and improvements. + Registering as a Debian developer

Before you decide to register with the Debian Project, you will need -to read the . Registering as a developer means that you agree with and +to read all the information available at the . It describes exactly the preparations +you have to do before you can register to become a Debian developer. + +For example, before you apply, you have to to read the +. +Registering as a developer means that you agree with and pledge to uphold the Debian Social Contract; it is very important that maintainers are in accord with the essential ideas behind Debian GNU/Linux. Reading the would also be a good idea.

The process of registering as a developer is a process of verifying -your identity and intentions. As the number of people working on -Debian GNU/Linux has grown to over &number-of-maintainers; people and -our systems are used in several very important places we have to be -careful about being compromised. Therefore, we need to verify new -maintainers before we can give them accounts on our servers and -letting them upload packages. -

-Registration requires that the following information be sent in -appropriate steps described at -after the initial contact to &email-new-maintainer: +your identity and intentions, and checking your technical skills. +As the number of people working on Debian has grown to over +&number-of-maintainers; people and our systems are used in several +very important places we have to be careful about being compromised. +Therefore, we need to verify new maintainers before we can give them +accounts on our servers and let them upload packages. +

+Before you actually register you should have shown that you can do +competent work and will be a good contributor. You can show this by +submitting patches through the Bug Tracking System or having a package +sponsored by an existing maintainer for a while. Also, we expect that +contributors are interested in the whole project and not just in +maintaining their own packages. If you can help other maintainers by +providing further information on a bug or even a patch, then do so! +

+Registration requires that you are familiar with Debian's philosophy +and technical documentation. Furthermore, you need a GPG key which +has been signed by an existing Debian maintainer. If your GPG key +is not signed yet, you should try to meet a Debian maintainer in +person to get your key signed. There's a which should help you find +a maintainer close to you (If you cannot find a Debian maintainer +close to you, there's an alternative way to pass the ID check. You +can send in a photo ID signed with your GPG key. Having your GPG +key signed is the preferred way, however. See the + for more +information about these two options.) - - -Your name. - -Your preferred login name on master (eight characters or -less), as well as the email address at which you'd prefer to be -subscribed to &email-debian-private; (typically this will be either -your primary mail address or your new debian.org address). - -A phone number where we can call you. Remember that the new -maintainer team usually calls during evening hours to save on long -distance tolls. Please do not give a work number, unless you are -generally there in the evening. - -A statement of intention, that is, what package(s) you intend to work -on, which Debian port you will be assisting, or how you intend to -contribute to Debian. - -A statement that you have read and agree to uphold the . - -Some mechanism by which we can verify your real-life identity. For -example, any of the following mechanisms would suffice: - - -An OpenPGP key signed by any well-known signature, such as: - - -Any current Debian developer you have met in real life. - -Any formal certification service (such as Verisign, etc.) that -verifies your identity. A certification that verifies your email -address, and not your identity, is not sufficient. - - -Alternatively, you may identify yourself with a scanned (or physically -mailed) copy of any formal documents certifying your identity (such as -a birth certificate, national ID card, U.S. Driver's License, etc.). -If emailed, please sign the mail with your OpenPGP key. - -

If you do not have an OpenPGP key yet, generate one. Every developer needs a OpenPGP key in order to sign and verify package uploads. You @@ -200,13 +197,6 @@ much less secure. Your key must be signed with at least your own user ID; this prevents user ID tampering. gpg does this automatically.

-Also remember that one of the names on your key must match the email -address you list as the official maintainer for your packages. For -instance, I set the maintainer of the -developers-reference package to ``Adam Di Carlo -<aph@debian.org>''; therefore, one of the user IDs on my key is -that same value, ``Adam Di Carlo <aph@debian.org>''. -

If your public key isn't on public key servers such as &pgp-keyserv;, please read the documentation available locally in &file-keyservs;. That document contains instructions on how to put your key on the @@ -227,28 +217,28 @@ cryptography qua cryptography in any manner. If you live in a country where use of cryptography even for authentication is forbidden then please contact us so we can make special arrangements.

-Once you have all your information ready, and your public key is -available on public key servers, send a message to -&email-new-maintainer; to register as an offical Debian developer so -that you will be able to upload your packages. This message must -contain your name and your valid e-mail address. All the information -discussed above is required after your Application Manager is -assigned. Application Manager is your agent in the registration -process, and you can always ask him about the status of your -application. You can check the as well. +When you are ready to apply, you need an existing Debian maintainer +to verify your application (an advocate). After you have +contributed to the Project and when you want to apply to become a +registered developer, an existing developer with whom you +have worked over the past months has to express his belief that you +can contribute to the Project successfully. +

+When you have found an advocate, have your GPG key signed and have +already contributed to Debian for a while, you're ready to apply. +You can simply register on our . After you have signed up, your advocate +has to confirm your application. When your advocate has completed +this step you will be assigned an Application Manager who will +go with you through the necessary steps of the New Maintainer process. +You can always check your status on the .

For more details, please consult at the Debian web site. -

-Once this information is received and processed, you should be -contacted with information about your new Debian maintainer account. -If you don't hear anything within a month, please send a followup -message asking if your original application was received. Do -not re-send your original application, that will just confuse -the New Maintainer Group. Please be patient, especially near release -points; mistakes do occasionally happen, and people do sometimes run -out of volunteer time. +Maintainer's Corner"> at the Debian web site. Make sure that you +are familiar with the necessary steps of the New Maintainer process +before actually applying. If you are prepared well, you can save +a lot of timer later on. Debian Mentors @@ -275,7 +265,7 @@ preferred shell, your IRC nickname, your web page and the email that you're using as alias for your debian.org email. Most of the information is not accessible to the public, for more details about this database, please read its online documentation that you can find -here : . +at .

You have to keep the information available there up to date. @@ -309,10 +299,14 @@ you're on vacation. In order to inform the other developers, there's two things that you should do. First send a mail to &email-debian-private; giving the period of time when you will be on vacation. You can also give some special instructions on what to -do if any problem occurs. Next you should update your information +do if any problem occurs. Be aware that some people don't care for vacation +notices and don't want to read them; you should prepend "[VAC] " to the +subject of your message so that it can be easily filtered. +

+Next you should update your information available in the Debian LDAP database and mark yourself as ``on vacation'' (this information is only accessible to debian developers). Don't forget -to remove the ``on vacation'' flag when you come back. +to remove the ``on vacation'' flag when you come back! Coordination With Upstream Developers

@@ -364,6 +358,22 @@ id="orphaning">). Alternatively, you may ask the help of other people in order to catch up the backlog of bugs that you have (you can ask for help on &email-debian-qa; or &email-debian-devel;). + Dealing with unreachable maintainers +

+If you notice that a package is lacking maintenance, you should +make sure the maintainer is active and will continue to work on +their packages. Try contacting them yourself. +

+If you do not get a reply after a few weeks you should collect all +useful information about this maintainer. Start by logging in to +the +and doing a full search to check whether the maintainer is on vacation +and when they were last seen. Collect any important package names +they maintain and any Release Critical bugs filled against them. +

+Send all this information to &email-debian-qa;, in order to let the +QA people do whatever is needed. + Retiring Gracefully

If you choose to leave the Debian project, you should make sure you do @@ -784,41 +794,42 @@ shows up for a couple of months from time to time. Experimental -

The experimental distribution is a specialty distribution. It is not a full distribution in the same sense as `stable' and `unstable' are. Instead, it is meant to be a temporary staging area for highly experimental software where there's a good chance that the -software could break your system. Users who download and install +software could break your system, or software that's just too unstable +even for the unstable distribution (but there is a reason to +package it nevertheless). Users who download and install packages from experimental are expected to have been duly warned. In short, all bets are off for the experimental distribution.

-Developers should be very selective in the use of the -experimental distribution. Even if a package is highly -unstable, it could still go into unstable; just state a -few warnings in the description. However, if there is a chance that -the software could do grave damage to a system, it might be better to -put it into experimental. -

+If there is a chance that the software could do grave damage to a system, +it is likely to be better to put it into experimental. For instance, an experimental compressed file system should probably go -into experimental. A new, beta, version of some software -which uses completely different configuration might go into -experimental at the maintainer's discretion. New software -which isn't likely to damage your system can go into -unstable. If you are working on an incompatible or complex -upgrade situation, you can also use experimental as a staging -area, so that testers can get early access. -

-However, using experimental as a personal staging area is not -always the best idea, especially with transient packages. For -example, you cannot delete packages which have been uploaded to -experimental on your own; that must be done by the Debian -archive maintainers. An alternative is to use your personal web space -on klecker.debian.org, a.k.a. people.debian.org. +into experimental. +

+Whenever there is a new upstream version of a package that introduces new +features but breaks a lot of old ones, it should either not be uploaded, or +be uploaded to experimental. A new, beta, version of some software +which uses completely different configuration can go into +experimental, at the maintainer's discretion. If you are working +on an incompatible or complex upgrade situation, you can also use +experimental as a staging area, so that testers can get early +access. +

+Some experimental software can still go into unstable, with a few +warnings in the description, but that isn't recommended because packages +from unstable are expected to propagate to testing and +thus to stable. +

+New software which isn't likely to damage your system can go directly into +unstable. +

+An alternative to experimental is to use your personal web space +on people.debian.org (klecker.debian.org). Release code names @@ -882,8 +893,8 @@ You should set the subject of the bug to ``ITP: foo -- short description'', substituting the name of the new package for foo. The severity of the bug report must be set to wishlist. If you feel it's necessary, send a copy to -&email-debian-devel; by putting the address in the X-Debbugs-CC: header -of the message (no, don't use CC:, because that way the message's subject +&email-debian-devel; by putting the address in the X-Debbugs-CC: header +of the message (no, don't use CC:, because that way the message's subject won't indicate the bug number).

Please include a Closes: bug#nnnnn entry on the @@ -914,11 +925,38 @@ better feel of what is going on, and what is new, in the project. + Checking the package prior to upload +

+Before you upload your package, you should do basic testing on it. At +a minimum, you should try the following activities (you'll need to +have an older version of the same Debian package around): + + +Install the package and make sure the software works, or upgrade the +package from an older version to your new version if a Debian package +for it already exists. + +Run lintian over the package. You can run +lintian as follows: lintian -v +package-version.changes. This will check the source +package as well as the binary package. If you don't understand the +output that lintian generates, try adding the -i +switch, which will cause lintian to output a very verbose +description of the problem. +

+Normally, a package should not be uploaded if it causes lintian +to emit errors (they will start with E). +

+For more information on lintian, see . + +Downgrade the package to the previous version (if one exists) — this +tests the postrm and prerm scripts. + +Remove the package, then reinstall it. + - Uploading a package - - Generating the changes file + Generating the changes file

When a package is uploaded to the Debian FTP archive, it must be accompanied by a .changes file, which gives directions to the @@ -933,29 +971,10 @@ All of these fields are mandatory for a Debian upload. See the list of control fields in the for the contents of these fields. You can close bugs automatically using the Description field, see . Only the Distribution field is -discussed in this section, since it relates to the archive maintenance -policies. +id="upload-bugfix">. - Picking a distribution -

-Notably, the Distribution field, which originates from the -debian/changelog file, indicates which distribution the -package is intended for. There are four possible values for this -field: `stable', `unstable', `frozen', or `experimental'; these values -can also be combined. Or, if Debian has been frozen, and you -want to get a bug-fix release into frozen, you would set the -distribution to `frozen unstable'. (See for -more information on when to upload to frozen.) Note that it -never makes sense to combine the experimental distribution with -anything else. -

-You should avoid combining `stable' with others because of potential -problems with library dependencies (for your package and for the package -built by the build daemons for other architecture). -See for more information on when and how to -upload to stable. + The original source tarball

The first time a version is uploaded which corresponds to a particular upstream version, the original source tar file should be uploaded and @@ -978,6 +997,32 @@ is some reason why this is not the case, the new version of the original source should be uploaded, possibly by using the -sa flag. + + Picking a distribution +

+The Distribution field, which originates from the first line of +the debian/changelog file, indicates which distribution the +package is intended for. +

+There are four possible values for this field: `stable', `unstable', +`frozen', and `experimental'. Normally, packages are uploaded into +unstable. +

+These values can be combined, but only a few combinations make sense. +If Debian has been frozen, and you want to get a bug-fix release into +frozen, you would set the distribution to `frozen unstable'. +See for more information on uploading to +frozen. +

+You should avoid combining `stable' with others because of potential +problems with library dependencies (for your package and for the package +built by the build daemons for other architecture). +See for more information on when and how to +upload to stable. +

+It never makes sense to combine the experimental distribution +with anything else. + Uploading to frozen

The Debian freeze is a crucial time for Debian. It is our chance to @@ -1057,36 +1102,7 @@ inclusion. - Checking the package prior to upload -

-Before you upload your package, you should do basic testing on it. At -a minimum, you should try the following activities (you'll need to -have an older version of the same Debian package around): - - -Install the package and make sure the software works, or upgrade the -package from an older version to your new version if a Debian package -for it already exists. - -Run lintian over the package. You can run -lintian as follows: lintian -v -package-version.changes. This will check the source -package as well as the binary package. If you don't understand the -output that lintian generates, try adding the -i -switch, which will cause lintian to output a very verbose -description of the problem. -

-Normally, a package should not be uploaded if it causes lintian -to emit errors (they will start with E). -

-For more information on lintian, see . - -Downgrade the package to the previous version (if one exists) — this -tests the postrm and prerm scripts. - -Remove the package, then reinstall it. - - + Uploading a package Uploading to ftp-master

@@ -1238,12 +1254,6 @@ package is released with Distribution: set to `unstable', `experimental', or `frozen' (when present), the announcement will be posted to &email-debian-devel-changes; instead.

-On occasion, it is necessary to upload a package to both the -stable and unstable distributions; this is done by -putting both distributions in the Distribution: line. In -such a case the upload announcement will go to both of the above -mailing lists. -

The dupload program is clever enough to determine where the announcement should go, and will automatically mail the announcement to the right list. See . @@ -2040,7 +2050,7 @@ list. This chapter describes procedures that existing Debian developers should follow when it comes to dealing with wannabe developers. - Sponsoring packages + Sponsoring packages

Sponsoring a package means uploading a package for a maintainer who is not able to do it on their own, a new maintainer applicant. Sponsoring a package