#!/bin/sh

#
#  Copyright (C) 2004-2025 Freeciv team

# Version definition for Freeciv.

MAJOR_VERSION="3"
MINOR_VERSION="1"
PATCH_VERSION="5"
EMERGENCY_VERSION=""
VERSION_LABEL="+"

# Type is either "development" or "stable"
# Date and NEWS URL are relevant only for "stable" releases
if test "${VERSION_LABEL}" = "" ; then
  RELEASE_TYPE="stable"
  #RELEASE_DATE="2025-05-09"
  NEWS_URL="https://www.freeciv.org/wiki/NEWS-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}"
else
  RELEASE_TYPE="development"
fi

#
# At the time being these same updates need to be made to the meson.build,
# it does not get them automatically from here.
#
# 1) Development until MAJOR and MINOR version numbers are
#    set to new release series:
#   - IS_DEVEL_VERSION=1
#   - IS_FREEZE_VERSION=0
#   - IS_BETA_VERSION=0
#
# 2) Development from version number bump to entering beta mode:
#   - IS_DEVEL_VERSION=1
#   - IS_FREEZE_VERSION=1
#   - IS_BETA_VERSION=0
#
# 3) Development during beta mode, starting latest from beta1,
#    until first RC:
#   - IS_DEVEL_VERSION=0
#   - IS_FREEZE_VERSION=0
#   - IS_BETA_VERSION=1
#
# 4) Stable, starting from first RC:
#   - IS_DEVEL_VERSION=0
#   - IS_FREEZE_VERSION=0
#   - IS_BETA_VERSION=0
#
# 5) Final.
# Update DEFAULT_FOLLOW_TAG to "stable", and also
# windows/installer_msys2/Makefile --with-followtag to "windows"
# platforms/macos/homebrew-appbundle.sh -Dfollowtag to "macos"

IS_DEVEL_VERSION=0
IS_FREEZE_VERSION=0
IS_BETA_VERSION=0

NEXT_STABLE_VERSION="3.1.0"

# 0 to disable display of release month until we can make better estimate
RELEASE_MONTH=3

MAIN_VERSION=3.1
DATASUBDIR=3.1
DEFAULT_FOLLOW_TAG=stable

# Freeciv network capstring: see documentation in common/capstr.c
#
# +Freeciv.Devel-V.V-YYYY.MMM.DD is the base capability string.
#
#   - No new mandatory capabilities can be added to the release branch; doing
#     so would break network capability of supposedly "compatible" releases.
#
NETWORK_CAPSTRING="+Freeciv-3.1-network city-original rsdesc32 obsinv ids32 ownernull16 tu32"
FREECIV_DISTRIBUTOR=""

if test "x$FREECIV_LABEL_FORCE" != "x" ; then
  VERSION_LABEL=$(echo $FREECIV_LABEL_FORCE | sed "s/<base>/$VERSION_LABEL/g")
fi

if test x$VERSION_REVTYPE = xgit && command -v git > /dev/null ; then
  VERSION_REV="$(git rev-parse --short HEAD)"
else
  VERSION_REV=""
fi
if test "x$VERSION_REV" != "x" ; then
  case "x$VERSION_LABEL" in
    x*+) ;;
    *) VERSION_REV="+${VERSION_REV}" ;;
  esac
fi

if test x$EMERGENCY_VERSION != x ; then
  EMERG_PART=".${EMERGENCY_VERSION}"
fi

VERSION_STRING=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}${EMERG_PART}${VERSION_LABEL}
if test x$VERSION_SCRIPT_SILENT != xyes ; then
  echo ${VERSION_STRING}${VERSION_REV}
fi
