# Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html

featureName = CDO Release Engineering Version Tool
description = Contains an incremental builder that validates the micro versions of plugins against an implementation baseline using source digests.
