THRIFT-4720: documenting breaking changes, minor cleanup
diff --git a/build/appveyor/MSVC-appveyor-build.bat b/build/appveyor/MSVC-appveyor-build.bat
index a4b92a2..0b7f0ef 100644
--- a/build/appveyor/MSVC-appveyor-build.bat
+++ b/build/appveyor/MSVC-appveyor-build.bat
@@ -21,6 +21,21 @@
 MKDIR "%BUILDDIR%"                          || EXIT /B
 CD "%BUILDDIR%"                             || EXIT /B
 
+:: When libraries cannot be found, things might have been updated
+:: so uncomment this and submit a pull request to see what's there
+:: now...
+:: DIR C:\Libraries
+:: DIR C:\Libraries\boost_1_69_0\lib*
+:: DIR C:\Libraries\boost_1_68_0\lib*
+:: DIR C:\Libraries\boost_1_67_0\lib*
+:: DIR C:\Libraries\boost_1_66_0\lib*
+:: DIR C:\Libraries\boost_1_65_0\lib*
+:: DIR C:\Libraries\boost_1_64_0\lib*
+:: DIR C:\Libraries\boost_1_63_0\lib*
+:: DIR C:\Libraries\boost_1_62_0\lib*
+:: DIR C:\Libraries\boost_1_61_0\lib*
+:: DIR C:\Libraries\boost_1_60_0\lib*
+
 @ECHO ON
   cmake "%SRCDIR%" ^
     -G"%GENERATOR%" ^
diff --git a/build/cmake/BoostMacros.cmake b/build/cmake/BoostMacros.cmake
new file mode 100644
index 0000000..0c7f13d
--- /dev/null
+++ b/build/cmake/BoostMacros.cmake
@@ -0,0 +1,41 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+set(BOOST_MINREV 1.53)
+
+macro(REQUIRE_BOOST_HEADERS)
+  find_package(Boost ${BOOST_MINREV} QUIET REQUIRED)
+  if (NOT Boost_FOUND)
+    string(CONCAT fatal_message
+	    "Boost 1.53 or later is required to build sources in ${CMAKE_CURRENT_SOURCE_DIR}")
+    message(FATAL_ERROR, ${fatal_message})
+  endif()
+  include_directories(SYSTEM "${Boost_INCLUDE_DIRS}")
+endmacro()
+
+macro(REQUIRE_BOOST_LIBRARIES libs)
+  message(STATUS "Locating boost libraries required by sources in ${CMAKE_CURRENT_SOURCE_DIR}")
+  find_package(Boost ${BOOST_MINREV} REQUIRED COMPONENTS ${${libs}})
+  if (NOT Boost_FOUND)
+    string(CONCAT fatal_message
+	    "Boost 1.53 or later is required to build sources in ${CMAKE_CURRENT_SOURCE_DIR}, "
+	    "or use -DBUILD_TESTING=OFF")
+    message(FATAL_ERROR, ${fatal_message})
+  endif()
+endmacro()
diff --git a/build/cmake/DefineCMakeDefaults.cmake b/build/cmake/DefineCMakeDefaults.cmake
index 93255e0..7ae2136 100644
--- a/build/cmake/DefineCMakeDefaults.cmake
+++ b/build/cmake/DefineCMakeDefaults.cmake
@@ -34,10 +34,6 @@
 # since cmake 2.4.0
 set(CMAKE_COLOR_MAKEFILE ON)
 
