Coder Social home page Coder Social logo

goudine / suite Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tschaub/suite

0.0 1.0 0.0 372.26 MB

OpenGeo Suite Git Repository

Home Page: http://boundlessgeo.com/solutions/opengeo-suite/

Shell 0.43% Python 0.48% CSS 2.85% HTML 8.67% JavaScript 0.45% Scheme 1.04% Fortran 23.28% Java 62.73% FreeMarker 0.06%

suite's Introduction

Boundless Suite

These instructions describe how to build platform independent components of Boundless Suite.

Prerequisites

The following base software packages are required.

Some modules require additional packages:

Ensure that all the above are installed so that the associated executables are on the PATH of the user building the suite.

Developer Guide

If you just want to build suite locally, and do not intend to contribute changes, you can skip this section and proceed to the Quickstart.

Getting Started

  1. Fork the suite projuct to your github account. This fork will be used to stage your changes.

  2. Clone your fork of suite in the desktop:

     % git clone git://github.com/<yourusername>/suite.git suite
     % cd suite
    
  3. Add an upstream remote pointing to the boundless suite project:

     % git remote add upstream https://www.github.com/boundlessgeo/suite.git suite
    
  4. This remote will be used to update your fork of suite to the latest from the boundless suie repository. Any time you want to get the latest changes, simply pull from the upstream remote:

     % git pull upstream master
    

Submodules

Suite includes code from several other projects by way of Git Submodules. Most suite submodules are in geoserver/externals. Submodules function like a link to a specific revision of a project. When using git on the desktop, submodules behave like single files as long as you are outside of them. However, they can be traversed like directories and once inside a submodule, git behaves as if you are in a checkout of the submodule project itself.

  1. When inside a submodule, you can update the revision it links to by pulling from a remote. Many submodules link to a specific branch, so make sure you get the right one (ask a developer if you are unsure)!

     % cd geoserver/externals/geoserver
     % git pull origin 2.7.x
    
  2. In order for this update to be reflected in the suite project, it must be commited like any other change:

     % cd ../
     % git add geoserver
     % git commit -m "update geoserver submodule"
    
  3. You can then push this change to your fork and create a pull request, like any other commit.

Release Branches

During regular development, suite changes are commited to the master branch. Prior to a release, a release branch (of the form r4.7) is created. Any changes should be made against that branch instead, and backported to master if necessary.

  1. When commiting a change to the release branch, note the commit id:

     [r4.7 0c66de5] update geoserver submodule
    
  2. To backport this commit to master, switch to the master branch and use cherry-pick to copy the commit. Remember to push your change up to the suite repository:

     % git checkout master
     % git cherry-pick 0c66de5
     % git push upstream master
    

Certain submodules (mainly geoserver) will also have release specific branches. If you are updating a submodule on the release branch, first check if it has its own branch for this release (usually of the form suite-4.7). Ask a developer if you are unsure.

What's next

To build suite, go to step 2 of the Quickstart.

For more information about the build system, see the Build System Overview.

For information on the individual components that comprise suite, follow the links in the Modules section.

Quickstart

  1. Clone the repository:

     % git clone git://github.com/boundlessgeo/suite.git suite
     % cd suite
    
  2. Initialize submodule dependencies:

     % git submodule update --init --recursive
    
  3. Do a full build:

     % ant
    
  4. Or build the module of your choice:

     % cd docs
     % ant 
    

Build System Overview

The suite repository is made up a number of modules (ie projects). During development typically modules are built individually as opposed to all at once. The primary build tool for suite is Ant. For some modules the ant script delegates to the modules native build tool such as Maven or Sphinx.

All top level modules have a build.xml that defines the following targets:

  1. build - Builds the project, the result of this is something deployable in the development environment. This target is the default.
  2. clean - Cleans the project deleting all build artifacts.
  3. assemble - Assembles the project into a zip archive suitable for deployment in production. This is the artifact consumed by installer builders.
  4. publish - Publishes the zip archive to a final location.
  5. all - Runs all the above targets.

Building for development purposes typically looks like:

ant clean build

Building for deployment purposes typically looks like:

ant clean build assemble

Or to build everything:

ant all

The highest level build files simply delegate to the lower level build files. This means that performing a top level build and performing a build for a specific module will result in the same artifacts being produced for that module.

The build directory contains common build files used by modules.

  • common.xml - Common ant targets used by module build files. Every module build file imports this file as the first step.
  • build.properties - Default build properties that can be overridden on a global or per module basis.
  • build_properties.py - Used by the doc build to parse properties from build.properties into the suite build environment.

Build Properties

Many aspects of the suite build such as file locations, executable names, etc... are parameterized into build properties. The default build.properties contains a list of default values. Often these default properties must be overridden to cater to the environment (eg. Windows vs Unix) or to cater to specifics of a particular module.

There are two ways to override build properties:

  1. The first is to specify them directly to the ant build command with the Java system property (-D) syntax. For example:

       % ant -Dsuite.build_cat=release build
    
  2. Creating a file named local.properties either at the global level or at the module level. The global local.properties is located in the build directory next to build.properties. Module specific local.properties files are located next to the module build.xml file. Naturally the module specific local properties file overrides properties from its global counterpart.

Using any combination of the above method it should never be necessary to modify the build.properties file directly.

The build.properties file should be modified when development begins on a new suite version, in order to update the appropriate version numbers and geosserver extensions.

Versioned build

To build suite with a specific minor version assigned to geotools, geowebcache, and geoserver (instead of -SNAPSHOT), use the build/versions.xml ant script to set a custom version. For example, to build suite 4.9-beta1:

    % ant -f build/versions.xml set-versions -Dsuite.minor_version=-beta1
    % ant all -Dsuite.minor_version=-beta1

Modules

The suite repository is composed of the following modules:

Consult the module README files for module specific information.

suite's People

Contributors

ahocevar avatar bartvde avatar bmmpxf avatar cuttlefish avatar dakcarto avatar dblasby avatar dmkelsey avatar dwins avatar francbartoli avatar goudine avatar igor-chernikov avatar ischneider avatar jdeolive avatar jmarin avatar jodygarnett avatar malaretv avatar mweisman avatar nstires-boundless avatar oscarfonts avatar pramsey avatar rmarianski avatar robertdenis avatar sfsmith avatar smithkm avatar srnetochan avatar tbarsballe avatar tkunicki avatar travislbrundage avatar tschaub avatar volaya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.