diff DVN-web/installer/dvninstall/doc/guides/dataverse-developer-main.html @ 6:1b2188262ae9

adding the installer.
author "jurzua <jurzua@mpiwg-berlin.mpg.de>"
date Wed, 13 May 2015 11:50:21 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DVN-web/installer/dvninstall/doc/guides/dataverse-developer-main.html	Wed May 13 11:50:21 2015 +0200
@@ -0,0 +1,777 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>DVN Developers Guide &mdash; The Harvard Dataverse Network 3.6.1 documentation</title>
+    
+    <link rel="stylesheet" href="_static/agogo.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '3.6.1',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="The Harvard Dataverse Network 3.6.1 documentation" href="index.html" />
+    <link rel="next" title="APIs Guide" href="dataverse-api-main.html" />
+    <link rel="prev" title="Installers Guide" href="dataverse-installer-main.html" /> 
+  </head>
+  <body>
+    <div class="header-wrapper">
+      <div class="header">
+        <div class="headertitle"><a
+          href="index.html">The Harvard Dataverse Network 3.6.1 documentation</a></div>
+        <div class="rel">
+          <a href="dataverse-installer-main.html" title="Installers Guide"
+             accesskey="P">previous</a> |
+          <a href="dataverse-api-main.html" title="APIs Guide"
+             accesskey="N">next</a> |
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a>
+        </div>
+       </div>
+    </div>
+
+    <div class="content-wrapper">
+      <div class="content">
+        <div class="document">
+            
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="dvn-developers-guide">
+<h1>DVN Developers Guide<a class="headerlink" href="#dvn-developers-guide" title="Permalink to this headline">¶</a></h1>
+<p>Please note: This guide was updated in October 2013 to reflex the switch
+from Ant to Maven in DVN 3.6.1.</p>
+<div class="section" id="build-environment-configuring-netbeans">
+<h2>Build Environment (Configuring NetBeans)<a class="headerlink" href="#build-environment-configuring-netbeans" title="Permalink to this headline">¶</a></h2>
+<p>This chapter describes setting up the build environment that you will
+need to build the DVN application from source code.</p>
+<div class="section" id="install-netbeans-and-glassfish">
+<h3>Install NetBeans and GlassFish<a class="headerlink" href="#install-netbeans-and-glassfish" title="Permalink to this headline">¶</a></h3>
+<p>As of DVN version 3.6.1 and the switch to Maven, a DVN development
+environment should not have any dependency on a particular IDE, but use
+of NetBeans 7.2.1 is encouraged because it&#8217;s the version used by most of
+the current developers (on Mac OS X).</p>
+<p>The NetBeans project is currently offering an installer bundle that
+contains both NetBeans 7.2.1 and a supported version of GlassFish
+(3.1.2.2). If they choose to discontinue the bundle, you will have to
+download and install the two packages separately. Note that you can have
+multiple versions of both NetBeans and GlassFish on your system.</p>
+<p>Please note: While we intend to investigate NetBeans 7.4 and GlassFish
+4, these are not yet known to provide a suitable development
+environment.</p>
+<p>We strongly recommend that you run both installs <strong>as a regular user</strong>.&nbsp;There&#8217;s no reason to run your development environment as root.</p>
+<div class="section" id="install-netbeans-bundle">
+<h4>Install NetBeans bundle<a class="headerlink" href="#install-netbeans-bundle" title="Permalink to this headline">¶</a></h4>
+<p>Download NetBeans 7.2.1 Java EE + GlassFish Open Source Edition 3.1.2.2
+bundle from <a class="reference external" href="https://netbeans.org/downloads/7.2.1">https://netbeans.org/downloads/7.2.1</a></p>
+<p>For Mac OS X, you will download a .dmg disk image that will open
+automatically and start the installer for you. Choose the typical
+installation but be sure to install GlassFish and JUnit when prompted.</p>
+<p>Note that you don&#8217;t have to uninstall your existing NetBeans version.
+You can have as many versions installed as you need in parallel.</p>
+<p>When you start NetBeans 7.2.1 for the first time, you will be asked if
+you want to import the settings from the previous installations. If you
+have an existing, pre-DVN 3.* development environment on your system,
+<strong>answer &#8220;no&#8221; &#8211; we want to create the new configuration from scratch.</strong></p>
+</div>
+<div class="section" id="if-you-have-to-install-glassfish-3-1-2-2">
+<h4>[If you have to] Install GlassFish 3.1.2.2<a class="headerlink" href="#if-you-have-to-install-glassfish-3-1-2-2" title="Permalink to this headline">¶</a></h4>
+<p>We <strong>strongly</strong> recommend that you install GlassFish Server 3.1.2.2,
+Open Source Edition, <strong>Full Platform</strong>. If you have to install it
+separately from NetBeans, it can be obtained from
+<a class="reference external" href="http://glassfish.java.net/downloads/3.1.2.2-final.html">http://glassfish.java.net/downloads/3.1.2.2-final.html</a></p>
+<p>The page above contains a link to the installation instructions, but the
+process is very straightforward - just download and run the installer.</p>
+<p>It is strongly recommended that you use Sun/Oracle Java JDK version 1.6.
+Please make sure you have the newest (or at least, recent) build number
+available for your platform. (On Mac OS X 10.8, since the JDK can be
+installed as part of OS distribution, the version currently provided by
+Apple should be sufficient). In other words, we do not recommend
+building DVN under JDK 1.7 until the ticket regarding the move from Java
+6 to 7 has been closed: <a class="reference external" href="https://redmine.hmdc.harvard.edu/issues/3306">https://redmine.hmdc.harvard.edu/issues/3306</a></p>
+<p>Note that you don&#8217;t have to uninstall older versions of GlassFish you
+may still have around. It&#8217;s ok to have multiple versions installed. But
+make sure you have the 3.1.2.2 installation selected as the active
+server in NetBeans.</p>
+<p><strong>Important:</strong> During the installation, leave the admin password fields
+blank. This is not a security risk since out of the box, GlassFish
+3.1.2.2 will only be accepting admin connections on the localhost
+interface. Choosing a password at this stage, however, will complicate
+the installation process unnecessarily. Since this is a development
+system, you can probably keep this configuration unchanged (admin on
+localhost only). If you need to be able to connect to the admin console
+remotely, please see the note in the Appendix section of the main
+Installers Guide.</p>
+</div>
+<div class="section" id="install-junit-if-you-haven-t-already">
+<h4>Install JUnit (if you haven&#8217;t already)<a class="headerlink" href="#install-junit-if-you-haven-t-already" title="Permalink to this headline">¶</a></h4>
+<p>Depending on how you installed NetBeans, you might already have JUnit
+installed. JUnit can be installed from Tools -&gt; Plugins.</p>
+</div>
+</div>
+<div class="section" id="check-out-a-new-copy-of-the-dvn-source-tree">
+<h3>Check out a new copy of the DVN source tree<a class="headerlink" href="#check-out-a-new-copy-of-the-dvn-source-tree" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="create-a-github-account-if-you-don-t-have-one-already">
+<h4>Create a GitHub account [if you don&#8217;t have one already]<a class="headerlink" href="#create-a-github-account-if-you-don-t-have-one-already" title="Permalink to this headline">¶</a></h4>
+<p>Sign up at <a class="reference external" href="https://github.com">https://github.com</a></p>
+<p>Please note that primary audience of this guide (for now) is people who
+have push access to <a class="reference external" href="https://github.com/IQSS/dvn">https://github.com/IQSS/dvn</a> . If you do not have
+push access and want to contribute (and we hope you do!) please fork the
+repo per <a class="reference external" href="https://help.github.com/articles/fork-a-repo">https://help.github.com/articles/fork-a-repo</a> and make
+adjustments below when cloning the repo.</p>
+</div>
+<div class="section" id="set-up-an-ssh-keypair-if-you-haven-t-already">
+<h4>Set up an ssh keypair (if you haven&#8217;t already)<a class="headerlink" href="#set-up-an-ssh-keypair-if-you-haven-t-already" title="Permalink to this headline">¶</a></h4>
+<p>You <em>can</em> use git with passwords over HTTPS but it&#8217;s much nicer to set
+up SSH keys.</p>
+<p><a class="reference external" href="https://github.com/settings/ssh">https://github.com/settings/ssh</a> is the place to manage the ssh keys
+GitHub knows about for you. That page also links to a nice howto:
+<a class="reference external" href="https://help.github.com/articles/generating-ssh-keys">https://help.github.com/articles/generating-ssh-keys</a></p>
+<p>From the terminal, <tt class="docutils literal"><span class="pre">ssh-keygen</span></tt> will create new ssh keys for you:</p>
+<ul class="simple">
+<li>private key: <tt class="docutils literal"><span class="pre">~/.ssh/id_rsa</span></tt><ul>
+<li>It is <strong>very important to protect your private key</strong>. If someone
+else acquires it, they can access private repositories on GitHub
+and make commits as you! Ideally, you&#8217;ll store your ssh keys on an
+encrypted volume and protect your private key with a password when
+prompted for one by <tt class="docutils literal"><span class="pre">ssh-keygen</span></tt>. See also &#8220;Why do passphrases
+matter&#8221; at <a class="reference external" href="https://help.github.com/articles/generating-ssh-keys">https://help.github.com/articles/generating-ssh-keys</a></li>
+</ul>
+</li>
+<li>public key: <tt class="docutils literal"><span class="pre">~/.ssh/id_rsa.pub</span></tt></li>
+</ul>
+<p>After you&#8217;ve created your ssh keys, add the public key to your GitHub
+account.</p>
+</div>
+<div class="section" id="clone-the-repo">
+<h4>Clone the repo<a class="headerlink" href="#clone-the-repo" title="Permalink to this headline">¶</a></h4>
+<p>Please see <a class="reference external" href="#branches">branches</a> for detail, but in short, the
+&#8220;develop&#8221; branch is where new commits go. Below we will assume you want
+to make commits to &#8220;develop&#8221;.</p>
+<p>In NetBeans, click Team, then Git, then Clone.</p>
+<div class="section" id="remote-repository">
+<h5>Remote Repository<a class="headerlink" href="#remote-repository" title="Permalink to this headline">¶</a></h5>
+<ul class="simple">
+<li>Repository URL: <tt class="docutils literal"><span class="pre">github.com:IQSS/dvn.git</span></tt></li>
+<li>Username: <tt class="docutils literal"><span class="pre">git</span></tt></li>
+<li>Private/Public Key<ul>
+<li>Private Key File: <tt class="docutils literal"><span class="pre">/Users/[YOUR_USERNAME]/.ssh/id_rsa</span></tt></li>
+</ul>
+</li>
+<li>Passphrase: (the passphrase you chose while running <tt class="docutils literal"><span class="pre">ssh-keygen</span></tt>)</li>
+</ul>
+<p>Click Next.</p>
+<p>If you are prompted about the authenticity of github.com&#8217;s RSA key fingerprint, answer &#8220;Yes&#8221; to continue connecting. GitHub&#8217;s RSA key fingerprint is listed at <a class="reference external" href="https://help.github.com/articles/generating-ssh-keys">https://help.github.com/articles/generating-ssh-keys</a></p>
+</div>
+<div class="section" id="remote-branches">
+<h5>Remote Branches<a class="headerlink" href="#remote-branches" title="Permalink to this headline">¶</a></h5>
+<p>Under Select Remote Branches check the &#8220;develop&#8221; branch.</p>
+<p>Please note: You may see other branches listed, such as &#8220;master&#8221;, but
+there is no need to check them out at this time.</p>
+<p>Click Next.</p>
+</div>
+<div class="section" id="destination-directory">
+<h5>Destination Directory<a class="headerlink" href="#destination-directory" title="Permalink to this headline">¶</a></h5>
+<p>The defaults should be fine:</p>
+<ul class="simple">
+<li>Parent Directory: <tt class="docutils literal"><span class="pre">/Users/[YOUR_USERNAME]/NetBeansProjects</span></tt></li>
+<li>Clone Name: <tt class="docutils literal"><span class="pre">dvn</span></tt></li>
+<li>Checkout Branch: <tt class="docutils literal"><span class="pre">develop*</span></tt></li>
+<li>Remote Name: <tt class="docutils literal"><span class="pre">origin</span></tt></li>
+</ul>
+<p>Click Finish.</p>
+<p>You should see a message that 3 projects were cloned. Click &#8220;Open
+Project&#8221;.</p>
+</div>
+</div>
+</div>
+<div class="section" id="open-projects">
+<h3>Open Projects<a class="headerlink" href="#open-projects" title="Permalink to this headline">¶</a></h3>
+<p>In the &#8220;Open Projects&#8221; dialog you should see three projects, DVN-lockss,
+DVN-root, and DVN-web (a child of DVN-root).</p>
+<p>Highlight DVN-root and check &#8220;Open Required&#8221; (to include DVN-web) and click &#8220;Open&#8221;.</p>
+<p>At this point, you should have two (and only two) projects open in
+NetBeans: DVN-root and DVN-web. If you hover over the projects, it&#8217;s
+normal at this point to see warnings such as &#8220;Some dependency artifacts
+are not in the local repository&#8221; or &#8220;Cannot find application server:
+GlassFish Server 3+&#8221;. We&#8217;ll correct these next.</p>
+</div>
+<div class="section" id="build-for-the-first-time">
+<h3>Build for the first time<a class="headerlink" href="#build-for-the-first-time" title="Permalink to this headline">¶</a></h3>
+<p>In NetBeans, right-click DVN-root and click &#8220;Build&#8221;. This will download
+many dependencies via Maven and may take several minutes.</p>
+<p>When this process has completed, right-click DVN-web and click &#8220;Build&#8221;.
+You should expect to see &#8220;BUILD SUCCESS&#8221;. This means you have
+successfully built the .war application package, but do not attempt to
+deploy the application just yet! We need to configure the server
+environment first, which consists of GlassFish and PostgreSQL</p>
+</div>
+</div>
+<div class="section" id="application-environment-configuring-glassfish-and-postgresql">
+<h2>Application Environment (Configuring GlassFish and PostgreSQL)<a class="headerlink" href="#application-environment-configuring-glassfish-and-postgresql" title="Permalink to this headline">¶</a></h2>
+<p>In this chapter, we describe the process of setting up your own local
+application environment into which you will deploy the DVN application.</p>
+<div class="section" id="install-postgresql-database-server">
+<h3>Install PostgreSQL database server<a class="headerlink" href="#install-postgresql-database-server" title="Permalink to this headline">¶</a></h3>
+<p>For Mac OS X (our default development OS), you can get the installer
+from <a class="reference external" href="http://www.postgresql.org/download/macosx">http://www.postgresql.org/download/macosx</a></p>
+<p>The installation is very straightforward; just make sure you answer
+&#8220;yes&#8221; when asked if Postgres should be accepting network connections.
+(The application will be accessing the database at the &#8220;localhost&#8221;
+address).</p>
+<p>Once installed, we recommend that you also allow connections
+over local Unix sockets. This way the installer won&#8217;t have to ask you
+for the Postgres password every time it needs to talk to the database.
+To do so, modify the &#8220;local all all&#8221; line in the data/pg_hba.conf file
+to look like this:</p>
+<div class="line-block">
+<div class="line">local all all trust</div>
+</div>
+<p><strong>Note</strong> that this only opens Postgres to the local socket connections,
+and should not be considered a security risk. But if you are extra
+cautious, you may use instead:</p>
+<div class="line-block">
+<div class="line">local all all ident sameuser</div>
+</div>
+<p>Restart Postgres for the changes to take effect!</p>
+<p>Please note: if you have any problems with the PostgreSQL setup, please
+ensure the right <tt class="docutils literal"><span class="pre">psql</span></tt> is in your <tt class="docutils literal"><span class="pre">$PATH</span></tt>.</p>
+<p>You can check the instructions in the main Installers Guide for more info:
+<a class="reference internal" href="dataverse-installer-main.html#postgresql"><em>PostgreSQL section</em></a>;
+but the above should be sufficient to get your environment set up.</p>
+</div>
+<div class="section" id="run-the-install-dev-script">
+<h3>Run the install-dev script<a class="headerlink" href="#run-the-install-dev-script" title="Permalink to this headline">¶</a></h3>
+<p>The installer is supplied with the DVN source in the tools directory.
+You must run it as root (for direct access to Postgres).</p>
+<div class="line-block">
+<div class="line">To run the script:</div>
+<div class="line"><tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">su</span> <span class="pre">-</span></tt></div>
+<div class="line"><tt class="docutils literal"><span class="pre">cd</span> <span class="pre">/Users/[YOUR_USERNAME]/NetBeansProjects/dvn/tools/installer/dvninstall</span></tt></div>
+</div>
+<div class="line-block">
+<div class="line">then execute</div>
+<div class="line"><tt class="docutils literal"><span class="pre">./install-dev</span></tt></div>
+</div>
+<p>When prompted for various settings, you will likely be able to accept
+all the default values (in a development environment, they are for the
+most part the same for everybody).</p>
+</div>
+<div class="section" id="testing-login">
+<h3>Testing login<a class="headerlink" href="#testing-login" title="Permalink to this headline">¶</a></h3>
+<p>Once the <tt class="docutils literal"><span class="pre">install-dev</span></tt> script has completed successfully, you will
+have a fully functional Dataverse Network server. After making sure
+GlassFish has been started per the output of the script, you should be
+able to log in DVN with these credentials:</p>
+<ul class="simple">
+<li><a class="reference external" href="http://localhost:8080/dvn/">http://localhost:8080/dvn/</a></li>
+<li>username: networkAdmin</li>
+<li>password: networkAdmin</li>
+</ul>
+<p>Please note that when deploying from NetBeans for the first time, you
+will be prompted to select a deployment server. From the drop down,
+select &#8220;GlassFish Server 3.1.2&#8221;, click &#8220;Remember in Current IDE Session&#8221;
+and click &#8220;OK&#8221;.</p>
+</div>
+</div>
+<div class="section" id="developing-with-git">
+<h2>Developing with Git<a class="headerlink" href="#developing-with-git" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="commit">
+<span id="id1"></span><h3>Commit<a class="headerlink" href="#commit" title="Permalink to this headline">¶</a></h3>
+<p><strong>Committing Changes</strong></p>
+<p>By following the instructions in the <em class="xref std std-ref">build</em> step, you
+should be in the &#8220;develop&#8221; branch, which is where we want to make
+commits as we work toward the next release.</p>
+<p>You can verify which branch you are on by clicking Team then &#8220;Repository
+Browser&#8221;.</p>
+<p>You should see <tt class="docutils literal"><span class="pre">dvn</span> <span class="pre">[develop]</span></tt> at the root of the tree and <strong>develop</strong>
+in bold under Branches -&gt; Local</p>
+<p>Click Team, then &#8220;Show Changes&#8221;. Select the desired files and
+right-click to commit.</p>
+<p>To publish your changes on GitHub, you&#8217;ll need to follow the next step:
+<a class="reference internal" href="#push"><em>push</em></a>.</p>
+</div>
+<div class="section" id="push">
+<span id="id2"></span><h3>Push<a class="headerlink" href="#push" title="Permalink to this headline">¶</a></h3>
+<p><strong>Pushing your commits to GitHub</strong></p>
+<p>After making your <a class="reference internal" href="#commit"><em>commit</em></a>, push it to GitHub by clicking
+Team -&gt; Remote -&gt; Push, then Next (to use your configured remote
+repository), then checking <strong>develop</strong> and Finish.</p>
+<p>Your commit should now appear on GitHub in the develop branch:
+<a class="reference external" href="https://github.com/IQSS/dvn/commits/develop">https://github.com/IQSS/dvn/commits/develop</a></p>
+<p>Your commit should <strong>not</strong> appear in the master branch on GitHub:
+<a class="reference external" href="https://github.com/IQSS/dvn/commits/master">https://github.com/IQSS/dvn/commits/master</a> . Not yet anyway. We only
+merge commits into master when we are ready to release.  Please see the
+<a class="reference external" href="#branches">branches</a> section for for detail.</p>
+</div>
+<div class="section" id="release">
+<h3>Release<a class="headerlink" href="#release" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="merge-develop-into-master">
+<h4>Merge develop into master<a class="headerlink" href="#merge-develop-into-master" title="Permalink to this headline">¶</a></h4>
+<div class="section" id="tag-the-release">
+<h5>Tag the release<a class="headerlink" href="#tag-the-release" title="Permalink to this headline">¶</a></h5>
+<p>Here is an example of how the 3.4 tag (
+<a class="reference external" href="https://github.com/IQSS/dvn/tree/3.4">https://github.com/IQSS/dvn/tree/3.4</a>) was created and pushed to GitHub:</p>
+<div class="highlight-guess"><div class="highlight"><pre><span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span> <span class="n">git</span> <span class="n">branch</span>
+<span class="o">*</span> <span class="n">develop</span>
+  <span class="n">master</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span> <span class="n">git</span> <span class="n">pull</span>
+<span class="n">Already</span> <span class="n">up</span><span class="o">-</span><span class="n">to</span><span class="o">-</span><span class="n">date</span><span class="p">.</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span> <span class="n">git</span> <span class="n">checkout</span> <span class="n">master</span>
+<span class="n">Switched</span> <span class="n">to</span> <span class="n">branch</span> <span class="err">&#39;</span><span class="n">master</span><span class="err">&#39;</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span> <span class="n">git</span> <span class="n">merge</span> <span class="n">develop</span>
+<span class="n">Updating</span> <span class="n">fdbfe57</span><span class="p">.</span><span class="mf">.6</span><span class="n">ceb24f</span>
+<span class="p">(</span><span class="n">snip</span><span class="p">)</span>
+ <span class="n">create</span> <span class="n">mode</span> <span class="mi">100644</span> <span class="n">tools</span><span class="o">/</span><span class="n">installer</span><span class="o">/</span><span class="n">dvninstall</span><span class="o">/</span><span class="n">readme</span><span class="p">.</span><span class="n">md</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span> <span class="n">git</span> <span class="n">tag</span>
+<span class="mf">3.3</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span> <span class="n">git</span> <span class="n">tag</span> <span class="o">-</span><span class="n">a</span> <span class="mf">3.4</span> <span class="o">-</span><span class="n">m</span> <span class="err">&#39;</span><span class="n">merged</span> <span class="n">develop</span><span class="p">,</span> <span class="n">tagging</span> <span class="n">master</span> <span class="n">as</span> <span class="mf">3.4</span><span class="err">&#39;</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span> <span class="n">git</span> <span class="n">tag</span>
+<span class="mf">3.3</span>
+<span class="mf">3.4</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span> <span class="n">git</span> <span class="n">push</span> <span class="n">origin</span> <span class="mf">3.4</span>
+<span class="n">Counting</span> <span class="n">objects</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="n">done</span><span class="p">.</span>
+<span class="n">Writing</span> <span class="n">objects</span><span class="o">:</span> <span class="mi">100</span><span class="o">%</span> <span class="p">(</span><span class="mi">1</span><span class="o">/</span><span class="mi">1</span><span class="p">),</span> <span class="mi">182</span> <span class="n">bytes</span><span class="p">,</span> <span class="n">done</span><span class="p">.</span>
+<span class="n">Total</span> <span class="mi">1</span> <span class="p">(</span><span class="n">delta</span> <span class="mi">0</span><span class="p">),</span> <span class="n">reused</span> <span class="mi">0</span> <span class="p">(</span><span class="n">delta</span> <span class="mi">0</span><span class="p">)</span>
+<span class="n">To</span> <span class="n">git</span><span class="err">@</span><span class="n">github</span><span class="p">.</span><span class="n">com</span><span class="o">:</span><span class="n">IQSS</span><span class="o">/</span><span class="n">dvn</span><span class="p">.</span><span class="n">git</span>
+ <span class="o">*</span> <span class="p">[</span><span class="n">new</span> <span class="n">tag</span><span class="p">]</span>         <span class="mf">3.4</span> <span class="o">-&gt;</span> <span class="mf">3.4</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span> <span class="n">git</span> <span class="n">push</span> <span class="n">origin</span> <span class="n">master</span>
+<span class="n">Total</span> <span class="mi">0</span> <span class="p">(</span><span class="n">delta</span> <span class="mi">0</span><span class="p">),</span> <span class="n">reused</span> <span class="mi">0</span> <span class="p">(</span><span class="n">delta</span> <span class="mi">0</span><span class="p">)</span>
+<span class="n">To</span> <span class="n">git</span><span class="err">@</span><span class="n">github</span><span class="p">.</span><span class="n">com</span><span class="o">:</span><span class="n">IQSS</span><span class="o">/</span><span class="n">dvn</span><span class="p">.</span><span class="n">git</span>
+   <span class="n">fdbfe57</span><span class="p">.</span><span class="mf">.6</span><span class="n">ceb24f</span>  <span class="n">master</span> <span class="o">-&gt;</span> <span class="n">master</span>
+<span class="nl">murphy:</span><span class="n">dvn</span> <span class="n">pdurbin</span><span class="err">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="make-release-available-for-download">
+<h5>Make release available for download<a class="headerlink" href="#make-release-available-for-download" title="Permalink to this headline">¶</a></h5>
+<p>On dvn-build:</p>
+<div class="highlight-guess"><div class="highlight"><pre><span class="n">cd</span> <span class="n">tools</span><span class="o">/</span><span class="n">installer</span>
+<span class="n">make</span> <span class="n">installer</span>
+</pre></div>
+</div>
+<p>Rename the resulting &#8220;dvninstall.zip&#8221; to include the release number
+(i.e. &#8220;dvninstall_v3_4.zip&#8221;) and upload it, the separate war file, a
+readme, and a buildupdate script (all these files should include the
+release number) to SourceForge (i.e.
+<a class="reference external" href="http://sourceforge.net/projects/dvn/files/dvn/3.4/">http://sourceforge.net/projects/dvn/files/dvn/3.4/</a>).</p>
+</div>
+<div class="section" id="increment-the-version-number">
+<h5>Increment the version number<a class="headerlink" href="#increment-the-version-number" title="Permalink to this headline">¶</a></h5>
+<p>The file to edit is:</p>
+<div class="line-block">
+<div class="line"><a class="reference external" href="https://github.com/IQSS/dvn/blob/develop/src/DVN-web/sr/VersionNumber.properties">https://github.com/IQSS/dvn/blob/develop/src/DVN-web/src/VersionNumber.properties</a></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="branches">
+<h3>Branches<a class="headerlink" href="#branches" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="current-list-of-branches">
+<h4>Current list of branches<a class="headerlink" href="#current-list-of-branches" title="Permalink to this headline">¶</a></h4>
+<p><a class="reference external" href="https://github.com/IQSS/dvn/branches">https://github.com/IQSS/dvn/branches</a></p>
+</div>
+<div class="section" id="new-branching-model-develop-vs-master">
+<h4>New branching model: develop vs. master<a class="headerlink" href="#new-branching-model-develop-vs-master" title="Permalink to this headline">¶</a></h4>
+<p>Please note that with the move to git, we are adopting the branching
+model described at
+<a class="reference external" href="http://nvie.com/posts/a-successful-git-branching-model/">http://nvie.com/posts/a-successful-git-branching-model/</a></p>
+<p>In this branching model there are two persistent branches:</p>
+<ul class="simple">
+<li>develop: where all new commits go</li>
+<li>master: where code gets merged and tagged as a release</li>
+</ul>
+<p>That is to say, <strong>please make your commits on the develop branch, not
+the master branch</strong>.</p>
+</div>
+<div class="section" id="feature-branches">
+<h4>Feature branches<a class="headerlink" href="#feature-branches" title="Permalink to this headline">¶</a></h4>
+<blockquote>
+<div>&#8220;The essence of a feature branch is that it exists as long as the
+feature is in development, but will eventually be merged back into
+develop (to definitely add the new feature to the upcoming release)
+or discarded (in case of a disappointing experiment).&#8221; &#8211;
+<a class="reference external" href="http://nvie.com/posts/a-successful-git-branching-model/">http://nvie.com/posts/a-successful-git-branching-model/</a></div></blockquote>
+</div>
+<div class="section" id="example-feature-branch-2656-lucene">
+<h4>Example feature branch: 2656-lucene<a class="headerlink" href="#example-feature-branch-2656-lucene" title="Permalink to this headline">¶</a></h4>
+<p>First, we create the branch and check it out:</p>
+<div class="highlight-python"><pre>murphy:dvn pdurbin$ git branch
+  2656-solr
+* develop
+murphy:dvn pdurbin$ git branch 2656-lucene
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git branch
+  2656-lucene
+  2656-solr
+* develop
+murphy:dvn pdurbin$ git checkout 2656-lucene
+Switched to branch '2656-lucene'
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git status
+# On branch 2656-lucene
+nothing to commit (working directory clean)
+murphy:dvn pdurbin$</pre>
+</div>
+<div class="line-block">
+<div class="line">Then, we make a change and a commit, and push it to:</div>
+</div>
+<div class="line-block">
+<div class="line"><a class="reference external" href="https://github.com/iqss/dvn/tree/2656-lucene">https://github.com/iqss/dvn/tree/2656-lucene</a> (creating a new remote branch):</div>
+</div>
+<div class="highlight-python"><pre>murphy:dvn pdurbin$ vim src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/Indexer.java
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git commit -m 'start lucene faceting branch' src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/Indexer.java
+[2656-lucene 3b82f88] start lucene faceting branch
+ 1 file changed, 73 insertions(+), 2 deletions(-)
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git push origin 2656-lucene
+Counting objects: 25, done.
+Delta compression using up to 8 threads.
+Compressing objects: 100% (10/10), done.
+Writing objects: 100% (13/13), 2.23 KiB, done.
+Total 13 (delta 6), reused 0 (delta 0)
+To git@github.com:IQSS/dvn.git
+ * [new branch]      2656-lucene -&gt; 2656-lucene
+murphy:dvn pdurbin$</pre>
+</div>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p>As we work on the feature branch, we merge the latest changes from
+&#8220;develop&#8221;. We want to resolve conflicts in the feature branch itself so
+that the feature branch will merge cleanly into &#8220;develop&#8221; when we&#8217;re
+ready. In the example below, we use <tt class="docutils literal"><span class="pre">git</span> <span class="pre">mergetool</span></tt> and <tt class="docutils literal"><span class="pre">opendiff</span></tt>
+to resolve conflicts and save the merge. Then we push the newly-merged
+2656-lucene feature branch to GitHub:</p>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<div class="highlight-python"><pre>murphy:dvn pdurbin$ git branch
+* 2656-lucene
+  2656-solr
+  develop
+murphy:dvn pdurbin$ git checkout develop
+murphy:dvn pdurbin$ git branch
+  2656-lucene
+  2656-solr
+* develop
+murphy:dvn pdurbin$ git pull
+remote: Counting objects: 206, done.
+remote: Compressing objects: 100% (43/43), done.
+remote: Total 120 (delta 70), reused 96 (delta 46)
+Receiving objects: 100% (120/120), 17.65 KiB, done.
+Resolving deltas: 100% (70/70), completed with 40 local objects.
+From github.com:IQSS/dvn
+   8fd223d..9967413  develop    -&gt; origin/develop
+Updating 8fd223d..9967413
+Fast-forward
+ .../admin/EditNetworkPrivilegesServiceBean.java  |    5 +-
+(snip)
+ src/DVN-web/web/study/StudyFilesFragment.xhtml   |    2 +-
+ 12 files changed, 203 insertions(+), 118 deletions(-)
+murphy:dvn pdurbin$ murphy:dvn pdurbin$ git pull
+remote: Counting objects: 206, done.
+remote: Compressing objects: 100% (43/43), done.
+remote: Total 120 (delta 70), reused 96 (delta 46)
+Receiving objects: 100% (120/120), 17.65 KiB, done.
+Resolving deltas: 100% (70/70), completed with 40 local objects.
+From github.com:IQSS/dvn
+   8fd223d..9967413  develop    -&gt; origin/develop
+Updating 8fd223d..9967413
+Fast-forward
+ .../admin/EditNetworkPrivilegesServiceBean.java  |    5 +-
+(snip)
+ .../harvard/iq/dvn/core/web/study/StudyUI.java   |    2 +-
+ src/DVN-web/web/HomePage.xhtml                   |    5 +-
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git checkout 2656-lucene
+Switched to branch '2656-lucene'
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git merge develop
+Auto-merging src/DVN-web/web/BasicSearchFragment.xhtml
+CONFLICT (content): Merge conflict in src/DVN-web/web/BasicSearchFragment.xhtml
+Auto-merging src/DVN-web/src/edu/harvard/iq/dvn/core/web/BasicSearchFragment.java
+Auto-merging src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/Indexer.java
+Automatic merge failed; fix conflicts and then commit the result.
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git status
+# On branch 2656-lucene
+# Changes to be committed:
+#
+#       modified:   src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/admin/EditNetworkPrivilegesServiceBean.java
+(snip)
+#       new file:   src/DVN-web/web/admin/ChooseDataverseForCreateStudy.xhtml
+#       modified:   src/DVN-web/web/study/StudyFilesFragment.xhtml
+#
+# Unmerged paths:
+#   (use "git add/rm &lt;file&gt;..." as appropriate to mark resolution)
+#
+#       both modified:      src/DVN-web/web/BasicSearchFragment.xhtml
+#
+murphy:dvn pdurbin$ git mergetool
+merge tool candidates: opendiff kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse ecmerge p4merge araxis bc3 emerge vimdiff
+Merging:
+src/DVN-web/web/BasicSearchFragment.xhtml
+
+Normal merge conflict for 'src/DVN-web/web/BasicSearchFragment.xhtml':
+  {local}: modified file
+  {remote}: modified file
+Hit return to start merge resolution tool (opendiff):
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git add .
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git commit -m "Merge branch 'develop' into 2656-lucene"
+[2656-lucene 519cd8c] Merge branch 'develop' into 2656-lucene
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git push origin 2656-lucene
+(snip)
+murphy:dvn pdurbin$</pre>
+</div>
+<div class="line-block">
+<div class="line">When we are ready to merge the feature branch back into the develop branch, we can do so.</div>
+</div>
+<div class="line-block">
+<div class="line">Here&#8217;s an example of merging the 2656-lucene branch back into develop:</div>
+</div>
+<div class="highlight-python"><pre>murphy:dvn pdurbin$ git checkout 2656-lucene
+Switched to branch '2656-lucene'
+murphy:dvn pdurbin$ git pull
+Already up-to-date.
+murphy:dvn pdurbin$ git checkout develop
+Switched to branch 'develop'
+murphy:dvn pdurbin$ git pull
+Already up-to-date.
+murphy:dvn pdurbin$ git merge 2656-lucene
+Removing lib/dvn-lib-EJB/lucene-core-3.0.0.jar
+Merge made by the 'recursive' strategy.
+ lib/dvn-lib-EJB/lucene-core-3.0.0.jar                                     |  Bin 1021623 -&gt; 0 bytes
+ lib/dvn-lib-EJB/lucene-core-3.5.0.jar                                     |  Bin 0 -&gt; 1466301 bytes
+ lib/dvn-lib-EJB/lucene-facet-3.5.0.jar                                    |  Bin 0 -&gt; 293582 bytes
+ src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/DvnQuery.java          |  160 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/IndexServiceBean.java  |   56 ++++++++++++++++++++
+ src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/IndexServiceLocal.java |   16 +++++-
+ src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/Indexer.java           |  432 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/ResultsWithFacets.java |   71 +++++++++++++++++++++++++
+ src/DVN-web/src/SearchFieldBundle.properties                              |    4 +-
+ src/DVN-web/src/edu/harvard/iq/dvn/core/web/AdvSearchPage.java            |   86 +++++++++++++++++++++++++++++++
+ src/DVN-web/src/edu/harvard/iq/dvn/core/web/BasicSearchFragment.java      |  102 +++++++++++++++++++++++++++++++++++-
+ src/DVN-web/src/edu/harvard/iq/dvn/core/web/StudyListing.java             |   11 ++++
+ src/DVN-web/src/edu/harvard/iq/dvn/core/web/StudyListingPage.java         |  428 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/DVN-web/src/edu/harvard/iq/dvn/core/web/study/FacetResultUI.java      |   42 +++++++++++++++
+ src/DVN-web/src/edu/harvard/iq/dvn/core/web/study/FacetUI.java            |   62 ++++++++++++++++++++++
+ src/DVN-web/web/AdvSearchPage.xhtml                                       |    3 +-
+ src/DVN-web/web/BasicSearchFragment.xhtml                                 |    9 ++--
+ src/DVN-web/web/StudyListingPage.xhtml                                    |   43 +++++++++++-----
+ 18 files changed, 1500 insertions(+), 25 deletions(-)
+ delete mode 100644 lib/dvn-lib-EJB/lucene-core-3.0.0.jar
+ create mode 100644 lib/dvn-lib-EJB/lucene-core-3.5.0.jar
+ create mode 100644 lib/dvn-lib-EJB/lucene-facet-3.5.0.jar
+ create mode 100644 src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/DvnQuery.java
+ create mode 100644 src/DVN-EJB/src/java/edu/harvard/iq/dvn/core/index/ResultsWithFacets.java
+ create mode 100644 src/DVN-web/src/edu/harvard/iq/dvn/core/web/study/FacetResultUI.java
+ create mode 100644 src/DVN-web/src/edu/harvard/iq/dvn/core/web/study/FacetUI.java
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git status
+# On branch develop
+# Your branch is ahead of 'origin/develop' by 68 commits.
+#
+nothing to commit (working directory clean)
+murphy:dvn pdurbin$
+murphy:dvn pdurbin$ git push
+Counting objects: 51, done.
+Delta compression using up to 8 threads.
+Compressing objects: 100% (12/12), done.
+Writing objects: 100% (19/19), 1.41 KiB, done.
+Total 19 (delta 7), reused 0 (delta 0)
+To git@github.com:IQSS/dvn.git
+   b7fae01..2b88b68  develop -&gt; develop
+murphy:dvn pdurbin$</pre>
+</div>
+</div>
+<div class="section" id="switching-to-the-master-branch-to-merge-commits-from-the-develop-branch">
+<h4>Switching to the master branch to merge commits from the develop branch<a class="headerlink" href="#switching-to-the-master-branch-to-merge-commits-from-the-develop-branch" title="Permalink to this headline">¶</a></h4>
+<p>We should really only need to switch from the develop branch to the
+master branch as we prepare for a release.</p>
+<p>First, we check out the master branch by clicking Team -&gt; Git -&gt; Branch
+-&gt; Switch to Branch.</p>
+<p>Change Branch to &#8220;origin/master&#8221; and check the box for &#8220;Checkout as New
+Branch&#8221; and fill in &#8220;master&#8221; as the &#8220;Branch Name&#8221; to match the name of
+the branch we&#8217;re switching to. Then click &#8220;Switch&#8221;.</p>
+<p>Now, in the Git Repository Browser (from Team -&gt; Repository Browser) the
+root of the tree should say <tt class="docutils literal"><span class="pre">dvn</span> <span class="pre">[master]</span></tt> and you should see two
+branches under Branches -&gt; Local. <strong>master</strong> should be in bold and
+develop should not.</p>
+</div>
+</div>
+<div class="section" id="tips">
+<h3>Tips<a class="headerlink" href="#tips" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="previewing-changes-before-a-pull">
+<h4>Previewing changes before a pull<a class="headerlink" href="#previewing-changes-before-a-pull" title="Permalink to this headline">¶</a></h4>
+<p>If the build fails overnight you may want to hold off on doing a pull
+until the problem is resolved. To preview what has changed since your
+last pull, you can do a <tt class="docutils literal"><span class="pre">git</span> <span class="pre">fetch</span></tt> (the first part of a pull) then
+<tt class="docutils literal"><span class="pre">git</span> <span class="pre">log</span> <span class="pre">HEAD..origin/develop</span></tt> to see the commit messages.
+<tt class="docutils literal"><span class="pre">git</span> <span class="pre">log</span> <span class="pre">-p</span></tt> or <tt class="docutils literal"><span class="pre">git</span> <span class="pre">diff</span></tt> will allow you to see the contents of the
+changes:</p>
+<div class="highlight-python"><pre>git checkout develop
+git fetch
+git log HEAD..origin/develop
+git log -p HEAD..origin/develop
+git diff HEAD..origin/develop</pre>
+</div>
+<p>After the build is working again, you can simply do a pull as normal.</p>
+</div>
+</div>
+<div class="section" id="errors">
+<h3>Errors<a class="headerlink" href="#errors" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="duplicate-class">
+<h4>Duplicate class<a class="headerlink" href="#duplicate-class" title="Permalink to this headline">¶</a></h4>
+<p>The error &#8220;duplicate class&#8221; can result whenever you resolve a merge
+conflict in git.</p>
+<p>The fix is to close NetBeans and delete (or move aside) the cache like
+this:</p>
+<div class="highlight-python"><pre>cd ~/Library/Caches/NetBeans
+mv 7.2.1 7.2.1.moved</pre>
+</div>
+<p>According to <a class="reference external" href="https://netbeans.org/bugzilla/show_bug.cgi?id=197983">https://netbeans.org/bugzilla/show_bug.cgi?id=197983</a> this might be fixed in NetBeans 7.3.</p>
+</div>
+</div>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+        </div>
+        <div class="sidebar">
+          <h3>Table Of Contents</h3>
+          <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="dataverse-user-main.html">User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dataverse-installer-main.html">Installers Guide</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="">DVN Developers Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#build-environment-configuring-netbeans">Build Environment (Configuring NetBeans)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#install-netbeans-and-glassfish">Install NetBeans and GlassFish</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#install-netbeans-bundle">Install NetBeans bundle</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#if-you-have-to-install-glassfish-3-1-2-2">[If you have to] Install GlassFish 3.1.2.2</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#install-junit-if-you-haven-t-already">Install JUnit (if you haven&#8217;t already)</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#check-out-a-new-copy-of-the-dvn-source-tree">Check out a new copy of the DVN source tree</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#create-a-github-account-if-you-don-t-have-one-already">Create a GitHub account [if you don&#8217;t have one already]</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#set-up-an-ssh-keypair-if-you-haven-t-already">Set up an ssh keypair (if you haven&#8217;t already)</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#clone-the-repo">Clone the repo</a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#remote-repository">Remote Repository</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#remote-branches">Remote Branches</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#destination-directory">Destination Directory</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#open-projects">Open Projects</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#build-for-the-first-time">Build for the first time</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="#application-environment-configuring-glassfish-and-postgresql">Application Environment (Configuring GlassFish and PostgreSQL)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#install-postgresql-database-server">Install PostgreSQL database server</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#run-the-install-dev-script">Run the install-dev script</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#testing-login">Testing login</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="#developing-with-git">Developing with Git</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#commit">Commit</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#push">Push</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#release">Release</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#merge-develop-into-master">Merge develop into master</a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#tag-the-release">Tag the release</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#make-release-available-for-download">Make release available for download</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#increment-the-version-number">Increment the version number</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#branches">Branches</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#current-list-of-branches">Current list of branches</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#new-branching-model-develop-vs-master">New branching model: develop vs. master</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#feature-branches">Feature branches</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#example-feature-branch-2656-lucene">Example feature branch: 2656-lucene</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#switching-to-the-master-branch-to-merge-commits-from-the-develop-branch">Switching to the master branch to merge commits from the develop branch</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#tips">Tips</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#previewing-changes-before-a-pull">Previewing changes before a pull</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#errors">Errors</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#duplicate-class">Duplicate class</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dataverse-api-main.html">APIs Guide</a></li>
+</ul>
+
+          <h3 style="margin-top: 1.5em;">Search</h3>
+          <form class="search" action="search.html" method="get">
+            <input type="text" name="q" />
+            <input type="submit" value="Go" />
+            <input type="hidden" name="check_keywords" value="yes" />
+            <input type="hidden" name="area" value="default" />
+          </form>
+          <p class="searchtip" style="font-size: 90%">
+            Enter search terms.
+          </p>
+        </div>
+        <div class="clearer"></div>
+      </div>
+    </div>
+
+    <div class="footer-wrapper">
+      <div class="footer">
+        <div class="left">
+          <a href="dataverse-installer-main.html" title="Installers Guide"
+             >previous</a> |
+          <a href="dataverse-api-main.html" title="APIs Guide"
+             >next</a> |
+          <a href="genindex.html" title="General Index"
+             >index</a>
+            <br/>
+            <a href="_sources/dataverse-developer-main.txt"
+               rel="nofollow">Show Source</a>
+        </div>
+
+        <div class="right">
+          
+    <div class="footer">
+        &copy; Copyright 1997-2013, President &amp; Fellows Harvard University.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b1.
+    </div>
+        </div>
+        <div class="clearer"></div>
+      </div>
+    </div>
+
+  </body>
+</html>
\ No newline at end of file