Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test and support creation of reduced Trilinos tarballs #12024

Open
3 of 4 tasks
bartlettroscoe opened this issue Jul 7, 2023 · 13 comments
Open
3 of 4 tasks

Test and support creation of reduced Trilinos tarballs #12024

bartlettroscoe opened this issue Jul 7, 2023 · 13 comments
Labels
DO_NOT_AUTOCLOSE This issue should be exempt from auto-closing by the GitHub Actions bot. Framework tasks Framework tasks (used internally by Framework team)

Comments

@bartlettroscoe
Copy link
Member

bartlettroscoe commented Jul 7, 2023

CC: @sebrowne, @ccober6, @dridzal

Description

As described in #11976, there was no testing for the creation of reduced tarballs for Trilinos as described in Creating a tarball of the source tree. But there is a desire to maintain that feature, so we need tests. Some beefier tests for reduced tarball creation was added to TriBITS proper in TriBITS PR:

However, Trilinos needs its own automated tests for reduced tarball creation (in order to avoid Trilinos-specific problems like reported in #11976).

Tasks

@bartlettroscoe bartlettroscoe added the Framework tasks Framework tasks (used internally by Framework team) label Jul 7, 2023
@bartlettroscoe bartlettroscoe changed the title Test creation of reduced tarballs Test and product creation of reduced Trilinos tarballs Jul 7, 2023
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Jul 8, 2023
It appears that no Tpetra tests even use this file so why is it being copied
from Anasazi_SOURCE_DIR?  Well, when you create a reduced tarball with Tpetra
and without Anasazi, the packages/anasazi directory does not even exist and
the varaible Anasazi_SOURCE_DIR does not exist.
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Jul 8, 2023
…rilinos#12024)

This sets up a test that would have caught the problem in trilinos#11976 and will
provide some protection for reduced tarball creation going forward.

NOTE: Currently, this test will only be added if configure settings are passed
through `-D${CMAKE_PROJECT_NAME}_CONFIGURE_OPTIONS_FILE=<cache-file>.cmake`.
There is no way to pass that file (or thoses files) through `-C
<cache-file>.make`.
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Jul 9, 2023
…rilinos#12024)

This sets up a test that would have caught the problem in trilinos#11976 and will
provide some protection for reduced tarball creation going forward.

NOTE: Currently, this test will only be added if configure settings are passed
through `-D${CMAKE_PROJECT_NAME}_CONFIGURE_OPTIONS_FILE=<cache-file>.cmake`.
There is no way to pass that file (or thoses files) through `-C
<cache-file>.make`.
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Jul 9, 2023
…rilinos#12024)

This sets up a test that would have caught the problem in trilinos#11976 and will
provide some protection for reduced tarball creation going forward.

NOTE: Currently, this test will only be added if configure settings are passed
through `-D${CMAKE_PROJECT_NAME}_CONFIGURE_OPTIONS_FILE=<cache-file>.cmake`.
There is no way to pass that file (or thoses files) through `-C
<cache-file>.make`.
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Jul 12, 2023
…s#12024)

* Now TrilinosInstallTests will be enabled if any Trilinos package gets
  enabled.

* Removed dependence of TrilinosInstallTests on Tpetra.

This should give more consistent installation testing with Trilinos.  Prior to
this commit, only changes to Tpetra and packages upstream from Tpetra would
trigger the enable of the TrilinosInstallTests package and the running of
these tests.  Now, any change to any Trilinos packge will trigger some
installation testing.

See new TrilinosInstallTests/READMME.md file for details.
@bartlettroscoe
Copy link
Member Author

bartlettroscoe commented Jul 13, 2023

With the merge of PR #12044, the new test TrilinosInstallTests_reduced_tarball is defined but it does not run due to the PR testing process not passing the GenConfig <settings>.cmake file using -D Trilinos_CONFIGURE_OPTIONS_FILE=<base-path>/<settings>.cmake. Instead, it uses -C <base-path>/<settings>.cmake. You can see that this test gets disabled automatically in PR testing as shown, for example, in the clang configuration showing:

Processing enabled top-level package: TrilinosInstallTests (Libs, Tests, Examples)
...
-- TrilinosInstallTests_reduced_tarball: NOT added test because EXCLUDE_IF_NOT_TRUE Trilinos_CONFIGURE_OPTIONS_FILE=''!
...

The experimental builds that show the problems are given in the following comment blocks:

@bartlettroscoe
Copy link
Member Author

PASSED: TrilinosInstallTests_reduced_tarball using -D Trilinos_CONFIGURE_OPTIONS_FILE=<base-path>/<settings>.cmake

For these repo versions (click to expand)
$ gitdist-status 
--------------------------------------------------------------------------------------------------------------------------------------------------
| ID | Repo Dir                         | Branch                                 | Tracking Branch                                   | C | M | ? |
|----|----------------------------------|----------------------------------------|---------------------------------------------------|---|---|---|
|  0 | Trilinos (Base)                  | 11545-11976-cleanup-and-tribits-update | rab-github/11545-11976-cleanup-and-tribits-update |   |   |   |
|  1 | packages/framework/GenConfig     | 924a08a                                |                                                   |   |   |   |
|  2 | packages/framework/son-ini-files | master                                 | glex-tril/master                                  |   |   |   |
|  3 | packages/framework/srn-ini-files | master                                 | origin/master                                     |   |   |   |
|  4 | TriBITS                          | master                                 | github/master                                     |   |   |   |
|  5 | run_trilinos_pr_builds           | master                                 | glex-rabartl/master                               |   |   |   |
--------------------------------------------------------------------------------------------------------------------------------------------------

$ gitdist-repo-versions 
*** Base Git Repo: Trilinos
c84bb270800227cc4354fcdcacaad2be09a19d12 [Sun Jul 9 07:16:09 2023 -0600] <[email protected]>
TrilinosInstallTests: Add test TrilinosInstallTests_reduced_tarball (#12024)
*** Git Repo: packages/framework/GenConfig
924a08af66f0a0573b5dd1128179731489339aec [Wed Jun 15 15:55:48 2022 +0000] <[email protected]>
Merge branch 'del-gen-symlinks' into 'master'
*** Git Repo: packages/framework/son-ini-files
8c6b7cdae59a742e4e0cbc62229c38aca02cb265 [Thu Jul 6 19:48:41 2023 +0000] <[email protected]>
Merge branch 'SON-gpu-build' into 'master'
*** Git Repo: packages/framework/srn-ini-files
da821b1eb596b57a4f4672b94323e41e821f4997 [Thu Jun 8 14:31:49 2023 -0600] <[email protected]>
Merge branch 'sebrown/cts1' into 'master'
*** Git Repo: TriBITS
9111399d13fdd607dcf1faa3b3dc9a4a75d5f9f9 [Fri Jun 30 20:54:14 2023 -0400] <[email protected]>
Merge pull request #588 from TriBITSPub/color-always
*** Git Repo: run_trilinos_pr_builds
a689be32cdf668e4ce6bfa5e8be91b651846968b [Tue Mar 28 06:47:39 2023 -0600] <[email protected]>
Update set of PR builds as of 2023-03-28 (trilinos/Trilinos#11730)
Running this experimental build (click to expand)

Using the Trilinos GenConfig PR configuration with the files:

load-env.sh

if [[ "${SNLSYSTEM}" == "cee" ]] && [[ "${SEMS_MODULES_DEFINED}" != "1" ]] ; then
  echo "SEMS Modules not defined yet!  Defining ..."
  . /projects/sems/modulefiles/utils/sems-modules-init.sh ""
fi
export TRILINOS_DIR=/home/rabartl/Trilinos.base/Trilinos
source ${TRILINOS_DIR}/packages/framework/GenConfig/gen-config.sh \
--cmake-fragment GenConfigSettings.cmake \
rhel7_sems-clang-11.0.1-openmpi-1.10.1-serial_release-debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables \
--force -y \
"$@" \
${TRILINOS_DIR}

do-configure.base:

rm -rf CMakeCache.txt CMakeFiles
cmake \
-G Ninja \
-D Trilinos_CONFIGURE_OPTIONS_FILE=${PWD}/GenConfigSettings.cmake \
-D CTEST_BUILD_NAME=11545-11976-cleanup-and-tribits-update_rhel7_sems-clang-11.0.1-openmpi-1.10.1-serial_release-debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables \
-D CTEST_BUILD_FLAGS=-j16 \
-D CTEST_PARALLEL_LEVEL=16 \
-D Trilinos_ENABLE_ALL_FORWARD_DEP_PACKAGES=ON \
-D Trilinos_ENABLE_TESTS=ON \
"$@" \
${TRILINOS_DIR}

do-configure.tpetra_seacas_installtests

./do-configure.base \
-D Trilinos_ENABLE_ALL_FORWARD_DEP_PACKAGES=OFF \
-D Trilinos_ENABLE_Tpetra=ON \
-D Trilinos_ENABLE_SEACAS=ON \
-D Trilinos_ENABLE_TrilinosInstallTests=ON \
"$@"

NOTE: ABove, we are passing in -D Trilinos_CONFIGURE_OPTIONS_FILE=${PWD}/GenConfigSettings.cmake instead of using -C GenConfigSettings.cmake.

Using these files, do the configure and dashboard submission:

$ ssh crf450

$ cd /home/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/

$ . load-env.sh

$ ./do-configure.tpetra_installtests

$ make dashbaord

That submitted results to CDash at:

showing:

image

In the new test output TrilinosInstallTests_reduced_tarball you see:

================================================================================

TEST_2

Configure the reduced tarball

Creating new working directory '/home/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/packages/TrilinosInstallTests/TrilinosInstallTests_reduced_tarball/trilinos-14.3-Source_build'

Running: "/home/projects/sems/install/rhel7-x86_64/sems/utility/cmake/3.24.3/gcc/8.3.0/base/pwyrvxm/bin/cmake" "-DTrilinos_CONFIGURE_OPTIONS_FILE=/ascldap/users/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/GenConfigSettings.cmake" "-DCMAKE_C_COMPILER=/projects/sems/install/rhel7-x86_64/sems/compiler/gcc/5.3.0/openmpi/1.10.1/bin/mpicc" "-DCMAKE_CXX_COMPILER=/projects/sems/install/rhel7-x86_64/sems/compiler/gcc/5.3.0/openmpi/1.10.1/bin/mpicxx" "-DCMAKE_Fortan_COMPILER=/projects/sems/install/rhel7-x86_64/sems/compiler/gcc/5.3.0/openmpi/1.10.1/bin/mpif90" "-DTrilinos_ENABLE_ALL_PACKAGES=ON" "-DTrilinos_ASSERT_DEFINED_DEPENDENCIES=OFF" "../trilinos-14.3-Source"

  Running in working directory "/home/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/packages/TrilinosInstallTests/TrilinosInstallTests_reduced_tarball/trilinos-14.3-Source_build"

--------------------------------------------------------------------------------

-- The Current CXX Standard is : 17

Configuring Trilinos build directory

...
-- Reading in configuration options from /ascldap/users/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/GenConfigSettings.cmake ...
...

...

...
Processing enabled external package/TPL: HDF5 (enabled explicitly, disable with -DTPL_ENABLE_HDF5=OFF)
-- HDF5_LIBRARY_NAMES='hdf5;z;hdf5_hl'
-- TPL_HDF5_LIBRARIES='/projects/sems/install/rhel7-x86_64/sems/tpl/hdf5/1.10.6/gcc/5.3.0/openmpi/1.10.1/parallel/lib/libhdf5_hl.so;/projects/sems/install/rhel7-x86_64/sems/tpl/hdf5/1.10.6/gcc/5.3.0/openmpi/1.10.1/parallel/lib/libhdf5.so;/projects/sems/install/rhel7-x86_64/sems/tpl/zlib/1.2.8/gcc/5.3.0/base/lib/libz.so;-ldl'
-- Searching for headers in HDF5_INCLUDE_DIRS='/projects/sems/install/rhel7-x86_64/sems/tpl/hdf5/1.10.6/gcc/5.3.0/openmpi/1.10.1/parallel/include'
-- Searching for a header file in the set "hdf5.h":
--   Searching for header 'hdf5.h' ...
--     Found header '/projects/sems/install/rhel7-x86_64/sems/tpl/hdf5/1.10.6/gcc/5.3.0/openmpi/1.10.1/parallel/include//hdf5.h'
-- Found TPL 'HDF5' include dirs '/projects/sems/install/rhel7-x86_64/sems/tpl/hdf5/1.10.6/gcc/5.3.0/openmpi/1.10.1/parallel/include'
-- TPL_HDF5_INCLUDE_DIRS='/projects/sems/install/rhel7-x86_64/sems/tpl/hdf5/1.10.6/gcc/5.3.0/openmpi/1.10.1/parallel/include'
...

...

-- Configuring done
-- Generating done
...
-- Build files have been written to: /home/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/packages/TrilinosInstallTests/TrilinosInstallTests_reduced_tarball/trilinos-14.3-Source_build

That shows that it is enabling and finding the TPLs and the configure passes.

@bartlettroscoe
Copy link
Member Author

FAILED: TrilinosInstallTests_reduced_tarball using -C<base-path>/<settings>.cmake -D Trilinos_CONFIGURE_OPTIONS_FILE=<dummy>.cmake

For these repo versions (click to expand)
$ gitdist-status 
--------------------------------------------------------------------------------------------------------------------------------------------------
| ID | Repo Dir                         | Branch                                 | Tracking Branch                                   | C | M | ? |
|----|----------------------------------|----------------------------------------|---------------------------------------------------|---|---|---|
|  0 | Trilinos (Base)                  | 11545-11976-cleanup-and-tribits-update | rab-github/11545-11976-cleanup-and-tribits-update |   |   |   |
|  1 | packages/framework/GenConfig     | 924a08a                                |                                                   |   |   |   |
|  2 | packages/framework/son-ini-files | master                                 | glex-tril/master                                  |   |   |   |
|  3 | packages/framework/srn-ini-files | master                                 | origin/master                                     |   |   |   |
|  4 | TriBITS                          | master                                 | github/master                                     |   |   |   |
|  5 | run_trilinos_pr_builds           | master                                 | glex-rabartl/master                               |   |   |   |
--------------------------------------------------------------------------------------------------------------------------------------------------

$ gitdist-repo-versions 
*** Base Git Repo: Trilinos
c84bb270800227cc4354fcdcacaad2be09a19d12 [Sun Jul 9 07:16:09 2023 -0600] <[email protected]>
TrilinosInstallTests: Add test TrilinosInstallTests_reduced_tarball (#12024)
*** Git Repo: packages/framework/GenConfig
924a08af66f0a0573b5dd1128179731489339aec [Wed Jun 15 15:55:48 2022 +0000] <[email protected]>
Merge branch 'del-gen-symlinks' into 'master'
*** Git Repo: packages/framework/son-ini-files
8c6b7cdae59a742e4e0cbc62229c38aca02cb265 [Thu Jul 6 19:48:41 2023 +0000] <[email protected]>
Merge branch 'SON-gpu-build' into 'master'
*** Git Repo: packages/framework/srn-ini-files
da821b1eb596b57a4f4672b94323e41e821f4997 [Thu Jun 8 14:31:49 2023 -0600] <[email protected]>
Merge branch 'sebrown/cts1' into 'master'
*** Git Repo: TriBITS
9111399d13fdd607dcf1faa3b3dc9a4a75d5f9f9 [Fri Jun 30 20:54:14 2023 -0400] <[email protected]>
Merge pull request #588 from TriBITSPub/color-always
*** Git Repo: run_trilinos_pr_builds
a689be32cdf668e4ce6bfa5e8be91b651846968b [Tue Mar 28 06:47:39 2023 -0600] <[email protected]>
Update set of PR builds as of 2023-03-28 (trilinos/Trilinos#11730)
Running this experimental build (click to expand)

Using the Trilinos GenConfig PR configuration with the files:

load-env.sh

if [[ "${SNLSYSTEM}" == "cee" ]] && [[ "${SEMS_MODULES_DEFINED}" != "1" ]] ; then
  echo "SEMS Modules not defined yet!  Defining ..."
  . /projects/sems/modulefiles/utils/sems-modules-init.sh ""
fi
export TRILINOS_DIR=/home/rabartl/Trilinos.base/Trilinos
source ${TRILINOS_DIR}/packages/framework/GenConfig/gen-config.sh \
--cmake-fragment GenConfigSettings.cmake \
rhel7_sems-clang-11.0.1-openmpi-1.10.1-serial_release-debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables \
--force -y \
"$@" \
${TRILINOS_DIR}

do-configure.base:

rm -rf CMakeCache.txt CMakeFiles
cmake \
-G Ninja \
-C GenConfigSettings.cmake \
-D Trilinos_CONFIGURE_OPTIONS_FILE=${PWD}/dummy-cache-file.cmake \
-D CTEST_BUILD_NAME=11545-11976-cleanup-and-tribits-update_rhel7_sems-clang-11.0.1-openmpi-1.10.1-serial_release-debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables \
-D CTEST_BUILD_FLAGS=-j16 \
-D CTEST_PARALLEL_LEVEL=16 \
-D Trilinos_ENABLE_ALL_FORWARD_DEP_PACKAGES=ON \
-D Trilinos_ENABLE_TESTS=ON \
"$@" \
${TRILINOS_DIR}

do-configure.tpetra_seacas_installtests

./do-configure.base \
-D Trilinos_ENABLE_ALL_FORWARD_DEP_PACKAGES=OFF \
-D Trilinos_ENABLE_Tpetra=ON \
-D Trilinos_ENABLE_SEACAS=ON \
-D Trilinos_ENABLE_TrilinosInstallTests=ON \
"$@"

NOTE: Above, we are passing in instead of using -C GenConfigSettings.cmake (using a dummy -D Trilinos_CONFIGURE_OPTIONS_FILE=${PWD}/dummy-cache-file.cmake) instead of -D Trilinos_CONFIGURE_OPTIONS_FILE=${PWD}/GenConfigSettings.cmake.

Using these files, do the configure and dashboard submission:

$ ssh crf450

$ cd /home/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/

$ . load-env.sh

$ ./do-configure.tpetra_installtests

$ make dashbaord

That submitted results to CDash at:

showing:

image

showing the failing test TrilinosInstallTests_reduced_tarball showing:

================================================================================

TEST_2

Configure the reduced tarball

Creating new working directory '/home/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/packages/TrilinosInstallTests/TrilinosInstallTests_reduced_tarball/trilinos-14.3-Source_build'

Running: "/home/projects/sems/install/rhel7-x86_64/sems/utility/cmake/3.24.3/gcc/8.3.0/base/pwyrvxm/bin/cmake" "-DTrilinos_CONFIGURE_OPTIONS_FILE=/ascldap/users/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/dummy-cache-file.cmake" "-DCMAKE_C_COMPILER=/projects/sems/install/rhel7-x86_64/sems/compiler/gcc/5.3.0/openmpi/1.10.1/bin/mpicc" "-DCMAKE_CXX_COMPILER=/projects/sems/install/rhel7-x86_64/sems/compiler/gcc/5.3.0/openmpi/1.10.1/bin/mpicxx" "-DCMAKE_Fortan_COMPILER=/projects/sems/install/rhel7-x86_64/sems/compiler/gcc/5.3.0/openmpi/1.10.1/bin/mpif90" "-DTrilinos_ENABLE_ALL_PACKAGES=ON" "-DTrilinos_ASSERT_DEFINED_DEPENDENCIES=OFF" "../trilinos-14.3-Source"

  Running in working directory "/home/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/packages/TrilinosInstallTests/TrilinosInstallTests_reduced_tarball/trilinos-14.3-Source_build"

--------------------------------------------------------------------------------

...
-- Reading in configuration options from /ascldap/users/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/dummy-cache-file.cmake ...
...

...

Processing enabled external package/TPL: Matio (enabled by SEACASMat2exo, disable with -DTPL_ENABLE_Matio=OFF)
-- Matio_LIBRARY_NAMES='matio'
-- Searching for libs in Matio_LIBRARY_DIRS=''
-- Searching for a lib in the set "matio":
--   Searching for lib 'matio' ...
-- NOTE: Did not find a lib in the lib set "matio" for the TPL 'Matio'!
-- ERROR: Could not find the libraries for the TPL 'Matio'!
-- TIP: If the TPL 'Matio' is on your system then you can set:
     -DMatio_LIBRARY_DIRS='<dir0>;<dir1>;...'
   to point to the directories where these libraries may be found.
   Or, just set:
     -DTPL_Matio_LIBRARIES='<path-to-libs0>;<path-to-libs1>;...'
   to point to the full paths for the libraries which will
   bypass any search for libraries and these libraries will be used without
   question in the build.  (But this will result in a build-time error
   if not all of the necessary symbols are found.)
-- ERROR: Failed finding all of the parts of TPL 'Matio' (see above), Aborting!

-- NOTE: The find module file for this failed TPL 'Matio' is:
     /home/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/packages/TrilinosInstallTests/TrilinosInstallTests_reduced_tarball/trilinos-14.3-Source/cmake/TPLs/FindTPLMatio.cmake
   which is pointed to in the file:
     /home/rabartl/Trilinos.base/BUILDS/PR/pr_builds/clang-11.0.1/packages/TrilinosInstallTests/TrilinosInstallTests_reduced_tarball/trilinos-14.3-Source/TPLsList.cmake

TIP: One way to get past the configure failure for the
TPL 'Matio' is to simply disable it with:
  -DTPL_ENABLE_Matio=OFF
which will disable it and will recursively disable all of the
downstream packages that have required dependencies on it, including
the package 'SEACASMat2exo' which triggered its enable.
When you reconfigure, just grep the cmake stdout for 'Matio'
and then follow the disables that occur as a result to see what impact
this TPL disable has on the configuration of Trilinos.

CMake Error at cmake/tribits/core/package_arch/TribitsProcessEnabledTpls.cmake:278 (message):
  ERROR: TPL_Matio_NOT_FOUND=TRUE, aborting!
Call Stack (most recent call first):
  cmake/tribits/core/package_arch/TribitsProcessEnabledTpls.cmake:171 (tribits_address_failed_tpl_find)
  cmake/tribits/core/package_arch/TribitsProcessEnabledTpls.cmake:105 (tribits_process_enabled_standard_tpl)
  cmake/tribits/core/package_arch/TribitsProjectImpl.cmake:197 (tribits_process_enabled_tpls)
  cmake/tribits/core/package_arch/TribitsProject.cmake:92 (tribits_project_impl)
  CMakeLists.txt:101 (TRIBITS_PROJECT)


-- Configuring incomplete, errors occurred!

The problem is that it can't find the TPLs and other info specified in the file GenConfigSettings.cmake because the location of that file is unknown.

@bartlettroscoe
Copy link
Member Author

bartlettroscoe commented Jul 14, 2023

Below is the mail I sent to Kitware CMake experts.


From: Bartlett, Roscoe A
Sent: Saturday, July 8, 2023 11:53 AM
To: Brad King <...>; Kyle Edwards <...>; Zack Galbreath <...>
Subject: Info on cache files passed thorugh -C <cache-file>.cmake arguments?

Hello Brad, Kyle, and Zack,

Do you know if there is a way to determine what files were passed to CMake with the -C <cache-file>.cmake option? I need to know this from inside of the CMake project in order to create a reduced tarball test that untars the reduced tarball and then configures the reduced source tree. Here is the test in Trilinos that does that:

bartlettroscoe@8c5b918

Would this need to be as CMake extension to provide the paths for these -C files?

-Ross


Update 7/14/2023:

Below is the response from @bradking.


From: Brad King <...>
Sent: Friday, July 14, 2023 6:29 AM
To: Bartlett, Roscoe A <...>
Cc: Kyle Edwards <...>; Zack Galbreath <...>
Subject: [EXTERNAL] Re: Info on cache files passed thorugh -C <cache-file>.cmake arguments?

On Sat, Jul 8, 2023 at 1:53 PM Bartlett, Roscoe A wrote:

Do you know if there is a way to determine what files were passed to
CMake with the -C .cmake option?
...
Would this need to be as CMake extension to provide the paths for these -C files?

I don't think we currently offer any way to get that information.

We also don't currently record what -C files were used in previous runs of CMake in a given build tree. One can accumulate the files across multiple runs in a single build tree. For example:

$ cmake -S src -B build -C init1.cmake -C init2.cmake
$ cmake -S src -B build -C update1.cmake
$ cmake -S src -B build -C update2.cmake

If we were to add a way to get the list of files, we'd have to define semantics w.r.t. multiple runs.

-Brad

@bartlettroscoe
Copy link
Member Author

@sebrowne, note that the new test TrilinosInstallTests_reduced_tarball due to the issue described above and above. Unless Kitware says otherwise, I think the only solution is to change the PR testing drivers to pass in the generated fragment file using -D Trilinos_CONFIGURE_OPTIONS_FILE=<settings>.cmake instead of using -C <base-path>/<settings>.cmake.

jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jul 14, 2023
…s:develop' (4539a08).

* trilinos-develop: (61 commits)
  EXODUS: Add a missed ifdef
  Sacado:  Remove a few instances of use of deprecated Rank
  Sacado fix subview for LayoutContiguous<LayoutLeft>
  Intrepid2: fix for trilinos#12037; resolves a test failure on certain CUDA platforms. (PR trilinos#12047)
  EXODUS: Need to check whether nc_def_var_fill is defined in netCDF
  Use OpenMPI 1.10.1 for CXX20 build
  APREPRO: Fix "if" instead of "else if" in arg parsing
  IOSS: Remove fmt dependency for Trilinos users
  STK: Snapshot 07-12-23 07:43 from Sierra simon_2023-07-10-63-g4c25d07a
  Update logic for enabling TrilinosInstallTests in CI testing (trilinos#12024)
  Tempus: Example Problem to Use SolutionState
  Tempus: Example Problem to Use SolutionState
  Phalanx: only use partition_space if enough concurrency available
  Fix accidental debuggery
  Chomp usage whitespace before assertion
  Panzer : Remove deprecated STK code.
  Fix some error message testing
  Remove test for removed capability
  More fixes for tests after source_branch removal
  Phalanx: add some diagnostics for checking fencing with exec spaces
  ...
@bartlettroscoe bartlettroscoe changed the title Test and product creation of reduced Trilinos tarballs Test creation of reduced Trilinos tarballs Jul 14, 2023
@bartlettroscoe bartlettroscoe changed the title Test creation of reduced Trilinos tarballs Test and support creation of reduced Trilinos tarballs Jul 14, 2023
@bartlettroscoe
Copy link
Member Author

bartlettroscoe commented Jul 14, 2023

@sebrowne, I would like to propose that a subset of the PR builds switch from using -C generatedFragment.cmake to instead use -D Trilinos_CONFIGURE_OPTIONS_FILE=generatedFragment.cmake. I think it would be sufficient to have one of the non-CUDA builds and one of the CUDA builds switch to using -D Trilinos_CONFIGURE_OPTIONS_FILE=generatedFragment.cmake. I think that would be enough for reduced tarball testing.

And just the ability to have some tests for Trilinos that configure (and optionally build) subsets of Trilinos would be very attractive. That avoids needing to add new significant infrastructure in the top level testing systems and makes it trivial for Trlinos developers to run these types of tests locally.

jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jul 15, 2023
…s:develop' (4539a08).

* trilinos-develop: (64 commits)
  Phalanx: fix exec space instance init for UVM=ON
  SEACAS: Fix for netcdf without pnetcdf
  EXODUS: Add a missed ifdef
  Sacado:  Remove a few instances of use of deprecated Rank
  Sacado fix subview for LayoutContiguous<LayoutLeft>
  Intrepid2: fix for trilinos#12037; resolves a test failure on certain CUDA platforms. (PR trilinos#12047)
  EXODUS: Need to check whether nc_def_var_fill is defined in netCDF
  IOSS: Fix bad changes from !compare to !=
  Use OpenMPI 1.10.1 for CXX20 build
  APREPRO: Fix "if" instead of "else if" in arg parsing
  IOSS: Remove fmt dependency for Trilinos users
  STK: Snapshot 07-12-23 07:43 from Sierra simon_2023-07-10-63-g4c25d07a
  Update logic for enabling TrilinosInstallTests in CI testing (trilinos#12024)
  Tempus: Example Problem to Use SolutionState
  Tempus: Example Problem to Use SolutionState
  Phalanx: only use partition_space if enough concurrency available
  Fix accidental debuggery
  Chomp usage whitespace before assertion
  Panzer : Remove deprecated STK code.
  Fix some error message testing
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jul 16, 2023
…s:develop' (4539a08).

* trilinos-develop: (64 commits)
  Phalanx: fix exec space instance init for UVM=ON
  SEACAS: Fix for netcdf without pnetcdf
  EXODUS: Add a missed ifdef
  Sacado:  Remove a few instances of use of deprecated Rank
  Sacado fix subview for LayoutContiguous<LayoutLeft>
  Intrepid2: fix for trilinos#12037; resolves a test failure on certain CUDA platforms. (PR trilinos#12047)
  EXODUS: Need to check whether nc_def_var_fill is defined in netCDF
  IOSS: Fix bad changes from !compare to !=
  Use OpenMPI 1.10.1 for CXX20 build
  APREPRO: Fix "if" instead of "else if" in arg parsing
  IOSS: Remove fmt dependency for Trilinos users
  STK: Snapshot 07-12-23 07:43 from Sierra simon_2023-07-10-63-g4c25d07a
  Update logic for enabling TrilinosInstallTests in CI testing (trilinos#12024)
  Tempus: Example Problem to Use SolutionState
  Tempus: Example Problem to Use SolutionState
  Phalanx: only use partition_space if enough concurrency available
  Fix accidental debuggery
  Chomp usage whitespace before assertion
  Panzer : Remove deprecated STK code.
  Fix some error message testing
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jul 17, 2023
…s:develop' (4539a08).

* trilinos-develop: (64 commits)
  Phalanx: fix exec space instance init for UVM=ON
  SEACAS: Fix for netcdf without pnetcdf
  EXODUS: Add a missed ifdef
  Sacado:  Remove a few instances of use of deprecated Rank
  Sacado fix subview for LayoutContiguous<LayoutLeft>
  Intrepid2: fix for trilinos#12037; resolves a test failure on certain CUDA platforms. (PR trilinos#12047)
  EXODUS: Need to check whether nc_def_var_fill is defined in netCDF
  IOSS: Fix bad changes from !compare to !=
  Use OpenMPI 1.10.1 for CXX20 build
  APREPRO: Fix "if" instead of "else if" in arg parsing
  IOSS: Remove fmt dependency for Trilinos users
  STK: Snapshot 07-12-23 07:43 from Sierra simon_2023-07-10-63-g4c25d07a
  Update logic for enabling TrilinosInstallTests in CI testing (trilinos#12024)
  Tempus: Example Problem to Use SolutionState
  Tempus: Example Problem to Use SolutionState
  Phalanx: only use partition_space if enough concurrency available
  Fix accidental debuggery
  Chomp usage whitespace before assertion
  Panzer : Remove deprecated STK code.
  Fix some error message testing
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jul 18, 2023
…s:develop' (4539a08).

* trilinos-develop: (66 commits)
  APREPRO: Fix -I parsing; use include_path on input file
  STK: Snapshot 07-17-23 09:42 from Sierra 5.15.2-314-g7c2d5cc9
  Phalanx: fix exec space instance init for UVM=ON
  SEACAS: Fix for netcdf without pnetcdf
  EXODUS: Add a missed ifdef
  Sacado:  Remove a few instances of use of deprecated Rank
  Sacado fix subview for LayoutContiguous<LayoutLeft>
  Intrepid2: fix for trilinos#12037; resolves a test failure on certain CUDA platforms. (PR trilinos#12047)
  EXODUS: Need to check whether nc_def_var_fill is defined in netCDF
  IOSS: Fix bad changes from !compare to !=
  Use OpenMPI 1.10.1 for CXX20 build
  APREPRO: Fix "if" instead of "else if" in arg parsing
  IOSS: Remove fmt dependency for Trilinos users
  STK: Snapshot 07-12-23 07:43 from Sierra simon_2023-07-10-63-g4c25d07a
  Update logic for enabling TrilinosInstallTests in CI testing (trilinos#12024)
  Tempus: Example Problem to Use SolutionState
  Tempus: Example Problem to Use SolutionState
  Phalanx: only use partition_space if enough concurrency available
  Fix accidental debuggery
  Chomp usage whitespace before assertion
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jul 18, 2023
…s:develop' (4539a08).

* trilinos-develop: (66 commits)
  APREPRO: Fix -I parsing; use include_path on input file
  STK: Snapshot 07-17-23 09:42 from Sierra 5.15.2-314-g7c2d5cc9
  Phalanx: fix exec space instance init for UVM=ON
  SEACAS: Fix for netcdf without pnetcdf
  EXODUS: Add a missed ifdef
  Sacado:  Remove a few instances of use of deprecated Rank
  Sacado fix subview for LayoutContiguous<LayoutLeft>
  Intrepid2: fix for trilinos#12037; resolves a test failure on certain CUDA platforms. (PR trilinos#12047)
  EXODUS: Need to check whether nc_def_var_fill is defined in netCDF
  IOSS: Fix bad changes from !compare to !=
  Use OpenMPI 1.10.1 for CXX20 build
  APREPRO: Fix "if" instead of "else if" in arg parsing
  IOSS: Remove fmt dependency for Trilinos users
  STK: Snapshot 07-12-23 07:43 from Sierra simon_2023-07-10-63-g4c25d07a
  Update logic for enabling TrilinosInstallTests in CI testing (trilinos#12024)
  Tempus: Example Problem to Use SolutionState
  Tempus: Example Problem to Use SolutionState
  Phalanx: only use partition_space if enough concurrency available
  Fix accidental debuggery
  Chomp usage whitespace before assertion
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Jul 18, 2023
…s:develop' (4539a08).

* trilinos-develop: (66 commits)
  APREPRO: Fix -I parsing; use include_path on input file
  STK: Snapshot 07-17-23 09:42 from Sierra 5.15.2-314-g7c2d5cc9
  Phalanx: fix exec space instance init for UVM=ON
  SEACAS: Fix for netcdf without pnetcdf
  EXODUS: Add a missed ifdef
  Sacado:  Remove a few instances of use of deprecated Rank
  Sacado fix subview for LayoutContiguous<LayoutLeft>
  Intrepid2: fix for trilinos#12037; resolves a test failure on certain CUDA platforms. (PR trilinos#12047)
  EXODUS: Need to check whether nc_def_var_fill is defined in netCDF
  IOSS: Fix bad changes from !compare to !=
  Use OpenMPI 1.10.1 for CXX20 build
  APREPRO: Fix "if" instead of "else if" in arg parsing
  IOSS: Remove fmt dependency for Trilinos users
  STK: Snapshot 07-12-23 07:43 from Sierra simon_2023-07-10-63-g4c25d07a
  Update logic for enabling TrilinosInstallTests in CI testing (trilinos#12024)
  Tempus: Example Problem to Use SolutionState
  Tempus: Example Problem to Use SolutionState
  Phalanx: only use partition_space if enough concurrency available
  Fix accidental debuggery
  Chomp usage whitespace before assertion
  ...
@bartlettroscoe
Copy link
Member Author

CC: @ccober6, @jwillenbring

@sebrowne, as I noted two weeks ago above, the reduced tarball tests are not running in any automated testing because of the way that the GenConfig settings are passed. To see the issue, see:

# NOTE: We only add the test if the configuration options are passed through a
# ${CMAKE_PROJECT_NAME}_CONFIGURE_OPTIONS_FILE file. (Does not work if you to
# include them with -C <cache-file>.cmake. You can only pass through
# configure options through ${CMAKE_PROJECT_NAME}_CONFIGURE_OPTIONS_FILE since
# the CMake project knows these.)

Without making this change, we can't support reduced tarball creation or testing.

@bartlettroscoe
Copy link
Member Author

FYI: There was an internal request for supporting reduced Trilinos tarballs for the Aleph project:

I believe that use case is addressed in Trilinos 'develop' but we still don't have any PR or Nightly testing running for this.

JacobDomagala pushed a commit to NexGenAnalytics/Trilinos that referenced this issue Aug 4, 2023
It appears that no Tpetra tests even use this file so why is it being copied
from Anasazi_SOURCE_DIR?  Well, when you create a reduced tarball with Tpetra
and without Anasazi, the packages/anasazi directory does not even exist and
the varaible Anasazi_SOURCE_DIR does not exist.
JacobDomagala pushed a commit to NexGenAnalytics/Trilinos that referenced this issue Aug 4, 2023
…rilinos#12024)

This sets up a test that would have caught the problem in trilinos#11976 and will
provide some protection for reduced tarball creation going forward.

NOTE: Currently, this test will only be added if configure settings are passed
through `-D${CMAKE_PROJECT_NAME}_CONFIGURE_OPTIONS_FILE=<cache-file>.cmake`.
There is no way to pass that file (or thoses files) through `-C
<cache-file>.make`.
JacobDomagala pushed a commit to NexGenAnalytics/Trilinos that referenced this issue Aug 4, 2023
…s#12024)

* Now TrilinosInstallTests will be enabled if any Trilinos package gets
  enabled.

* Removed dependence of TrilinosInstallTests on Tpetra.

This should give more consistent installation testing with Trilinos.  Prior to
this commit, only changes to Tpetra and packages upstream from Tpetra would
trigger the enable of the TrilinosInstallTests package and the running of
these tests.  Now, any change to any Trilinos packge will trigger some
installation testing.

See new TrilinosInstallTests/READMME.md file for details.
@sebrowne
Copy link
Contributor

sebrowne commented Aug 7, 2023

We can try making that change. The way that things are currently structured prevents us from testing it easily. I will add a story to move the SimpleTestingRefactor (or snapshot it for now) ctest driver code that is used by the PR system into the Trilinos repository. After that, it should be an easy (and testable) PR to change from the cachefile option to the TriBITS one. Although moving away from the standard cachefile import feels less than ideal to me. Better if Kitware can modify cmake to keep track of which cachefiles were loaded as described above.

@bartlettroscoe
Copy link
Member Author

FYI: @sebrowne and I discussed this last week. We are going to wait until the SimpleTestingRefactor CTest -S driver code used by the Trilinos PR testing process is added to the Trilinos Git repo (so it can be tested along with PR testing) and then we will update to pass in the GenConfig *.cmake file using -D Trilinos_CONFIGURE_OPTIONS_FILE so we can enable reduced tarball testing. (Also having a few PR builds that use -C to pass in the *.cmake file may be maintained as well.)

@bartlettroscoe
Copy link
Member Author

@sebrowne, with the merge of PR:

and the completion of TRILFRAME-592, can we now pull the trigger on changing from -C <options>.cmake to -D Trilinos_CONFIGURE_OPTIONS_FILE=<options>.cmake for the PR and Nightly build run with the Framework teams SimpleTestingRefactor script?

@sebrowne
Copy link
Contributor

sebrowne commented Sep 6, 2023

sebrowne added a commit to sebrowne/Trilinos that referenced this issue Sep 20, 2023
We need to pass -DTrilinos_CONFIGURE_OPTIONS_FILE=XXX instead of -C XXX
sometimes.  Decided to do it for any GCC build.

User Support Ticket(s) or Story Referenced:
trilinos#12024
Copy link

github-actions bot commented Sep 7, 2024

This issue has had no activity for 365 days and is marked for closure. It will be closed after an additional 30 days of inactivity.
If you would like to keep this issue open please add a comment and/or remove the MARKED_FOR_CLOSURE label.
If this issue should be kept open even with no activity beyond the time limits you can add the label DO_NOT_AUTOCLOSE.
If it is ok for this issue to be closed, feel free to go ahead and close it. Please do not add any comments or change any labels or otherwise touch this issue unless your intention is to reset the inactivity counter for an additional year.

@github-actions github-actions bot added the MARKED_FOR_CLOSURE Issue or PR is marked for auto-closure by the GitHub Actions bot. label Sep 7, 2024
@bartlettroscoe bartlettroscoe added DO_NOT_AUTOCLOSE This issue should be exempt from auto-closing by the GitHub Actions bot. and removed MARKED_FOR_CLOSURE Issue or PR is marked for auto-closure by the GitHub Actions bot. labels Sep 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DO_NOT_AUTOCLOSE This issue should be exempt from auto-closing by the GitHub Actions bot. Framework tasks Framework tasks (used internally by Framework team)
Projects
Status: In Progress
Development

No branches or pull requests

2 participants