diff DVN-web/installer/dvninstall/doc/guides/_sources/dataverse-developer-main.txt @ 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/_sources/dataverse-developer-main.txt	Wed May 13 11:50:21 2015 +0200
@@ -0,0 +1,688 @@
+====================================
+DVN Developers Guide
+====================================
+
+Please note: This guide was updated in October 2013 to reflex the switch
+from Ant to Maven in DVN 3.6.1.
+
+Build Environment (Configuring NetBeans)
+++++++++++++++++++++++++++++++++++++++++
+
+This chapter describes setting up the build environment that you will
+need to build the DVN application from source code. 
+
+Install NetBeans and GlassFish
+==============================
+
+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's the version used by most of
+the current developers (on Mac OS X).
+
+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.
+
+Please note: While we intend to investigate NetBeans 7.4 and GlassFish
+4, these are not yet known to provide a suitable development
+environment.
+
+We strongly recommend that you run both installs **as a regular user**. There's no reason to run your development environment as root.
+
+Install NetBeans bundle
+-----------------------
+
+Download NetBeans 7.2.1 Java EE + GlassFish Open Source Edition 3.1.2.2
+bundle from https://netbeans.org/downloads/7.2.1
+
+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.
+
+Note that you don't have to uninstall your existing NetBeans version.
+You can have as many versions installed as you need in parallel.
+
+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, 
+**answer "no" -- we want to create the new configuration from scratch.**
+
+[If you have to] Install GlassFish 3.1.2.2
+------------------------------------------
+
+We **strongly** recommend that you install GlassFish Server 3.1.2.2,
+Open Source Edition, **Full Platform**. If you have to install it
+separately from NetBeans, it can be obtained from
+http://glassfish.java.net/downloads/3.1.2.2-final.html
+
+The page above contains a link to the installation instructions, but the
+process is very straightforward - just download and run the installer.
+
+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: https://redmine.hmdc.harvard.edu/issues/3306
+
+Note that you don't have to uninstall older versions of GlassFish you
+may still have around. It'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.
+
+**Important:** 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.
+
+Install JUnit (if you haven't already)
+--------------------------------------
+
+Depending on how you installed NetBeans, you might already have JUnit
+installed. JUnit can be installed from Tools -> Plugins.
+
+Check out a new copy of the DVN source tree
+===========================================
+
+Create a GitHub account [if you don't have one already]
+-------------------------------------------------------
+
+Sign up at https://github.com
+
+Please note that primary audience of this guide (for now) is people who
+have push access to https://github.com/IQSS/dvn . If you do not have
+push access and want to contribute (and we hope you do!) please fork the
+repo per https://help.github.com/articles/fork-a-repo and make
+adjustments below when cloning the repo.
+
+Set up an ssh keypair (if you haven't already)
+-----------------------------------------------------
+
+You *can* use git with passwords over HTTPS but it's much nicer to set
+up SSH keys.
+
+https://github.com/settings/ssh is the place to manage the ssh keys
+GitHub knows about for you. That page also links to a nice howto:
+https://help.github.com/articles/generating-ssh-keys
+
+From the terminal, ``ssh-keygen`` will create new ssh keys for you:
+
+-  private key: ``~/.ssh/id_rsa``
+
+   -  It is **very important to protect your private key**. If someone
+      else acquires it, they can access private repositories on GitHub
+      and make commits as you! Ideally, you'll store your ssh keys on an
+      encrypted volume and protect your private key with a password when
+      prompted for one by ``ssh-keygen``. See also "Why do passphrases
+      matter" at https://help.github.com/articles/generating-ssh-keys
+
+-  public key: ``~/.ssh/id_rsa.pub``
+
+After you've created your ssh keys, add the public key to your GitHub
+account.
+
+Clone the repo
+--------------
+
+Please see `branches <#branches>`__ for detail, but in short, the
+"develop" branch is where new commits go. Below we will assume you want
+to make commits to "develop".
+
+In NetBeans, click Team, then Git, then Clone.
+
+Remote Repository
+*****************
+
+-  Repository URL: ``github.com:IQSS/dvn.git``
+-  Username: ``git``
+-  Private/Public Key
+
+   -  Private Key File: ``/Users/[YOUR_USERNAME]/.ssh/id_rsa``
+
+-  Passphrase: (the passphrase you chose while running ``ssh-keygen``)
+
+Click Next.
+
+If you are prompted about the authenticity of github.com's RSA key fingerprint, answer "Yes" to continue connecting. GitHub's RSA key fingerprint is listed at https://help.github.com/articles/generating-ssh-keys
+
+Remote Branches
+***************
+
+Under Select Remote Branches check the "develop" branch.
+
+Please note: You may see other branches listed, such as "master", but
+there is no need to check them out at this time.
+
+Click Next.
+
+Destination Directory
+*********************
+
+The defaults should be fine:
+
+-  Parent Directory: ``/Users/[YOUR_USERNAME]/NetBeansProjects``
+-  Clone Name: ``dvn``
+-  Checkout Branch: ``develop*``
+-  Remote Name: ``origin``
+
+Click Finish.
+
+You should see a message that 3 projects were cloned. Click "Open
+Project".
+
+Open Projects
+=============
+
+In the "Open Projects" dialog you should see three projects, DVN-lockss,
+DVN-root, and DVN-web (a child of DVN-root).
+
+Highlight DVN-root and check "Open Required" (to include DVN-web) and click "Open".
+
+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's
+normal at this point to see warnings such as "Some dependency artifacts
+are not in the local repository" or "Cannot find application server:
+GlassFish Server 3+". We'll correct these next.
+
+Build for the first time
+========================
+
+In NetBeans, right-click DVN-root and click "Build". This will download
+many dependencies via Maven and may take several minutes.
+
+When this process has completed, right-click DVN-web and click "Build".
+You should expect to see "BUILD SUCCESS". 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
+
+Application Environment (Configuring GlassFish and PostgreSQL)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+In this chapter, we describe the process of setting up your own local
+application environment into which you will deploy the DVN application. 
+
+Install PostgreSQL database server 
+==================================
+
+For Mac OS X (our default development OS), you can get the installer
+from http://www.postgresql.org/download/macosx
+
+The installation is very straightforward; just make sure you answer
+"yes" when asked if Postgres should be accepting network connections.
+(The application will be accessing the database at the "localhost"
+address). 
+
+Once installed, we recommend that you also allow connections
+over local Unix sockets. This way the installer won't have to ask you
+for the Postgres password every time it needs to talk to the database.
+To do so, modify the "local all all" line in the data/pg\_hba.conf file
+to look like this:
+
+| local all all trust
+
+**Note** 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:
+
+| local all all ident sameuser
+
+Restart Postgres for the changes to take effect!
+
+Please note: if you have any problems with the PostgreSQL setup, please
+ensure the right ``psql`` is in your ``$PATH``.
+
+You can check the instructions in the main Installers Guide for more info:
+:ref:`PostgreSQL section<postgresql>`;
+but the above should be sufficient to get your environment set up.
+
+Run the install-dev script
+==========================
+
+The installer is supplied with the DVN source in the tools directory.
+You must run it as root (for direct access to Postgres).
+
+| To run the script:
+| ``sudo su -``
+| ``cd /Users/[YOUR_USERNAME]/NetBeansProjects/dvn/tools/installer/dvninstall``
+
+| then execute
+| ``./install-dev``
+
+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).
+
+Testing login
+=============
+
+Once the ``install-dev`` 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:
+
+- http://localhost:8080/dvn/
+- username: networkAdmin
+- password: networkAdmin
+
+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 "GlassFish Server 3.1.2", click "Remember in Current IDE Session"
+and click "OK". 
+
+Developing with Git
+++++++++++++++++
+
+
+.. _commit:
+
+Commit
+==================
+
+**Committing Changes**
+
+By following the instructions in the :ref:`build <build>` step, you
+should be in the "develop" branch, which is where we want to make
+commits as we work toward the next release.
+
+You can verify which branch you are on by clicking Team then "Repository
+Browser".
+
+You should see ``dvn [develop]`` at the root of the tree and **develop**
+in bold under Branches -> Local
+
+Click Team, then "Show Changes". Select the desired files and
+right-click to commit.
+
+To publish your changes on GitHub, you'll need to follow the next step:
+:ref:`push <push>`.
+
+.. _push:
+
+Push
+===========
+
+**Pushing your commits to GitHub**
+
+After making your :ref:`commit <commit>`, push it to GitHub by clicking
+Team -> Remote -> Push, then Next (to use your configured remote
+repository), then checking **develop** and Finish.
+
+Your commit should now appear on GitHub in the develop branch:
+https://github.com/IQSS/dvn/commits/develop
+
+Your commit should **not** appear in the master branch on GitHub:
+https://github.com/IQSS/dvn/commits/master . Not yet anyway. We only
+merge commits into master when we are ready to release.  Please see the
+`branches <#branches>`__ section for for detail.
+
+
+Release
+============
+
+Merge develop into master
+--------------------------------------
+
+Tag the release
+***************************
+
+Here is an example of how the 3.4 tag (
+`https://github.com/IQSS/dvn/tree/3.4 <https://github.com/IQSS/dvn/tree/3.4>`__) was created and pushed to GitHub:
+
+.. code-block:: guess
+
+    murphy:dvn pdurbin$ git branch
+    * develop
+      master
+    murphy:dvn pdurbin$ git pull
+    Already up-to-date.
+    murphy:dvn pdurbin$ git checkout master
+    Switched to branch 'master'
+    murphy:dvn pdurbin$ git merge develop
+    Updating fdbfe57..6ceb24f
+    (snip)
+     create mode 100644 tools/installer/dvninstall/readme.md
+    murphy:dvn pdurbin$ git tag
+    3.3
+    murphy:dvn pdurbin$ git tag -a 3.4 -m 'merged develop, tagging master as 3.4'
+    murphy:dvn pdurbin$ git tag
+    3.3
+    3.4
+    murphy:dvn pdurbin$ git push origin 3.4
+    Counting objects: 1, done.
+    Writing objects: 100% (1/1), 182 bytes, done.
+    Total 1 (delta 0), reused 0 (delta 0)
+    To git@github.com:IQSS/dvn.git
+     * [new tag]         3.4 -> 3.4
+    murphy:dvn pdurbin$ 
+    murphy:dvn pdurbin$ git push origin master
+    Total 0 (delta 0), reused 0 (delta 0)
+    To git@github.com:IQSS/dvn.git
+       fdbfe57..6ceb24f  master -> master
+    murphy:dvn pdurbin$ 
+
+Make release available for download
+******************************************************
+
+On dvn-build:
+
+.. code-block:: guess
+
+    cd tools/installer
+    make installer
+
+Rename the resulting "dvninstall.zip" to include the release number
+(i.e. "dvninstall\_v3\_4.zip") 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.
+`http://sourceforge.net/projects/dvn/files/dvn/3.4/ <http://sourceforge.net/projects/dvn/files/dvn/3.4/>`__).
+
+Increment the version number
+*******************************************************
+
+The file to edit is:
+
+| `https://github.com/IQSS/dvn/blob/develop/src/DVN-web/src/VersionNumber.properties <https://github.com/IQSS/dvn/blob/develop/src/DVN-web/sr/VersionNumber.properties>`__
+
+Branches
+===========
+
+Current list of branches
+-------------------------------------
+
+`https://github.com/IQSS/dvn/branches <https://github.com/IQSS/dvn/branches>`__
+
+New branching model: develop vs. master
+-------------------------------------------------
+
+Please note that with the move to git, we are adopting the branching
+model described at
+`http://nvie.com/posts/a-successful-git-branching-model/ <http://nvie.com/posts/a-successful-git-branching-model/>`__
+
+In this branching model there are two persistent branches:
+
+-  develop: where all new commits go
+-  master: where code gets merged and tagged as a release
+
+That is to say, **please make your commits on the develop branch, not
+the master branch**.
+
+Feature branches
+------------------------
+
+    "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)." --
+    `http://nvie.com/posts/a-successful-git-branching-model/ <http://nvie.com/posts/a-successful-git-branching-model/>`__
+
+Example feature branch: 2656-lucene
+---------------------------------------------------
+
+First, we create the branch and check it out:
+
+::
+
+    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$ 
+
+| Then, we make a change and a commit, and push it to:
+
+| `https://github.com/iqss/dvn/tree/2656-lucene <https://github.com/iqss/dvn/tree/2656-lucene>`__ (creating a new remote branch):
+
+
+::
+
+    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 -> 2656-lucene
+    murphy:dvn pdurbin$ 
+
+| 
+
+As we work on the feature branch, we merge the latest changes from
+"develop". We want to resolve conflicts in the feature branch itself so
+that the feature branch will merge cleanly into "develop" when we're
+ready. In the example below, we use ``git mergetool`` and ``opendiff``
+to resolve conflicts and save the merge. Then we push the newly-merged
+2656-lucene feature branch to GitHub:
+
+| 
+
+::
+
+    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    -> 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    -> 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 <file>..." 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$ 
+
+
+| When we are ready to merge the feature branch back into the develop branch, we can do so.
+
+| Here's an example of merging the 2656-lucene branch back into develop:
+
+::
+
+    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 -> 0 bytes
+     lib/dvn-lib-EJB/lucene-core-3.5.0.jar                                     |  Bin 0 -> 1466301 bytes
+     lib/dvn-lib-EJB/lucene-facet-3.5.0.jar                                    |  Bin 0 -> 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 -> develop
+    murphy:dvn pdurbin$ 
+
+Switching to the master branch to merge commits from the develop branch
+-------------------------------------------------------------------------------------------------------
+
+We should really only need to switch from the develop branch to the
+master branch as we prepare for a release.
+
+First, we check out the master branch by clicking Team -> Git -> Branch
+-> Switch to Branch.
+
+Change Branch to "origin/master" and check the box for "Checkout as New
+Branch" and fill in "master" as the "Branch Name" to match the name of
+the branch we're switching to. Then click "Switch".
+
+Now, in the Git Repository Browser (from Team -> Repository Browser) the
+root of the tree should say ``dvn [master]`` and you should see two
+branches under Branches -> Local. **master** should be in bold and
+develop should not.
+
+Tips
+=========
+
+Previewing changes before a pull
+--------------------------------
+
+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 ``git fetch`` (the first part of a pull) then
+``git log HEAD..origin/develop`` to see the commit messages.
+``git log -p`` or ``git diff`` will allow you to see the contents of the
+changes:
+
+::
+
+    git checkout develop
+    git fetch
+    git log HEAD..origin/develop
+    git log -p HEAD..origin/develop
+    git diff HEAD..origin/develop
+
+After the build is working again, you can simply do a pull as normal.
+
+Errors
+===========
+
+Duplicate class
+---------------
+
+The error "duplicate class" can result whenever you resolve a merge
+conflict in git.
+
+The fix is to close NetBeans and delete (or move aside) the cache like
+this:
+
+::
+
+    cd ~/Library/Caches/NetBeans
+    mv 7.2.1 7.2.1.moved
+
+According to https://netbeans.org/bugzilla/show_bug.cgi?id=197983 this might be fixed in NetBeans 7.3.