Apache Gump
   HOME

TheInfoList



OR:

Apache Gump is an open source continuous integration system, which aims to build and test all the open source Java projects, every night. Its aim is to make sure that all the projects are compatible, at both the API level and in terms of functionality matching specifications. It is hosted at gump.apache.org, and runs every night on the official Sun
JVM A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
.


History

Gump was created by
Sam Ruby Sam Ruby is a prominent software developer who has made significant contributions to web standards and open source software projects. In particular he has contributed to the standardization of syndicated web feeds via his involvement with the At ...
, based on his experience in the
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
community. It was originally written in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
The current live version, Gump 3, has been completely rewritten in
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
.


Usage

To join Gump, a project must provide two XML files. One describes how to access the live CVS or Subversion repository; the other what to build from the repository, and the artifacts produced. Each project can be dependent upon other projects; these dependencies are declared so that Gump knows the correct order to build things. Gump can build shell script,
Ant Ants are eusocial insects of the family Formicidae and, along with the related wasps and bees, belong to the order Hymenoptera. Ants evolved from vespoid wasp ancestors in the Cretaceous period. More than 13,800 of an estimated total of ...
and Maven 1 projects, setting up the classpath appropriately. Ant and Maven 1 have special hooks built in them to give Gump complete control of the classpaths used to build and test the applications. This allows Gump to build the projects against the latest versions, even if the project's own build files have
hard code Hard coding (also hard-coding or hardcoding) is the software development practice of embedding data directly into the source code of a program or other executable object, as opposed to obtaining the data from external sources or generating it at ...
d dependencies against static libraries in their own CVS or subversion repository. If a build on Gump is successful, a report is placed on the site, and all projects that declare themselves dependencies are eligible to be built. If a project fails to build, error reports are published, an error email is sent, and all dependent projects are blocked from building.


Limitations

* There is no way to force developers to act on the ''you broke the build'' email, other than informal peer pressure. * Until
Maven MAVEN is an American spacecraft orbiting Mars to study the loss of its atmospheric gases to space, providing insight into the history of the planet's climate and water. The spacecraft name is an acronym for "Mars Atmosphere and Volatile Evolu ...
support is added, many Java projects cannot be built. All projects downstream of these can only build on gump with static versions of the previous releases, removing the possibility to build and test against nightly code, one of the key features of the project. * It can be difficult to diagnose why something has failed, as developers on projects built by gump do not have access to the machine, only the nightly status reports. * As it is an open service for all open source projects, the project has invested less effort in making it easy to bring up a new gump installation, which makes private use harder. In particular, there is no automated way to ''provision'' a gump server with the static JAR files that many projects depend upon. * If a foundational project such as
Ant Ants are eusocial insects of the family Formicidae and, along with the related wasps and bees, belong to the order Hymenoptera. Ants evolved from vespoid wasp ancestors in the Cretaceous period. More than 13,800 of an estimated total of ...
, Xerces or
JUnit JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated ...
fails to build, then most of Gump is blocked until a fix is made. Depending on the nature of the failure, this could be a quick procedure, or could take longer.BATCH: All dressed up, with nowhere to go
/ref>


References


External links

* {{Apache Software Foundation Continuous integration Gump