-# Define the generic version of the libraries here
-set(GENERIC_LIB_VERSION "1.0.0")
-set(GENERIC_LIB_SOVERSION "0")
-
 # Set the default build type to release with debug info
 if (NOT CMAKE_BUILD_TYPE)
   set(CMAKE_BUILD_TYPE RelWithDebInfo
diff --git a/build/cmake/DefineOptions.cmake b/build/cmake/DefineOptions.cmake
index 9aff53c..207b770 100644
--- a/build/cmake/DefineOptions.cmake
+++ b/build/cmake/DefineOptions.cmake
@@ -50,7 +50,6 @@
 # C++
 option(WITH_CPP "Build C++ Thrift library" ON)
 if(WITH_CPP)
-    find_package(Boost 1.53 QUIET)
     # NOTE: Currently the following options are C++ specific,
     # but in future other libraries might reuse them.
     # So they are not dependent on WITH_CPP but setting them without WITH_CPP currently
@@ -78,10 +77,11 @@
     find_package(OpenSSL QUIET)
     CMAKE_DEPENDENT_OPTION(WITH_OPENSSL "Build with OpenSSL support" ON
                            "OPENSSL_FOUND" OFF)
+    # if disabled, builds with posix thread class - deprecated and will be removed...
     option(WITH_STDTHREADS "Build with C++ std::thread support" ON)
 endif()
 CMAKE_DEPENDENT_OPTION(BUILD_CPP "Build C++ library" ON
-                       "BUILD_LIBRARIES;WITH_CPP;Boost_FOUND" OFF)
+                       "BUILD_LIBRARIES;WITH_CPP" OFF)
 CMAKE_DEPENDENT_OPTION(WITH_PLUGIN "Build compiler plugin support" OFF
                        "BUILD_COMPILER;BUILD_CPP" OFF)
 
@@ -93,20 +93,9 @@
 CMAKE_DEPENDENT_OPTION(BUILD_C_GLIB "Build C (GLib) library" ON
                        "BUILD_LIBRARIES;WITH_C_GLIB;GLIB_FOUND" OFF)
 
-if(BUILD_CPP)
-    set(boost_components)
-    if(BUILD_TESTING)
-        list(APPEND boost_components system thread)
-    endif()
-    if(BUILD_TESTING)
-        list(APPEND boost_components unit_test_framework filesystem chrono program_options)
-    endif()
-    if(boost_components)
-        find_package(Boost 1.53 REQUIRED COMPONENTS ${boost_components})
-    endif()
-elseif(BUILD_C_GLIB AND BUILD_TESTING)
-    find_package(Boost 1.53 REQUIRED)
-endif()
+	       #if(BUILD_C_GLIB AND BUILD_TESTING)
+	       #    find_package(Boost 1.53 REQUIRED)
+	       #endif()
 
 # Java
 option(WITH_JAVA "Build Java Thrift library" ON)
@@ -170,7 +159,6 @@
 message(STATUS " Language libraries:")
 message(STATUS "  Build C++ library:                          ${BUILD_CPP}")
 MESSAGE_DEP(WITH_CPP "Disabled by WITH_CPP=OFF")
-MESSAGE_DEP(Boost_FOUND "Boost headers missing")
 message(STATUS "    C++ Language Level:                       ${CXX_LANGUAGE_LEVEL}")
 message(STATUS "  Build C (GLib) library:                     ${BUILD_C_GLIB}")
 MESSAGE_DEP(WITH_C_GLIB "Disabled by WITH_C_GLIB=OFF")
diff --git a/build/docker/scripts/cmake.sh b/build/docker/scripts/cmake.sh
index ccc311e..eb384d5 100755
--- a/build/docker/scripts/cmake.sh
+++ b/build/docker/scripts/cmake.sh
@@ -19,5 +19,4 @@
 done
 $MAKEPROG -j3
 cpack
-ctest -VV -E "(python_test)"
-# disabled cmake python_test for now since it fails in travis under centos
+ctest -VV
diff --git a/build/veralign.sh b/build/veralign.sh
index 61744b4..491ef36 100755
--- a/build/veralign.sh
+++ b/build/veralign.sh
@@ -49,11 +49,11 @@
 
 # These files can be updated automatically:
 FILES[ApacheThrift.nuspec]=simpleReplace
+FILES[CMakeLists.txt]=simpleReplace
 FILES[Thrift-swift3.podspec]=simpleReplace
 FILES[Thrift.podspec]=simpleReplace
 FILES[appveyor.yml]=simpleReplace
 FILES[bower.json]=jsonReplace
-FILES[build/cmake/DefineCMakeDefaults.cmake]=simpleReplace
 FILES[configure.ac]=configureReplace
 FILES[contrib/thrift.spec]=simpleReplace
 FILES[lib/cocoa/src/Thrift.h]=simpleReplace
@@ -100,7 +100,7 @@
 FILES[tutorial/hs/ThriftTutorial.cabal]=simpleReplace
 FILES[tutorial/ocaml/_oasis]=simpleReplace
 
-if [ ! -f "CHANGES" ]; then
+if [ ! -f "CHANGES.md" ]; then
     >&2 echo "error: run veralign.sh while in the thrift root directory"
     exit 1
 fi