Segue GIT Repository README

git://github.com/adamfranco/segue.git is the official Segue GIT repository, maintained by Adam Franco.
Please note: This repository location is temporary while we wait for a more permanent server to be set up (in July, 2008). A posting will be made to the Segue project news (RSS) at the time of that move.

Subsequent to Segue beta 20, we have ceased using the SourceForge CVS for source-code management and are now using GIT. You can clone this repository to access the full development history of Segue.

Working with this repository

These instructions are for those who want to develop Segue. If you just want to run Segue, our packaged downloads are much simpler to use.

For more information on installing and using GIT, please refer to the GIT manual.

These examples assume you are putting your source-code in your public_html directory (~/public_html/segue_dev/) to make it web-accessible. If you are putting it elsewhere, use that other path instead.

Getting your copy of Segue: Option 1 - Step by step

  1. Segue needs Harmoni, so clone the Harmoni repository:
    cd ~/public_html/segue_dev/
    git-clone git://github.com/adamfranco/harmoni.git harmoni
  2. Segue needs Polyphony, so clone the Polyphony repository:
    cd ~/public_html/segue_dev/
    git-clone git://github.com/adamfranco/polyphony.git polyphony
  3. Clone the Segue repository:
    cd ~/public_html/segue_dev/
    git-clone git://github.com/adamfranco/segue.git segue
  4. Polyphony requires several 3rd-party libraries. These can be downloaded from the libraries directory or from their original distributers.
    cd ~/public_html/segue_dev/
    wget http://community.middlebury.edu/~afranco/git/libraries/domit.zip
    unzip domit.zip
    rm domit.zip
    cd ~/public_html/segue_dev/
    wget http://community.middlebury.edu/~afranco/git/libraries/PHP_JPEG_Metadata_Toolkit_1.11.zip
    unzip PHP_JPEG_Metadata_Toolkit_1.11.zip
    rm PHP_JPEG_Metadata_Toolkit_1.11.zip
    cd ~/public_html/segue_dev/polyphony/javascript/
    wget http://community.middlebury.edu/~afranco/git/libraries/fckeditor.zip
    unzip fckeditor.zip
    rm fckeditor.zip
  5. Segue requires several 3rd-party libraries. These can be downloaded from the libraries directory or from their original distributers.
    cd ~/public_html/segue_dev/
    wget http://community.middlebury.edu/~afranco/git/libraries/jpgraph.zip
    unzip jpgraph.zip
    rm jpgraph.zip
    cd ~/public_html/segue_dev/segue/javascript/
    wget http://community.middlebury.edu/~afranco/git/libraries/scriptaculous-js.zip
    unzip scriptaculous-js.zip
    rm scriptaculous-js.zip
  6. Modify the Segue libraries configuration to point to the location of harmoni and polyphony. Using our example setup, this can be accomplished by saving a new libraries.config.php file with the 'main' directory changed to '..'.
    cd ~/public_html/segue_dev/segue/config/
    sed s/main/../ < libraries_default.conf.php > libraries.conf.php
  7. Polyphony requires the Archive/Tar PEAR library. If this is not installed on your machine you will need to install it (probably as root).
    pecl install Archive_Tar
  8. In the segue/config/ directory create a custom database configuration file with values for your database server:
    cd ~/public_html/segue_dev/segue/config/
    cp database_default.conf.php database.conf.php
    vi database.conf.php

Getting your copy of Segue: Option 2 - Scripted

Below are the same steps as above, but without the Archive_Tar install, and formatted so that you can paste them into a bash shell. Change the SEGUE_INSTALL_DIR if you wish to install segue to a different place.

export SEGUE_INSTALL_DIR=~/public_html/segue_dev/

mkdir -p $SEGUE_INSTALL_DIR

###############################
# Clone the repositories
###############################
# Clone Harmoni
cd $SEGUE_INSTALL_DIR
git-clone git://github.com/adamfranco/harmoni.git harmoni

# Clone Polyphony
cd $SEGUE_INSTALL_DIR
git-clone git://github.com/adamfranco/polyphony.git polyphony

# Clone Segue
cd $SEGUE_INSTALL_DIR
git-clone git://github.com/adamfranco/segue.git segue

###############################
# Download Polyphony Libraries
###############################
cd $SEGUE_INSTALL_DIR
wget http://community.middlebury.edu/~afranco/git/libraries/domit.zip
unzip domit.zip
rm domit.zip

cd $SEGUE_INSTALL_DIR
wget http://community.middlebury.edu/~afranco/git/libraries/PHP_JPEG_Metadata_Toolkit_1.11.zip
unzip PHP_JPEG_Metadata_Toolkit_1.11.zip
rm PHP_JPEG_Metadata_Toolkit_1.11.zip

cd $SEGUE_INSTALL_DIR/polyphony/javascript/
wget http://community.middlebury.edu/~afranco/git/libraries/fckeditor.zip
unzip fckeditor.zip
rm fckeditor.zip

###############################
# Download Segue Libraries
###############################

cd $SEGUE_INSTALL_DIR
wget http://community.middlebury.edu/~afranco/git/libraries/jpgraph.zip
unzip jpgraph.zip
rm jpgraph.zip

cd $SEGUE_INSTALL_DIR/segue/javascript/
wget http://community.middlebury.edu/~afranco/git/libraries/scriptaculous-js.zip
unzip scriptaculous-js.zip
rm scriptaculous-js.zip

###############################
# Update the Configs
###############################

sed s/main/../ < $SEGUE_INSTALL_DIR/segue/config/libraries_default.conf.php > $SEGUE_INSTALL_DIR/segue/config/libraries.conf.php

cd $SEGUE_INSTALL_DIR/segue/config/
cp database_default.conf.php database.conf.php
vi database.conf.php

Updating your copy of Segue

  1. Fetch and merge changes for Harmoni:
    cd ~/public_html/segue_dev/harmoni
    git-pull
  2. Fetch and merge changes for Polyphony:
    cd ~/public_html/segue_dev/polyphony
    git-pull
  3. Fetch and merge changes for Segue:
    cd ~/public_html/segue_dev/segue
    git-pull

Submitting patches

See also: Submitting patches GIT documentation

  1. Prepare the patch. This will create a series of files named something like 0001-First-line-of-commit-message.patch:
    cd ~/public_html/segue_dev/segue
    git-format-patch
  2. Email the patches to afranco@middlebury.edu
  3. If the patches are accepted, they will be available through this repository when a git-pull is done.

More about Segue

More about Harmoni/Polyphony