<?xml version="1.0"?>
<!DOCTYPE webpage
PUBLIC "-//NetBSD//DTD Website-based NetBSD Extension//EN"
"http://www.NetBSD.org/XML/htdocs/lang/share/xml/website-netbsd.dtd">

<webpage id="developers-releng-pullups">
  <config param="desc"
  value="NetBSD Release Engineering: Pull-up Requests" />
  <config param="cvstag"
  value="$NetBSD: pullups.xml,v 1.14 2012/03/21 15:06:30 jakllsch Exp $" />
  <config param="rcsdate" value="$Date: 2012/03/21 15:06:30 $" />
  <head>
<!-- Copyright (c) 1994-2006
        The NetBSD Foundation, Inc.  ALL RIGHTS RESERVED. -->
    <title>NetBSD Release Engineering: Pull-up Requests</title>
  </head>
  <sect1 role="toc">
    <sect2 id="list-toc">
      <sect3 id="general">
        <title>General Information</title>
        <para>Release branch pull-up requests are the mechanism by
        which developers request changes to be pulled up to a
        release branch after the source tree has been branched for
        release, and by which they request that changes be pulled
        up for subsequent patch releases. These requests are sent
        to us, the release engineering team, so that the changes to
        the release branch can be carefully monitored, and quality
        can be maintained.</para>
        <para>Pull-up requests are sent to a
        branch-specific email address.</para>
        <itemizedlist>
          <listitem>NetBSD 6 pull-ups go to 
          <email>pullup-6</email>
          </listitem>
          <listitem>NetBSD 5 pull-ups go to 
          <email>pullup-5</email>
          </listitem>
          <listitem>NetBSD 4 pull-ups go to 
          <email>pullup-4</email>
          </listitem>
          <listitem>NetBSD pkgsrc pull-ups go to 
          <email>pullup-pkgsrc</email>
          </listitem>
        </itemizedlist>
        <para>Policy issues or general questions for the Release
        Engineering team can go to 
        <email>releng</email>
        .</para>
        <para>Specific release issues/concerns should go to the
        appropriate list:</para>
        <itemizedlist>
          <listitem>NetBSD 5 goes to 
          <email>releng-5</email>
          </listitem>
          <listitem>NetBSD 4 goes to 
          <email>releng-4</email>
          </listitem>
          <listitem>NetBSD pkgsrc goes to 
          <email>releng-pkgsrc</email>
          </listitem>
        </itemizedlist>
        <para>This page gives guidelines for pull-up requests.
        Explained this way, it probably seems like pull-up requests
        are a lot of work. In a sense, they are. Before you submit
        a pull-up request, you should have verified it and tested
        it, and you should have a good understanding of what is
        changing. However, that's work you've already done before
        you should even think about submitting the request. The
        only additional work is documenting that information for
        us. There's no point in making us figure all of that
        information from scratch, when you already know it and can
        easily pass it along to us.</para>
      </sect3>
      <sect3 id="requirements">
        <title>Pull-up Requirements</title>
        <itemizedlist>
          <listitem>Pull-up requests must always be sent by a
          developer who is responsible for checking if the change
          is eligible for an update release.</listitem>
          <listitem>Pull-up requests should be tested in the
          release branch 
          <emphasis>before</emphasis>
          being submitted to the release engineering team. It's not
          releng's responsibility to sanity check pull-up requests
          (though sometimes we will).</listitem>
          <listitem>Pull-up requests to multiple release branches
          should be sent in separate email messages to the
          appropriate addresses.</listitem>
          <listitem>Do <emphasis role="bold">not</emphasis> use resending
          (also known as bouncing) to submit a pullup request. Either use
          forwarding or write a new e-mail.</listitem>
          <listitem>Pull-up requests should contain accepted
          solutions to the problems that they address. That is, if
          a change was just made to the current NetBSD sources, and
          is being debated, don't submit a pull-up request until
          resolution has been reached.</listitem>
          <listitem>Multiple files can be modified by a single
          request, but each request should address a single
          problem. Independent requests should be submitted in
          separate mail messages. That makes our bookkeeping job
          much easier.</listitem>
          <listitem>Pull-up requests must contain the following
          information: 
          <itemizedlist>
            <listitem>A description of the problem fixed by the
            request (for the commit messages and, if a patch
            release is being generated, for the patch release's
            CHANGES file), including a list of any Problem Reports
            addressed by the request.</listitem>
            <listitem>For each file to be patched, either; 
            <itemizedlist>
              <listitem>
                <para>A 
                <emphasis role="bold">full</emphasis>
                copy of the email message containing the commit
                message that was sent to 
                <email>source-changes</email>
                . Use the mail archives if you no longer have a
                copy of the mail. Do not quote or indent the message.</para>
                <para>If multiple revisions of a file are to be
                pulled up, include a 
                <emphasis role="bold">full</emphasis>
                copy of each of the emails sent to 
                <email>source-changes</email>
                . The changes in the specified revisions will be
                pulled up to the release branch.</para>
                <para>Please do not submit requests like 
                <quote>everything up to revision N,</quote>
                or 
                <quote>make it match -current.</quote>
                Requests like this are more difficult because
                releng needs to figure out the starting revision
                for the pull-up (for the commit message). That can
                be complicated by other revisions having been
                pulled up, for instance. It's better to have the
                person requesting the pull-up do that, because they
                already know what they want pulled up. Also, in the
                latter example, there's the possibility that
                someone will commit something to the file between
                the time that the request is made and the time that
                it is processed, which may lead to
                insufficiently-tested changes being pulled
                up.</para>
                <para>If there are conflicts involving anything
                other than RCS IDs the pull-up request will be
                rejected and you will be asked to resubmit
                it.</para>
              </listitem>
              <listitem>
                <para>A patch file to be applied to the source
                tree. (If the patch just implements pull-ups of
                revisions that were otherwise prevented by conflicts,
                commit emails of those revisions should be included as
                in the previous case.)</para>
                <para>The patch file will be applied with patch. If
                any special instructions are necessary to apply the
                patch, they should be included in the pull-up
                request.</para>
                <para>If there are any conflicts at all, the
                pull-up request will be rejected and you will be
                asked to resubmit it.</para>
              </listitem>
            </itemizedlist>
            In general, it's best if all of the file and revision
            information is placed together, near the beginning of
            the pull-up request. It shouldn't be necessary to dig
            through a huge patch to figure out what steps to take.
            Additionally, if a patch really is just the difference
            between two revisions and applies cleanly, that should
            be noted (and a patch to do the same thing should be
            omitted).</listitem>
          </itemizedlist>
          </listitem>
        </itemizedlist>
        <para>With that said, it is also true that the release
        engineering team will do their best to be accommodating in
        accepting minor variations of the above. Do however note
        that the release engineering team will typically have their
        hands more than full enough during the release cycle, so
        please do not deviate too far afield from the requirements
        set forth above.</para>
      </sect3>
      <sect3 id="examples">
        <title>Examples of Good Pull-up Requests</title>
        <para>Here is an example of a good pull-up request:</para>
