Updating version pom.xml include -SNAPSHOT in version CMakeLists.txt set PROJECT_VERSION_SUFFIX to "-alpha" + LIBVERSION_{API,BUILD} configure.ac AC_INIT + GEOGRAPHICLIB_VERSION_* + LT_{CURRENT,REVISION,AGE} devel/test-distribution VERSION, SUFFIX, BRANCH doc/GeographicLib.dox.in set date to mm-dd start new change log entry CMake configuration How this proceeds depends on whether you're building from a release package or not. A release package (marked by a file named VERSION at the top level) has preprocessed man pages and so can be built without the extra tools needed for processing the pod-style man pages; in addition, the release package has a configure script (created by autogen.sh) for autoconf-style builds. CMake options and variables: see CMakeLists.txt for information BUILD_SHARED_LIBS ON BUILD_BOTH_LIBS OFF BUILD_DOCUMENTATION OFF USE_BOOST_FOR_EXAMPLES OFF CONVERT_WARNINGS_TO_ERRORS OFF (ON in non-RELEASE mode) BUILD_MANPAGES OFF (ON in non-release mode) GEOGRAPHICLIB_DATA /usr/local/share/GeographicLib or C:/ProgramData/GeographicLib GEOGRAPHICLIB_PRECISION 2 1 = float 2 = double 3 = extended 4 = quadruple (boost float128) 5 = variable (mpreal) Where things get installed. Use an empty string to disable that installation CMAKE_INSTALL_PREFIX INCDIR "include" "Where to install header files" BINDIR "bin" "Where to install tools" SBINDIR "sbin" "Where to install admin tools" ("" for Windows) LIBDIR "lib" "Where to install libraries" this is set to ${CMAKE_INSTALL_LIBDIR} if that's defined DLLDIR "bin" "Where to install dlls" MANDIR "share/man" "Where to install the man pages" CMAKEDIR "lib/cmake/GeographicLib "Where to install cmake configs" PKGDIR "lib/pkgconfig" "Where to install package config" DOCDIR "share/doc/GeographicLib" "Where to install documentation" EXAMPLEDIR "share/doc/GeographicLib-dev" "Where to install examples" CMAKE_DEBUG_POSTFIX "The suffix for debug objects" "_d" Windows only PACKAGE_DEBUG_LIBS "Include debug versions of library in binary package" OFF CMake targets release mode all test sanitize hygiene check on source files (trailing blanks, etc) exampleprograms compile example programs (this is separate cmake config) package make binary package for Windows package_source make source package maintainer doc (if BUILD_DOCUMENTATION and doxygen found) prep-source prep source distribute prior to making release package distrib-man create extra versions of man pages distrib-all distrib-man + run autogen for autoconf builds dist Package release into a tar.gz + zip files stage-doc copy documenation to staging area stage-dist copy source distribution to data-distrib deploy-doc deploy documentation from staging area to sourceforge deploy-dist deploy source distributions from data-distrib to staging area and then to sourceforge deploy-data deploy geoid data etc develprograms build experimental stuff Version update checks Add PROJECT_VERSION_SUFFIX = "-alpha" to tar package of source Do not add PROJECT_VERSION_SUFFIX to unpack directory for tar package documentation Debian maintainers Francesco Paolo Lovergine (QA Page) Bas Couwenberg (QA Page) Fedora maintainer rmattes, smani binaries for cgi scripts run compile.sh (copy in cgi-bin) When ready for switch over, do cd /home/project-web/geographiclib rm bin ln -s bin-$VERSION bin make -f makefile-admin distrib-cgi update binaries for cgi applications Release checklist: Merge all changes to main test-distribution.sh: set SUFFIX= and BRANCH=main CMakeLists.txt set PROJECT_VERSION_SUFFIX suffix to "" pom.xml keeps SNAPSHOT for now Update NEWS Set date in NEWS and GeographicLib.dox.in run develop/test-distribution.sh run windows build copy windows installers to data-distrib/distrib-C++ fix permissions on installers remove alpha/rc versions of installers switch C++/doc link to latest version make stage-{doc,dist} make deploy-{doc,dist} checkin and tag release branch & push tag main branch trigger build on build-open update binaries for cgi applications make stage-cgi deploy-cgi ssh -t karney,geographiclib@shell.sourceforge.net create update VERSION in compile.sh and compile Local install sudo make -C $TEMP/relc/GeographicLib-$VERSION/BUILD-system install set default downloads for distrib-C++ on sourceforge post changes on sourceforge news + email to geographiclib-announce@lists.sourceforge.net VERSION=2.1.2 Brew... brew update cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula git checkout master; git pull? edit geographiclib.rb changing url and sha256 brew uninstall geographiclib brew install --build-from-source geographiclib brew reinstall --build-from-source geographiclib brew test geographiclib brew audit --strict geographiclib brew style geographiclib git checkout -b geographiclib/$VERSION git add geographiclib.rb git commit -m "geographiclib $VERSION" git push --set-upstream cffk geographiclib/$VERSION trigger a PR conda-forge... geographiclib-cpp-feedstock edit recipe/bld.bat recipe/build.sh recipe/meta.yaml conda remove -y -n build --all conda create -y -n build conda activate build conda install -y conda-build conda-verify conda-forge-pinning conda build recipe --variant-config-file $CONDA_PREFIX/conda_build_config.yaml Package in ~/miniconda3/envs/build/conda-bld/linux-64/geographiclib-cpp-$VERSION-*.tar.bz2 conda deactivate conda remove -y -n geog-test --all conda create -y -n geog-test ~/miniconda3/envs/build/conda-bld/linux-64/geographiclib-cpp-$VERSION-*.tar.bz2 conda activate geog-test type GeoConvert git checkout -b v$VERSION conda install -c conda-forge conda-smithy conda smithy rerender commit changes git push --set-upstream cffk v$VERSION vcpkg... git pull git branch -b geographiclib/$VERSION update ports/geographiclib ./vcpkg remove geographiclib ./vcpkg install 'geographiclib[tools]' binaries in installed/x64-linux/tools/geographiclib libs in installed/x64-linux/{include,lib,debug/lib} commit changes # ./vcpkg x-add-version geographiclib ./vcpkg x-add-version --all commit again commit message = [geographiclib] Update to version $VERSION git push --set-upstream cffk geographiclib/$VERSION