# This file contains some version properties as used by various build files.

# RELEASE MANAGER must change this file after creating a release and
# enter new base version (format "x.y.z", no prefix/appendix): 
version.base=9.0.0

# Other version property defaults, don't change:
version.suffix=SNAPSHOT
version=${version.base}-${version.suffix}
spec.version=${version.base}