<programlisting>
From: Matthias Scheler &lt;tron@NetBSD.org&gt;
To: "NetBSD 1.6 Pullup Requests" &lt;pullup-1-6@NetBSD.org&gt;
Cc: Jun-ichiro itojun Hagino &lt;itojun@NetBSD.org&gt;
Subject: Urgent sendmail security fix

	Hello,

"sendmail" needs a security fix. Please pullup the following two
changes (more instructions below):

--------------------------------------------------------------------------

Module Name:	src
Committed By:	itojun
Date:		Wed Sep 17 14:16:23 UTC 2003

Modified Files:
	src/gnu/dist/sendmail/sendmail: parseaddr.c

Log Message:
fix prescan() bug (potentially remotely exploitable), CAN-2003-0694


To generate a diff of this commit:
cvs rdiff -r1.12 -r1.13 src/gnu/dist/sendmail/sendmail/parseaddr.c

--------------------------------------------------------------------------

Module Name:	src
Committed By:	tron
Date:		Wed Sep 17 20:23:02 UTC 2003

Modified Files:
	src/gnu/dist/sendmail/sendmail: version.c

Log Message:
Bump version number after parse8.359.2.8 patch has been applied.


To generate a diff of this commit:
cvs rdiff -r1.13 -r1.14 src/gnu/dist/sendmail/sendmail/version.c

--------------------------------------------------------------------------

The change to "version.c" will cause a conflict. I've therefore attached
a patch for this file.

	Thanks in advance

</programlisting>

        <para>In detail:</para>
        <itemizedlist>
          <listitem>The subject gives a short description of the
          purpose and the urgency.</listitem>
          <listitem>It includes the commit message for both
          changes.</listitem>
          <listitem>It contains a patch for the revision which
          cannot be applied directly.</listitem>
          <listitem>The original committer received a copy of the
          pull-up request.</listitem>
        </itemizedlist>
      </sect3>
      <sect3 id="security-fixes">
        <title>Pull-up Requests for security fixes</title>
        <para>Pull-up requests for security fixes should have the
        keyword 
        <emphasis>security</emphasis>
        in their subject line so that release engineering can
        easily recognize them. Depending on the urgency it might
        also be a good idea to try to contact one or more release
        engineers directly and point them to the ticket.</para>
      </sect3>
      <sect3 id="pkgsrc-releng">
        <title>Special issues for pkgsrc releng</title>
        <para>The usual pullup procedures are: 
        <itemizedlist>
          <listitem>Only security fixes pulled up</listitem>
          <listitem>Platform-specific fixes might be ok, but are
          clear second class citizens to the security fixes (i.e.,
          security fixes should be pulled up with higher
          priority)</listitem>
          <listitem>Noone pulls up their own request</listitem>
          <listitem>In case of doubt, ask 
          <email>pkgsrc-pmc</email>
          </listitem>
        </itemizedlist>
        </para>
      </sect3>
    </sect2>
  </sect1>
  <parentsec url="../" text="NetBSD Developer Documentation" />
</webpage>


