i965: Check calloc return value in gather_statistics_results()
[mesa.git] / docs / devinfo.html
index 06322d1ce4d84a61269f577e5786b521c063d716..a947b0d39b210b662ee62839d8bcb4e6145d6a43 100644 (file)
@@ -7,10 +7,17 @@
 </head>
 <body>
 
+<div class="header">
+  <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="contents.html"></iframe>
+<div class="content">
+
 <h1>Development Notes</h1>
 
 
-<h2>Adding Extentions</h2>
+<h2>Adding Extensions</h2>
 
 <p>
 To add a new GL extension to Mesa you have to do at least the following.
@@ -29,7 +36,7 @@ To add a new GL extension to Mesa you have to do at least the following.
    </pre>
 </li>
 <li>
-   In the src/mesa/glapi/ directory, add the new extension functions and
+   In the src/mapi/glapi/gen/ directory, add the new extension functions and
    enums to the gl_API.xml file.
    Then, a bunch of source files must be regenerated by executing the
    corresponding Python scripts.
@@ -49,11 +56,16 @@ To add a new GL extension to Mesa you have to do at least the following.
    If the new extension adds new GL state, the functions in get.c, enable.c
    and attrib.c will most likely require new code.
 </li>
+<li>
+   The dispatch tests check_table.cpp and dispatch_sanity.cpp
+   should be updated with details about the new extensions functions. These
+   tests are run using 'make check'
+</li>
 </ul>
 
 
 
-<H2>Coding Style</H2>
+<h2>Coding Style</h2>
 
 <p>
 Mesa's code style has changed over the years.  Here's the latest.
@@ -148,62 +160,119 @@ of <tt>bool</tt>, <tt>true</tt>, and
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
 </p>
 
+<h2>Submitting patches</h2>
 
-<H2>Making a New Mesa Release</H2>
+<p>
+You should always run the Mesa Testsuite before submitting patches.
+The Testsuite can be run using the 'make check' command. All tests
+must pass before patches will be accepted, this may mean you have
+to update the tests themselves.
+</p>
 
 <p>
-These are the instructions for making a new Mesa release.
+Patches should be sent to the Mesa mailing list for review.
+When submitting a patch make sure to use git send-email rather than attaching
+patches to emails. Sending patches as attachments prevents people from being
+able to provide in-line review comments.
 </p>
 
-<H3>Get latest source files</H3>
 <p>
-Use git to get the latest Mesa files from the git repository, from whatever
-branch is relevant.
+When submitting follow-up patches you can use --in-reply-to to make v2, v3,
+etc patches show up as replies to the originals. This usually works well
+when you're sending out updates to individual patches (as opposed to
+re-sending the whole series). Using --in-reply-to makes
+it harder for reviewers to accidentally review old patches.
 </p>
 
+<h2>Marking a commit as a candidate for a stable branch</h2>
 
-<H3>Verify and update version info</H3>
 <p>
-Create/edit the docs/relnotes-x.y.html file to document what's new in the release.
-Add the new relnotes-x.y.html file to <a href="relnotes.html">relnotes.html</a>.
+If you want a commit to be applied to a stable branch,
+you should add an appropriate note to the commit message.
 </p>
 
 <p>
-Update the MESA_MAJOR, MESA_MINOR and MESA_TINY version numbers in
-configs/default.
-Also update the VERSION line in the top-level Makefile.
+Here are some examples of such a note:
 </p>
