# Copyright (c) 2014 Eike Stepper (Loehne, Germany) and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
#
# Contributors:
#    Eike Stepper - initial API and implementation

featureName = Oomph Version Management
description = Contains an incremental builder that performs version validation on plug-ins and features. Also contains the documentation and the user interface.
