Skip to content
  • Gregory Haskins's avatar
    Add versioning support to our applications · 2eadb11a
    Gregory Haskins authored
    
    
    This patch introduces a more robust versioning mechanism, summarized
    as follows:
    
    1) The top-level makefile defines $PROJECT_VERSION which is intended
       to be consumed throughout (though some places are left for a
       future patch)
    2) The variable is expected to use Semantic Versioning with X.Y.Z for
       releases, and X.Y.Z-SNAPSHOT for intermediate development builds.
    3) We bake the $PROJECT_VERSION into the binaries (peer and membersrvc)
       at compile time and remove the yaml configuration that attempted to
       provide competing versioning.
    4) We tag our docker images (except for baseimage, that will be
       addressed later) with :$(ARCH)-$(PROJECT_VERSION), suitable for
       unambiguous long term hosting on something like dockerhub.
    5) We add support for dynamically parsing yaml-based Dockerfile
       definitions to support variable subsitution.  This allows the yaml
       to set a Dockerfile definition with something like
       "FROM foo:$(ARCH)-$(PROJECT_VERSION)" and the variables will
       resolve at runtime based on the context it runs under.
    
    This is all as a first step in supporting a more reasonable release
    mechanism in general, and a docker-based release mechanism in particular.
    
    Change-Id: Ic6df02be4046ca5dbb256f26658a4c393da55c0f
    Signed-off-by: default avatarGreg Haskins <gregory.haskins@gmail.com>
    2eadb11a