From eabf5880228f6af33a1d14ec3859fc38541f1c24 Mon Sep 17 00:00:00 2001 From: deegan Date: Thu, 10 Apr 2025 10:09:19 +0200 Subject: [PATCH] release procedure new highfive github url --- CMakeLists.txt | 4 ++++ RELEASE.md | 11 +++++++++++ res/cmake/def.cmake | 1 + res/cmake/dep.cmake | 1 + res/cmake/dep/cppdict.cmake | 8 +++++--- res/cmake/dep/highfive.cmake | 11 +++++------ res/cmake/dep/pybind.cmake | 9 ++++++--- res/cmake/dep/samrai.cmake | 8 ++++++-- res/cmake/options.cmake | 2 ++ res/cmake/release.cmake | 16 ++++++++++++++++ src/diagnostic/CMakeLists.txt | 4 ++++ src/python3/CMakeLists.txt | 2 +- tests/amr/tagging/test_tagging.cpp | 20 ++++++++++---------- 13 files changed, 72 insertions(+), 25 deletions(-) create mode 100644 RELEASE.md create mode 100644 res/cmake/release.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 285913221..f89a6d74b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,10 @@ find_package(Python 3.8 COMPONENTS Interpreter Development REQUIRED) set(PHARE_PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(CMAKE_EXPORT_COMPILE_COMMANDS 1) +if(EXISTS "${PHARE_PROJECT_DIR}/release.ver.txt") # delete file to use newer deps + include("${PHARE_PROJECT_DIR}/res/cmake/release.cmake") +endif() + include_directories(${PHARE_PROJECT_DIR}/src) include("${PHARE_PROJECT_DIR}/res/cmake/options.cmake") diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 000000000..2aaf23ca3 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,11 @@ +## Releasing a new version of PHARE + +- [ ] Review file: res/cmake/release.cmake +- [ ] Update to use latest (if safe) versions +- [ ] PR updates to master +- [ ] Cut branch from master as $MAJ.$MIN.x if required +- [ ] Write/commit/push release.ver.txt + echo $MAJ.$MIN.$PATCH > release.ver.txt + git commit -m "releasing $MAJ.$MIN.$PATCH" + git push origin $MAJ.$MIN.x +- [ ] Release on github as $MAJ.$MIN.$PATCH diff --git a/res/cmake/def.cmake b/res/cmake/def.cmake index 684425235..f86854286 100644 --- a/res/cmake/def.cmake +++ b/res/cmake/def.cmake @@ -87,6 +87,7 @@ if(devMode) # -DdevMode=ON set(PHARE_WITH_CCACHE TRUE) endif() endif() + endif(devMode) function(phare_sanitize_ san cflags ) diff --git a/res/cmake/dep.cmake b/res/cmake/dep.cmake index 803634af3..0e51537df 100644 --- a/res/cmake/dep.cmake +++ b/res/cmake/dep.cmake @@ -2,6 +2,7 @@ function(phare_git_get_or_update name dir url branch) if (NOT EXISTS ${dir}) + message("cloning ${url} ${branch}" ) execute_process( COMMAND ${Git} clone ${url} ${dir} -b ${branch} --recursive --depth 1 --shallow-submodules ) diff --git a/res/cmake/dep/cppdict.cmake b/res/cmake/dep/cppdict.cmake index 44b5fdedc..ddfca248a 100644 --- a/res/cmake/dep/cppdict.cmake +++ b/res/cmake/dep/cppdict.cmake @@ -1,6 +1,8 @@ -set(CPPDICT_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/subprojects/cppdict) -set(CPPDICT_VERSION master) -phare_github_get_or_update(cppdict ${CPPDICT_SRCDIR} LaboratoryOfPlasmaPhysics/cppdict ${CPPDICT_VERSION}) +if(NOT DEFINED PHARE_CPPDICT_VERSION) + SET(PHARE_CPPDICT_VERSION "master") +endif() +set(CPPDICT_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/subprojects/cppdict) +phare_github_get_or_update(cppdict ${CPPDICT_SRCDIR} LaboratoryOfPlasmaPhysics/cppdict ${PHARE_CPPDICT_VERSION}) diff --git a/res/cmake/dep/highfive.cmake b/res/cmake/dep/highfive.cmake index 7215a6240..6e3e6ae0b 100644 --- a/res/cmake/dep/highfive.cmake +++ b/res/cmake/dep/highfive.cmake @@ -3,15 +3,14 @@ set (PHARE_HAS_HIGHFIVE "0") if(HighFive) + if(NOT DEFINED PHARE_HIGHFIVE_VERSION) + SET(PHARE_HIGHFIVE_VERSION "main") + endif() + set (HIGHFIVE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/subprojects/highfive) - set (HIGHFIVE_VERSION main) - phare_github_get_or_update(HighFive ${HIGHFIVE_SRC} highfive-devs/highfive ${HIGHFIVE_VERSION}) + phare_github_get_or_update(HighFive ${HIGHFIVE_SRC} highfive-devs/highfive ${PHARE_HIGHFIVE_VERSION}) - include_directories( - ${HIGHFIVE_SRC}/include - ${CMAKE_BINARY_DIR}/subprojects/highfive/include # configured include for version info - ) set(HIGHFIVE_UNIT_TESTS OFF) # silence warning set(HIGHFIVE_USE_BOOST OFF) set(HIGHFIVE_BUILD_DOCS OFF) # conflicts with phare doc target diff --git a/res/cmake/dep/pybind.cmake b/res/cmake/dep/pybind.cmake index 98bc1879e..9ec5fa9a0 100644 --- a/res/cmake/dep/pybind.cmake +++ b/res/cmake/dep/pybind.cmake @@ -9,11 +9,14 @@ function(get_pybind) set (PHARE_FLAGS ${PHARE_FLAGS} -fsized-deallocation) endif() - message("downloading subproject pybind11") set(PYBIND11_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/subprojects/pybind11) - set(PYBIND11_VERSION "master") + if(NOT DEFINED PHARE_PYBIND11_VERSION) + SET(PHARE_PYBIND11_VERSION "v2.13.6") # github.com/pybind/pybind11/pull/5553 broke master + endif() + + set(PYBIND11_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/subprojects/pybind11) - phare_github_get_or_update(pybind11 ${PYBIND11_SRCDIR} pybind/pybind11 ${PYBIND11_VERSION}) + phare_github_get_or_update(pybind11 ${PYBIND11_SRCDIR} pybind/pybind11 ${PHARE_PYBIND11_VERSION}) add_subdirectory(${PYBIND11_SRCDIR}) diff --git a/res/cmake/dep/samrai.cmake b/res/cmake/dep/samrai.cmake index d4cc3354f..d90f2a86b 100644 --- a/res/cmake/dep/samrai.cmake +++ b/res/cmake/dep/samrai.cmake @@ -10,11 +10,15 @@ if (NOT SAMRAI_FOUND) if(DEFINED SAMRAI_ROOT) find_package(SAMRAI PATHS ${SAMRAI_ROOT} REQUIRED) else() - set(SAMRAI_VERSION develop) + + if(NOT DEFINED PHARE_SAMRAI_VERSION) + SET(PHARE_SAMRAI_VERSION "develop") + endif() + set(SAMRAI_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/subprojects/samrai) set(SAMRAI_BIN ${CMAKE_CURRENT_BINARY_DIR}/subprojects/samrai) - phare_github_get_or_update(SAMRAI ${SAMRAI_SRCDIR} LLNL/SAMRAI ${SAMRAI_VERSION}) + phare_github_get_or_update(SAMRAI ${SAMRAI_SRCDIR} LLNL/SAMRAI ${PHARE_SAMRAI_VERSION}) if (NOT CMAKE_BUILD_TYPE STREQUAL "Release") # enable samrai assertions if not in release mode diff --git a/res/cmake/options.cmake b/res/cmake/options.cmake index 20266c84a..20a243405 100644 --- a/res/cmake/options.cmake +++ b/res/cmake/options.cmake @@ -133,3 +133,5 @@ function(print_phare_options) endif() endfunction(print_phare_options) + + diff --git a/res/cmake/release.cmake b/res/cmake/release.cmake new file mode 100644 index 000000000..37d645033 --- /dev/null +++ b/res/cmake/release.cmake @@ -0,0 +1,16 @@ +## +# Release info +# KEEP SIMPLE! +# + +# https://github.com/LLNL/SAMRAI/releases/tag/v-4-3-0 +SET(PHARE_SAMRAI_VERSION "v-4-3-0") + +# https://github.com/pybind/pybind11/releases/tag/v2.13.6 +SET(PHARE_PYBIND11_VERSION "v2.13.6") + +# https://github.com/highfive-devs/highfive/releases/tag/v3.0.0-beta2 +SET(PHARE_HIGHFIVE_VERSION "v3.0.0-beta2") + +# https://github.com/LaboratoryOfPlasmaPhysics/cppdict/releases/tag/v1.0.0 +SET(PHARE_CPPDICT_VERSION "v1.0.0") diff --git a/src/diagnostic/CMakeLists.txt b/src/diagnostic/CMakeLists.txt index 8759c822c..5a97d1d60 100644 --- a/src/diagnostic/CMakeLists.txt +++ b/src/diagnostic/CMakeLists.txt @@ -22,3 +22,7 @@ endif() add_library(${PROJECT_NAME} INTERFACE) target_link_libraries(${PROJECT_NAME} INTERFACE phare_amr) + +if (HighFive) + target_link_libraries(${PROJECT_NAME} INTERFACE HighFive) +endif() diff --git a/src/python3/CMakeLists.txt b/src/python3/CMakeLists.txt index dc127e80b..b6f7f220e 100644 --- a/src/python3/CMakeLists.txt +++ b/src/python3/CMakeLists.txt @@ -28,7 +28,7 @@ endif (CMAKE_BUILD_TYPE STREQUAL "Debug") pybind11_add_module(cpp_etc cpp_etc.cpp) target_compile_options(cpp_etc PRIVATE ${PHARE_WERROR_FLAGS} -DPHARE_HAS_HIGHFIVE=${PHARE_HAS_HIGHFIVE}) -target_link_libraries(cpp_etc PUBLIC phare_amr) # gives us samrai header includes +target_link_libraries(cpp_etc PUBLIC phare_amr phare_diagnostic) set_target_properties(cpp_etc PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/pybindlibs" diff --git a/tests/amr/tagging/test_tagging.cpp b/tests/amr/tagging/test_tagging.cpp index 238126749..7474303ec 100644 --- a/tests/amr/tagging/test_tagging.cpp +++ b/tests/amr/tagging/test_tagging.cpp @@ -2,7 +2,7 @@ #include #include -#include "phare/phare.hpp" +#include "phare_solver.hpp" #include "amr/tagging/tagger.hpp" #include "amr/tagging/tagger_factory.hpp" #include "amr/resources_manager/resources_manager.hpp" @@ -23,23 +23,23 @@ using namespace PHARE::amr; TEST(test_tagger, fromFactoryValid) { - using phare_types = PHARE::PHARE_Types<1, 1, 2>; + using phare_types = PHARE::solver::PHARE_Types<1, 1, 2>; PHARE::initializer::PHAREDict dict; - dict["model"] = std::string{"HybridModel"}; - dict["method"] = std::string{"default"}; - dict["threshold"] = 0.2; + dict["model"] = std::string{"HybridModel"}; + dict["method"] = std::string{"default"}; + dict["threshold"] = 0.2; auto hybridTagger = TaggerFactory::make(dict); EXPECT_TRUE(hybridTagger != nullptr); } TEST(test_tagger, fromFactoryInvalid) { - using phare_types = PHARE::PHARE_Types<1, 1, 2>; + using phare_types = PHARE::solver::PHARE_Types<1, 1, 2>; PHARE::initializer::PHAREDict dict; - dict["model"] = std::string{"invalidModel"}; - dict["method"] = std::string{"invalidStrat"}; + dict["model"] = std::string{"invalidModel"}; + dict["method"] = std::string{"invalidStrat"}; auto hybridTagger = TaggerFactory::make(dict); - auto badTagger = TaggerFactory::make(dict); + auto badTagger = TaggerFactory::make(dict); EXPECT_TRUE(badTagger == nullptr); } @@ -169,7 +169,7 @@ struct TestTagger : public ::testing::Test auto static constexpr interp_order = TaggingTestInfo_t::interp; auto static constexpr refinedPartNbr = TaggingTestInfo_t::refinedPartNbr; - using phare_types = PHARE::PHARE_Types; + using phare_types = PHARE::solver::PHARE_Types; using Electromag = typename phare_types::Electromag_t; using Ions = typename phare_types::Ions_t; using Electrons = typename phare_types::Electrons_t;