[Bf-blender-cvs] [a86b5df005d] blender-v2.83-release: Blender: change bugfix release versioning from a/b/c to .1/.2/.3
Brecht Van Lommel
noreply at git.blender.org
Fri May 29 17:58:35 CEST 2020
Commit: a86b5df005d0c474de973215b112f404902b2607
Author: Brecht Van Lommel
Date: Mon May 25 10:49:04 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rBa86b5df005d0c474de973215b112f404902b2607
Blender: change bugfix release versioning from a/b/c to .1/.2/.3
The file subversion is no longer used in the Python API or user interface,
and is now internal to Blender.
User interface, Python API and file I/O metadata now use more consistent
formatting for version numbers. Official releases use "2.83.0", "2.83.1",
and releases under development use "2.90.0 Alpha", "2.90.0 Beta".
Some Python add-ons may need to lower the Blender version in bl_info to
(2, 83, 0) or (2, 90, 0) if they used a subversion number higher than 0.
https://wiki.blender.org/wiki/Reference/Release_Notes/2.83/Python_API#Compatibility
This change is in preparation of LTS releases, and also brings us more
in line with semantic versioning.
Fixes T76058.
Differential Revision: https://developer.blender.org/D7748
===================================================================
M build_files/buildbot/buildbot_utils.py
M build_files/buildbot/slave_pack.py
M build_files/cmake/macros.cmake
M build_files/cmake/packaging.cmake
M build_files/utils/make_source_archive.sh
M doc/python_api/sphinx_doc_gen.py
M doc/python_api/sphinx_doc_gen.sh
M doc/python_api/sphinx_doc_update.py
M release/datafiles/userdef/userdef_default.c
M release/scripts/startup/bl_operators/wm.py
M source/blender/blenkernel/BKE_blender.h
M source/blender/blenkernel/BKE_blender_version.h
M source/blender/blenkernel/BKE_main.h
M source/blender/blenkernel/intern/blender.c
M source/blender/blenkernel/intern/blendfile.c
M source/blender/blenloader/intern/writefile.c
M source/blender/editors/space_info/info_stats.c
M source/blender/io/alembic/intern/abc_writer_archive.cc
M source/blender/io/collada/DocumentExporter.cpp
M source/blender/io/usd/intern/usd_capi.cc
M source/blender/makesdna/DNA_ID.h
M source/blender/python/intern/bpy_app.c
M source/blender/windowmanager/intern/wm_splash_screen.c
M source/creator/CMakeLists.txt
M source/creator/creator_args.c
M source/creator/creator_intern.h
===================================================================
diff --git a/build_files/buildbot/buildbot_utils.py b/build_files/buildbot/buildbot_utils.py
index 369bb28006d..2dc1526c5e8 100644
--- a/build_files/buildbot/buildbot_utils.py
+++ b/build_files/buildbot/buildbot_utils.py
@@ -78,27 +78,26 @@ class VersionInfo:
blender_h = os.path.join(builder.blender_dir, "source", "blender", "blenkernel", "BKE_blender_version.h")
version_number = int(self._parse_header_file(blender_h, 'BLENDER_VERSION'))
- self.version = "%d.%d" % (version_number // 100, version_number % 100)
- self.version_char = self._parse_header_file(blender_h, 'BLENDER_VERSION_CHAR')
+ version_number_patch = int(self._parse_header_file(blender_h, 'BLENDER_VERSION_PATCH'))
+ version_numbers = (version_number // 100, version_number % 100, version_number_patch)
+ self.short_version = "%d.%02d" % (version_numbers[0], version_numbers[1])
+ self.version = "%d.%02d.%d" % version_numbers
self.version_cycle = self._parse_header_file(blender_h, 'BLENDER_VERSION_CYCLE')
self.version_cycle_number = self._parse_header_file(blender_h, 'BLENDER_VERSION_CYCLE_NUMBER')
self.hash = self._parse_header_file(buildinfo_h, 'BUILD_HASH')[1:-1]
if self.version_cycle == "release":
# Final release
- self.full_version = self.version + self.version_char
+ self.full_version = self.version
self.is_development_build = False
elif self.version_cycle == "rc":
# Release candidate
version_cycle = self.version_cycle + self.version_cycle_number
- if len(self.version_char) == 0:
- self.full_version = self.version + version_cycle
- else:
- self.full_version = self.version + self.version_char + '-' + version_cycle
+ self.full_version = self.version + version_cycle
self.is_development_build = False
else:
# Development build
- self.full_version = self.version + self.version_char + '-' + self.hash
+ self.full_version = self.version + '-' + self.hash
self.is_development_build = True
def _parse_header_file(self, filename, define):
diff --git a/build_files/buildbot/slave_pack.py b/build_files/buildbot/slave_pack.py
index 3cefe2d5ec6..8549a7881e6 100644
--- a/build_files/buildbot/slave_pack.py
+++ b/build_files/buildbot/slave_pack.py
@@ -167,7 +167,7 @@ def pack_linux(builder):
buildbot_utils.call(builder.command_prefix + ['strip', '--strip-all', blender_executable])
print("Stripping python...")
- py_target = os.path.join(builder.install_dir, info.version)
+ py_target = os.path.join(builder.install_dir, info.short_version)
buildbot_utils.call(builder.command_prefix + ['find', py_target, '-iname', '*.so', '-exec', 'strip', '-s', '{}', ';'])
# Construct package name
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 6287da55580..804447dbef3 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -748,8 +748,7 @@ function(get_blender_version)
# - BLENDER_VERSION (major.minor)
# - BLENDER_VERSION_MAJOR
# - BLENDER_VERSION_MINOR
- # - BLENDER_SUBVERSION (used for internal versioning mainly)
- # - BLENDER_VERSION_CHAR (a, b, c, ...or empty string)
+ # - BLENDER_VERSION_PATCH
# - BLENDER_VERSION_CYCLE (alpha, beta, rc, release)
# So cmake depends on BKE_blender.h, beware of inf-loops!
@@ -759,25 +758,15 @@ function(get_blender_version)
file(STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h _contents REGEX "^#define[ \t]+BLENDER_.*$")
string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION[ \t]+([0-9]+).*" "\\1" _out_version "${_contents}")
- string(REGEX REPLACE ".*#define[ \t]+BLENDER_SUBVERSION[ \t]+([0-9]+).*" "\\1" _out_subversion "${_contents}")
- string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CHAR[ \t]+([a-z]+).*" "\\1" _out_version_char "${_contents}")
+ string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_PATCH[ \t]+([0-9]+).*" "\\1" _out_version_patch "${_contents}")
string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CYCLE[ \t]+([a-z]+).*" "\\1" _out_version_cycle "${_contents}")
if(NOT ${_out_version} MATCHES "[0-9]+")
message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION")
endif()
- if(NOT ${_out_subversion} MATCHES "[0-9]+")
- message(FATAL_ERROR "Version parsing failed for BLENDER_SUBVERSION")
- endif()
-
- # clumsy regex, only single char are ok but it could be unset
-
- string(LENGTH "${_out_version_char}" _out_version_char_len)
- if(NOT _out_version_char_len EQUAL 1)
- set(_out_version_char "")
- elseif(NOT ${_out_version_char} MATCHES "[a-z]+")
- message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CHAR")
+ if(NOT ${_out_version_patch} MATCHES "[0-9]+")
+ message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_PATCH")
endif()
if(NOT ${_out_version_cycle} MATCHES "[a-z]+")
@@ -787,23 +776,11 @@ function(get_blender_version)
math(EXPR _out_version_major "${_out_version} / 100")
math(EXPR _out_version_minor "${_out_version} % 100")
- # for packaging, alpha to numbers
- string(COMPARE EQUAL "${_out_version_char}" "" _out_version_char_empty)
- if(${_out_version_char_empty})
- set(_out_version_char_index "0")
- else()
- set(_char_ls a b c d e f g h i j k l m n o p q r s t u v w x y z)
- list(FIND _char_ls ${_out_version_char} _out_version_char_index)
- math(EXPR _out_version_char_index "${_out_version_char_index} + 1")
- endif()
-
# output vars
set(BLENDER_VERSION "${_out_version_major}.${_out_version_minor}" PARENT_SCOPE)
set(BLENDER_VERSION_MAJOR "${_out_version_major}" PARENT_SCOPE)
set(BLENDER_VERSION_MINOR "${_out_version_minor}" PARENT_SCOPE)
- set(BLENDER_SUBVERSION "${_out_subversion}" PARENT_SCOPE)
- set(BLENDER_VERSION_CHAR "${_out_version_char}" PARENT_SCOPE)
- set(BLENDER_VERSION_CHAR_INDEX "${_out_version_char_index}" PARENT_SCOPE)
+ set(BLENDER_VERSION_PATCH "${_out_version_patch}" PARENT_SCOPE)
set(BLENDER_VERSION_CYCLE "${_out_version_cycle}" PARENT_SCOPE)
endfunction()
diff --git a/build_files/cmake/packaging.cmake b/build_files/cmake/packaging.cmake
index 0e530463659..de27d31323d 100644
--- a/build_files/cmake/packaging.cmake
+++ b/build_files/cmake/packaging.cmake
@@ -7,7 +7,7 @@ set(PROJECT_VENDOR "Blender Foundation")
set(MAJOR_VERSION ${BLENDER_VERSION_MAJOR})
set(MINOR_VERSION ${BLENDER_VERSION_MINOR})
-set(PATCH_VERSION ${BLENDER_VERSION_CHAR_INDEX})
+set(PATCH_VERSION ${BLENDER_VERSION_PATCH})
set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
set(CPACK_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
diff --git a/build_files/utils/make_source_archive.sh b/build_files/utils/make_source_archive.sh
index cafd1c31486..5d9096f3235 100755
--- a/build_files/utils/make_source_archive.sh
+++ b/build_files/utils/make_source_archive.sh
@@ -7,15 +7,14 @@ BASE_DIR="$PWD"
blender_srcdir=$(dirname -- $0)/../..
blender_version=$(grep "BLENDER_VERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
-blender_version_char=$(grep "BLENDER_VERSION_CHAR\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
+blender_version_patch=$(grep "BLENDER_VERSION_PATCH\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
-blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}')
+VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100).$blender_version_patch
if [ "$blender_version_cycle" = "release" ] ; then
- VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)$blender_version_char
SUBMODULE_EXCLUDE="^\(release/scripts/addons_contrib\)$"
else
- VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)_$blender_subversion
+ VERSION=$VERSION-$blender_version_cycle
SUBMODULE_EXCLUDE="^$" # dummy regex
fi
diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py
index 84a5af8b11e..676fa26a17a 100644
--- a/doc/python_api/sphinx_doc_gen.py
+++ b/doc/python_api/sphinx_doc_gen.py
@@ -403,32 +403,21 @@ MODULE_GROUPING = {
# -------------------------------BLENDER----------------------------------------
-blender_version_strings = [str(v) for v in bpy.app.version]
-is_release = bpy.app.version_cycle in {"rc", "release"}
-
# converting bytes to strings, due to T30154
BLENDER_REVISION = str(bpy.app.build_hash, 'utf_8')
-if is_release:
- # '2.62a'
- BLENDER_VERSION_DOTS = ".".join(blender_version_strings[:2]) + bpy.app.version_char
-else:
- # '2.62.1'
- BLENDER_VERSION_DOTS = ".".join(blender_version_strings)
+# '2.83.0 Beta' or '2.83.0' or '2.83.1'
+BLENDER_VERSION_DOTS = bpy.app.version_string
if BLENDER_REVISION != "Unknown":
- # '2.62a SHA1' (release) or '2.62.1 SHA1' (non-release)
+ # SHA1 Git hash
BLENDER_VERSION_HASH = BLENDER_REVISION
else:
# Fallback: Should not be used
BLENDER_VERSION_HASH = "Hash Unknown"
-if is_release:
- # '2_62a_release'
- BLENDER_VERSION_PATH = "%s%s_release" % ("_".join(blender_version_strings[:2]), bpy.app.version_char)
-else:
- # '2_62_1'
- BLENDER_VERSION_PATH = "_".join(blender_version_strings)
+# '2_83'
+BLENDER_VERSION_PATH = "%d_%d" % (bpy.app.version[0], bpy.app.version[1])
# --------------------------DOWNLOADABLE FILES----------------------------------
diff --git a/doc/python_api/sphinx_doc_gen.sh b/doc/python_api/sphinx_doc_gen.sh
index 45cd6a229e5..1c5b9ec0b61 100755
--- a/doc/python_api/sphinx_doc_gen.sh
+++ b/doc/python_api/sphinx_doc_gen.sh
@@ -36,16 +36,10 @@ fi
blender_srcdir=$(dirname -- $0)/../..
blender_version_header="$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h"
blender_version=$(grep "BLENDER_VERSION\s" "$blender_version_header" | awk '{print $3}')
-blender_version_char
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list