Open Source Software Configuration Management Tools - Subversion, Git, Jenkins, Ant, Hudson
Open Source Software Configuration Management Tools: Source Control, Build, Deployment,
Continuous Integration, Continuous Deployment, Continuous Delivery
Ant is a Java-based build tool. In theory, it is kind of like Make, without Make's wrinkles and with the full portability of pure Java code.
Antelope is a graphical user interface for running Ant. Antelope is a mature application that is in wide use as a front end to Apache Ant. Antelope provides a set of buttons, one per target, which makes it easy to start a specific Ant operation. Basically, an Ant build file is opened with Antelope and the targets defined in the build file can be executed by clicking a button. Antelope is much more than a thin wrapper around Ant, however. Antelope can run in two different environments. It can run as a stand-alone GUI application and as a plugin to jEdit (www.jedit.org), an excellent open source editor for programmers. As a stand-alone application, Antelope provides the ability to create and edit Ant build files, the ability to run build file targets, and can trace target and task execution in a quasi-debug mode. Output from the build process can be captured to a file and/or to screen and performance statistics can be gathered to guide optimization efforts. Several very useful tasks to extend Ant are included. As a jEdit plugin, Antelope expands the features of the stand-alone application to nicely integrate with the text editor and with the Console and ErrorList plugins. Antelope has an open API that allows other plugins to utilize Antelope's capabilities.
Anthill OS is a Build Management Server. Anthill allows multiple users to work together and consistently access only the latest build, complete with changes from all programmers working on a project. Anthill performs a checkout from the source repository of the latest version of a project before every build and tags the repository with a unique build number. Anthill then updates a project intranet site with artifacts from the latest build.
Apache Archiva is an extensible repository management software that helps taking care of your own personal or enterprise-wide build artifact repository. It is the perfect companion for build tools such as Maven, Continuum, and ANT. Archiva offers several capabilities, amongst which remote repository proxying, security access management, build artifact storage, delivery, browsing, indexing and usage reporting, extensible scanning functionality... and many more!
Apache Buildr is a build system for Java-based applications, including support for Scala, Groovy and a growing number of JVM languages and tools.
Autojar helps creating jar files of minimal size from different inputs like own classes, external archives etc. It starts from one or more given classes (e.g., an applet), recursively searches the bytecode for references to other classes, extracts these classes from the input archives, and copies them to the output. The resulting archive will only contain the classes that are really needed. Thus one can keep size and loading time of applets low or make applications independent of installed libraries. In a similar way, autojar can search directories and archives for other resources (like image files), extract them and copy them to the output. Although autojar can't know exactly which classes get loaded dynamically, it can search the bytecode for invocations of Class.forName() and warn about it. In some cases (constant class name), it can even find out which classes are to be loaded, and add them automatically to the output.
Bazaar is a distributed version control system available under the GPL that reduces barriers to participation in your project.
Buckminster is a set of frameworks and tools for automating build, assemble & deploy (BA&D) development processes in complex or distributed component-based development. Buckminster allows development organizations to define fine-grained "production lines" for the various stages in software production - unit testing, integration testing, field deployment, staged migration, etc. - and to automate the execution of corresponding processes.
Cargo is a thin wrapper that allows you to manipulate Java EE containers in a standard way.
Cernunnos is an open source Java technology that helps Java professionals be more effective in their work. Cernunnos offers significant benefits in developer productivity, time to market, and level of quality in software solutions. Cernunnos doesn't replace Spring, Apache Commons, Groovy, dom4j, or any other library or framework, but it does help technologies like these work together in your project.
Continuum is a continuous integration server for building Java based projects. It supports a wide range of projects: * Maven 1 * Maven 2 * Ant * Shell scripts
Current is an open-source package management and deployment tool. Features : * Production quality Up2date server for 2.7 to 4.4 clients with a Fedora * * Core 5 and 6 or Red Hat Enterprise Linux 3, or 4 server. * Full SQL database backend. * TurboGears Web Interface in the devel series. * Yum support in the devel series. * As easy to setup for the admin as we can make it.
Cypal Studio for GWT is a set of Eclipse plugins for making GWT development easier. It currently helps you in: Creating a module Creating a remote service Maintaining the Async file Runing your app in hosted mode Compiling your app to Java Script Deploying to an external server Exporting as WAR operation
dbdeploy is a Database Change Management tool. It’s for developers or DBAs who want to evolve their database design - or refactor their database - in a simple, controlled, flexible and frequent manner.
DbMaintain enables automatic roll-out of updates to a relational database. It brings database scripts into version control just like regular source code and can be used to transparently deploy databases from development to production. DbMaintain automates the part of the deployment which is most difficult to automate, opening the door for fully automated deployments in all stages of development.
C# library for versioning and refactoring database structure using Microsoft SQL Server
Flexmojos provides first-class support for Flex and AIR development within Apache Maven. It allows Maven to compile, optimize, and test Flex SWF, Flex SWC, Air SWF and Air SWC. The main goal is to provide full support to all mxmlc/compc options. Major features: * SWF, SWC, AIR and Flex versions; * AIR signing and .air file generation; * RSL and caching framework support; * Modules support; * full implementation of MXMLC and COMPC options; * Flex 3 and Flex 4 * use FLEX-OEM-COMPILER - faster, less memory usage, no need of references to local drive; * compatible with several unit testing frameworks: FlexUnit, FUnit, asUnit, AdvancedFlex, fluint and FlexUnit 4 * html-wrappers generation * code generation using GAS3
Fossil is a simple, high-reliability, distributed software configuration management tool.
Gant is a build tool for scripting Ant tasks using Groovy instead of XML to specify the build logic. A Gant build specification is a Groovy script and so can bring all the power of Groovy to bear directly, something not possible with Ant scripts. Whilst it might be seen as a competitor to Ant, Gant uses Ant tasks for many of the actions, so Gant is really an alternative way of doing builds using Ant, but using a programming language rather than XML to specify the build rules.
GenJar is a specialized Ant task that builds jar files based on class dependencies rather than simply the contents of a directory.
Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git Extensions is a toolkit to make working with Git on Windows more intuitive. The shell extension will integrate in Windows Explorer and presents a context menu on files and directories. There is also a Visual Studio plugin to use git from Visual Studio.
Gradle is a new and revolutionary build tool, based on the Groovy programming language. It is very different from existing tools like Ant and Maven in that it provides an extremely powerful capability to develop build applications using Groovy code and a compelling Groovy DSL.
Hudson monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Hudson focuses on the following two jobs: 1. Building/testing software projects continuously, just like CruiseControl or DamageControl. In a nutshell, Hudson provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continoues build increases the productivity. 2. Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently and notice when it broke. Hudson keeps those outputs and makes it easy for you to notice when something is wrong.
Invicta is an open-source build management tool. Using simple project definition files, it generates powerful build scripts (Apache ANT's), while hiding their complexity. Furthermore, Invicta is a modular framework that allows advanced developers add their own customized types of components, which means writing once ANT code that can later be used by all the developers in their project or company simply by specifying the new type name.
Ivy is a popular dependency manager focusing on flexibility and simplicity.
JGit is a pure Java implementation of the Git version control system. Git is a distributed SCM, which means every developer has a full copy of all history of every revision of the code, making queries against the history very fast and versatile.
JavaGen Ant Modules or JAM* is a modular Ant toolkit for building J2EE applications. It consists of a collection of Ant scripts designed to perform common Java/J2EE build tasks such as compilation, packaging, testing, deployment and J2EE application server control. Although originally developed to support the JavaGen code generator, JAM has evolved into a full feature, stand-alone build framework.
LiquiBase is an open source (LGPL), DBMS-independent library for tracking, managing and applying database changes. It is built on a simple premise: All database changes (structure and data) are stored in an XML-based descriptive manner and checked into source control.
Lomboz is an Eclipse plug-in for J2EE developers by extending eclipse JDT. It employs some of the proven open-source technologies. Supporting the complete development cycle: Code, deploy, test and debug.
Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
Mercurial: a fast, lightweight Source Control Management system designed for efficient handling of very large distributed projects.
MIGRATEdb will parse an XML file of database changes and load them to the targeted database if they are not already there. A database change consists of tests to determine whether the change has already been applied and a set of change actions.
Paver is an open source build, distribution and deployment tool geared toward Python projects. It builds on existing Python modules and libraries to make all kinds of project scripting easier than ever before.
PHing Is Not GNU make; it's a project build system based on Apache Ant. You can do anything with it that you could do with a traditional build system like GNU make, and its use of simple XML build files and extensible PHP "task" classes make it an easy-to-use and highly flexible build framework. Features include file transformations (e.g. token replacement, XSLT transformation, Smarty template transformations), file system operations, interactive build support, SQL execution, CVS operations, tools for creating PEAR packages, and much more.
Phusion Passenger (a.k.a. mod_rails) is an open source product that enables people to deploy their Ruby on Rails applications in an upload-and-go manner, which is very reminiscent of the PHP way of deploying. Phusion Passenger's ability to automatically manage Rails server processes lowers system administration, while retaining stability/robustness and performance.
Prism is an application that lets users split web applications out of their browser and run them directly on their desktop.
ProtoJ is a pure java build, installation and deployment library that hands control over to you. There's no third-party ProtoJ application directory to maintain, no environment variables to set up and absolutely no other required software. Simply add the ProtoJ library to your project and get ready to experience the joy of a friction-free development cycle.
Puppet lets you centrally manage every important aspect of your system using a cross-platform specification language that manages all the separate elements normally aggregated in different files, like users, cron jobs, and hosts, along with obviously discrete elements like packages, services, and files.
RadRails is an integrated development environment for the Ruby on Rails framework. The goal of this project is to provide Rails developers with everything they need to develop, manage, test and deploy their applications. The RadRails standalone IDE is built on the Eclipse RCP, and includes the Subclipse plug-ins and the RDT plug-ins. RadRails is also available as standard Eclipse plug-ins.
Savant is both a command-line build tool and a dependency management library. It includes ant extensions so that it can be used within Apache ant or as a stand-alone tool.
SCons is a cross-platform build tool. Think of SCons as an improved substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. Unlike build tools that invent their own mini-language or wedge a scripting language onto some other configuration file syntax, SCons configuration files are actually Python scripts. The ability to script your build gives you a tremendous amount of flexibility to solve complicated build problems in surprisingly small amounts of maintainable code.
Subversion is a revision control system which allows computer software and other electronic works to be developed in an incremental and controlled fashion. Also commonly referred to as svn or SVN, Subversion is designed specifically to be a modern replacement for CVS. Subversion was created by CollabNet, who still maintain the project.
The Subversive project aims to provide Subversion (SVN) integration for Eclipse. The Subversive plug-in gives you the ability to work with this CVS successor version control system from the Eclipse workbench. You can work with Subversion repositories in almost exactly the same way you can now work with CVS repositories using the CVS plug-in bundled in the standard Eclipse distribution. General features of the Subversive plug-in are quite similar to the CVS plug-in's features: * Browse remote repository * Share project to the repository and checkout projects from the repository * Synchronize project to see incoming and outgoing changes * Commit, update and revert changes * See resource change history * Merge changes
TortoiseSVN is a really easy to use Revision control / version control / source control software for Windows. Since it's not an integration for a specific IDE you can use it with whatever development tools you like.