+<ul>
+  <li>CC: &lt;mesa-stable@lists.freedesktop.org&gt;</li>
+  <li>CC: "9.2 10.0" &lt;mesa-stable@lists.freedesktop.org&gt;</li>
+  <li>CC: "10.0" &lt;mesa-stable@lists.freedesktop.org&gt;</li>
+</ul>
+
+Simply adding the CC to the mesa-stable list address is adequate to nominate
+the commit for the most-recently-created stable branch. It is only necessary
+to specify a specific branch name, (such as "9.2 10.0" or "10.0" in the
+examples above), if you want to nominate the commit for an older stable
+branch. And, as in these examples, you can nominate the commit for the older
+branch in addition to the more recent branch, or nominate the commit
+exclusively for the older branch.
+
+This "CC" syntax for patch nomination will cause patches to automatically be
+copied to the mesa-stable@ mailing list when you use "git send-email" to send
+patches to the mesa-dev@ mailing list. Also, if you realize that a commit
+should be nominated for the stable branch after it has already been committed,
+you can send a note directly to the mesa-stable@lists.freedesktop.org where
+the Mesa stable-branch maintainers will receive it. Be sure to mention the
+commit ID of the commit of interest (as it appears in the mesa master branch).
+
+The latest set of patches that have been nominated, accepted, or rejected for
+the upcoming stable release can always be seen on the
+<a href=http://cworth.org/~cworth/mesa-stable-queue/">Mesa Stable Queue</a>
+page.
+
+<h2>Cherry-picking candidates for a stable branch</h2>
 
 <p>
-Make sure the values in src/mesa/main/version.h are correct.
+Please use <code>git cherry-pick -x &lt;commit&gt;</code> for cherry-picking a commit
+from master to a stable branch.
 </p>
 
+<h2>Making a New Mesa Release</h2>
+
 <p>
-Update docs/news.html.
+These are the instructions for making a new Mesa release.
 </p>
 
+<h3>Get latest source files</h3>
 <p>
-Check in all updates to git.
+Use git to get the latest Mesa files from the git repository, from whatever
+branch is relevant.
+</p>
+
+
+<h3>Verify and update version info in VERSION</h3>
+
+<p>
+Create a docs/relnotes/x.y.z.html file.
+The bin/bugzilla_mesa.sh and bin/shortlog_mesa.sh scripts can be used to
+create the HTML-formatted lists of bugfixes and changes to include in the file.
+Link the new docs/relnotes/x.y.z.html file into the main <a href="relnotes.html">relnotes.html</a> file.
+</p>
+
+<p>
+Update <a href="index.html">docs/index.html</a>.
 </p>
 
 <p>
-Tag the files with the release name (in the form <b>mesa_X_Y</b>)
-with: <code>git tag -a mesa_X_Y</code>
-Then: <code>git push origin mesa_X_Y</code>
+Tag the files with the release name (in the form <b>mesa-x.y</b>)
+with: <code>git tag -s mesa-x.y -m "Mesa x.y Release"</code>
+Then: <code>git push origin mesa-x.y</code>
 </p>
 
 
-<H3>Make the tarballs</H3>
+<h3>Make the tarballs</h3>
 <p>
 Make the distribution files.  From inside the Mesa directory:
 <pre>
+       ./autogen.sh
        make tarballs
 </pre>
 
 <p>
 After the tarballs are created, the md5 checksums for the files will
 be computed.
-Add them to the docs/relnotes-X.Y.html file.
+Add them to the docs/relnotes/x.y.html file.
 </p>
 
 <p>
@@ -211,17 +280,20 @@ Copy the distribution files to a temporary directory, unpack them,
 compile everything, and run some demos to be sure everything works.
 </p>
 
-<H3>Update the website and announce the release</H3>
+<h3>Update the website and announce the release</h3>
 <p>
-Follow the directions on SourceForge for creating a new "release" and
-uploading the tarballs.
+Make a new directory for the release on annarchy.freedesktop.org with:
+<br>
+<code>
+mkdir /srv/ftp.freedesktop.org/pub/mesa/x.y
+</code>
 </p>
 
 <p>
 Basically, to upload the tarball files with:
 <br>
 <code>
-rsync -avP ssh Mesa*-X.Y.* USERNAME@frs.sourceforge.net:uploads/
+rsync -avP -e ssh MesaLib-x.y.* USERNAME@annarchy.freedesktop.org:/srv/ftp.freedesktop.org/pub/mesa/x.y/
 </code>
 </p>
 
@@ -237,13 +309,12 @@ sftp USERNAME,mesa3d@web.sourceforge.net
 <p>
 Make an announcement on the mailing lists:
 
-<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>,
-<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
+<em>mesa-dev@lists.freedesktop.org</em>,
+<em>mesa-users@lists.freedesktop.org</em>
 and
-<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
+<em>mesa-announce@lists.freedesktop.org</em>
 </p>
 
-
-
+</div>
 </body>
 </html>