CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
268 lines
11 KiB
Plaintext
268 lines
11 KiB
Plaintext
Summary:
|
|
|
|
- Step 1: Testing Kokkos + KokkosKernels using test_all_sandia
|
|
|
|
- Step 2: Testing of Kokkos + KokkosKernels integrated into Trilinos (scripts/trilinos-integration/*.sh)
|
|
|
|
- Step 3: Close all issues labeled "InDevelop"
|
|
|
|
- Step 4: Locally update CHANGELOG, merge into master, edit scripts/master_history.txt
|
|
|
|
- Step 5: Locally snapshot new master of kokkos and kokkos-kernels into corresponding Trilinos branch (develop or temporary), issue PR to Trilinos
|
|
|
|
- Step 6: Push local Kokkos master to GitHub (need Owner approval). Push local KokkosKernels master to GitHub (need Owner approval)
|
|
|
|
Steps 1, 2, and 4 include testing that may fail. These failures must be fixed either by pull requests to Kokkos and/or KokkosKernels develop, or by creating a new Trilinos branch for parts of Trilinos that must be updated. This is what usually takes the most time.
|
|
|
|
|
|
// -------------------------------------------------------------------------------- //
|
|
|
|
|
|
Step 1: The following should be repeated on enough machines to cover all
|
|
supported compilers. Those machines are:
|
|
|
|
kokkos-dev
|
|
blake
|
|
white
|
|
bowman
|
|
waterman
|
|
ride
|
|
|
|
1.1. Clone kokkos develop branch (or just switch to it)
|
|
|
|
git clone -b develop git@github.com:kokkos/kokkos.git
|
|
cd kokkos
|
|
|
|
1.2. Create a testing directory
|
|
|
|
mkdir testing
|
|
cd testing
|
|
|
|
1.3. Run the test_all_sandia script with no options to test all compilers
|
|
|
|
nohup ../scripts/test_all_sandia &
|
|
tail -f nohup.out # to watch progress
|
|
|
|
NOTE: To kill jobs not running in the background (hopefully prevent ghost processes):
|
|
|
|
control+z
|
|
kill -9 %1
|
|
|
|
1.4. Clone kokkos-kernels develop branch (or just switch to it)
|
|
|
|
git clone -b develop git@github.com:kokkos/kokkos-kernels.git
|
|
cd kokkos-kernels
|
|
|
|
1.4. Create a testing directory
|
|
|
|
mkdir testing
|
|
cd testing
|
|
|
|
1.5. Run the test_all_sandia script with no options to test all compilers
|
|
|
|
nohup ../scripts/test_all_sandia &
|
|
tail -f nohup.out # to watch progress
|
|
|
|
NOTE: To kill jobs not running in the background (hopefully prevent ghost processes):
|
|
|
|
control+z
|
|
kill -9 %1
|
|
|
|
// -------------------------------------------------------------------------------- //
|
|
|
|
Step 2:
|
|
2.1. Build and test Trilinos with the following configurations:
|
|
a) serial, openmp, and cuda via the testing scripts in kokkos-kernels/scripts/trilinos-integration (automates the process)
|
|
b) various ATDM-supported builds via Trilinos configuration scripts located in kokkos{-kernels}/scripts/trilinos-integration/ATDM_configurations (not yet automated)
|
|
|
|
Run scripts for automated testing on white (openmp and cuda) and blake (seral) that are provided in kokkos{-kernels}/scripts/trilinos-integration.
|
|
These scripts load their own modules/environment, so don't require preparation. You can run all four at the same time, use separate directories for each.
|
|
|
|
mkdir serial
|
|
cd serial
|
|
nohup KOKKOSKERNELS_PATH/scripts/trilinos-integration/blake_jenkins_run_script_serial_intel &
|
|
|
|
Use scripts to configure Trilinos for waterman (cuda, cuda-debug) and ride (cuda-rdc) that are provided in kokkos-kernels/scripts/trilinos-integration/ATDM_configurations.
|
|
|
|
These scripts load their own modules/environment, so don't require preparation of the system environment. You can run them all at the same time, just use separate directories for each. Instructions for compute node allocation, building, and testing are included in the scripts.
|
|
|
|
The Trilinos configuration scripts include an override of the kokkos and kokkos-kernels packages; this requires that a symbolic link for each be created in the Trilinos base directory:
|
|
|
|
cd Trilinos
|
|
ln -s <PATH_TO_YOUR_KOKKOS> kokkos
|
|
ln -s <PATH_TO_YOUR_KOKKOSKERNELS> kokkos-kernels
|
|
|
|
2.2. Compare the compile errors and test failures between updated and pristine versions; the ATDM configurations scripts should have 0 build errors and 100% passing tests. There may be compile failures that happen in both, tests that fail in both, and there may be tests that only fail some times (thus, rerun tests manually as needed).
|
|
|
|
// -------------------------------------------------------------------------------- //
|
|
|
|
Step 3: Close all issues labeled "InDevelop"
|
|
|
|
Use the GitHub web interface: https://github.com/kokkos/kokkos/issues?q=is%3Aopen+is%3Aissue+label%3AInDevelop
|
|
Select all with checkbox in upper left, "Mark as closed"
|
|
|
|
Use the GitHub web interface: https://github.com/kokkos/kokkos-kernels/issues?q=is%3Aopen+is%3Aissue+label%3AInDevelop
|
|
Select all with checkbox in upper left, "Mark as closed"
|
|
|
|
// -------------------------------------------------------------------------------- //
|
|
|
|
Step 4: This step should be run on kokkos-dev
|
|
|
|
4.1. If you don't have a GitHub token already, generate one for yourself (this will give you TOKEN):
|
|
|
|
https://github.com/settings/tokens
|
|
|
|
4.2. Get a clean copy of the kokkos and kokkos-kernels develop branches
|
|
|
|
git clone -b develop git@github.com:kokkos/kokkos.git
|
|
git clone -b develop git@github.com:kokkos/kokkos-kernels.git
|
|
|
|
4.3. If you haven't already, install Ruby and the "github_changelog_generator" "gem"
|
|
The github_changelog_generator is here: https://github.com/skywinder/github-changelog-generator
|
|
Its compatible Ruby version can be found here: https://github.com/skywinder/github-changelog-generator/blob/master/.ruby-version
|
|
Grab the corresponding Ruby version from here: https://www.ruby-lang.org/en/downloads/
|
|
Follow the usual configure,make,make install process: https://www.ruby-lang.org/en/documentation/installation/#building-from-source
|
|
Note that you will likely have to install to a non-default location with "./configure --prefix=/path"
|
|
|
|
4.4. Generate the initial changelog(s). Use the most recent tag as OLDTAG (`git tag -l` can show you all tags). The NEWTAG is the new version number, e.g. "2.04.00".
|
|
|
|
RUN THIS OUTSIDE THE KOKKOS SOURCE TREE!
|
|
|
|
NOTE: You likely need to set an HTTPS proxy in order for this script to work:
|
|
|
|
export https_proxy=http://wwwproxy.sandia.gov:80
|
|
|
|
github_changelog_generator kokkos/kokkos --token TOKEN --no-pull-requests --include-labels 'InDevelop' --exclude-labels 'question,DevelopOnly' --enhancement-labels 'enhancement,Feature Request' --future-release 'NEWTAG' --between-tags 'NEWTAG,OLDTAG'
|
|
|
|
github_changelog_generator kokkos/kokkos-kernels --token TOKEN --no-pull-requests --include-labels 'InDevelop' --exclude-labels 'question,DevelopOnly' --enhancement-labels 'enhancement,Feature Request' --future-release 'NEWTAG' --between-tags 'NEWTAG,OLDTAG'
|
|
|
|
4.5. Manually cleanup and commit the change log.
|
|
(Copy the new section from the generated CHANGELOG.md to the corresponding KOKKOS_PATH/CHANGELOG.md or KOKKOSKERNELS_PATH/CHANGELOG.md)
|
|
(Make desired changes to CHANGELOG.md to enhance clarity (remove issues not noteworthy))
|
|
(Commit the CHANGELOG.md locally to develop)
|
|
|
|
The changelog commit message should be:
|
|
|
|
Adding Changelog for Release A.B.CD
|
|
|
|
Part of Kokkos C++ Performance Portability Programming EcoSystem A.B
|
|
|
|
4.6. Merge develop into master. DO NOT FAST-FORWARD THE MERGE!!!!
|
|
DO NOT USE AN OLD GIT VERSION!!!!
|
|
|
|
(From kokkos directory):
|
|
git checkout master
|
|
git merge --no-ff develop
|
|
|
|
The merge commit message should be:
|
|
|
|
Merge branch 'develop' for A.B.CD
|
|
|
|
Part of Kokkos C++ Performance Portability Programming EcoSystem A.B
|
|
|
|
(From kokkos-kernels directory):
|
|
git checkout master
|
|
git merge --no-ff develop
|
|
|
|
The merge commit message should be:
|
|
|
|
Merge branch 'develop' for A.B.CD
|
|
|
|
Part of Kokkos C++ Performance Portability Programming EcoSystem A.B
|
|
|
|
4.7. Update the tag in kokkos/master_history.txt, then update the tag in kokkos-kernels/master_history.txt
|
|
|
|
Tag description: MajorNumber.MinorNumber.WeeksSinceMinorNumberUpdate
|
|
Tag field widths: #.#.##
|
|
date description: month:day:year
|
|
date field widths: ##:##:####
|
|
master description: SHA1 of previous master commit (use `git log --first-parent master`)
|
|
develop description: SHA1 of merged develop branch (use `git log develop`)
|
|
SHA1 field width: ######## (8 chars)
|
|
|
|
# Append to scripts/master_history.txt:
|
|
|
|
tag: 2.03.13 date: 07:27:2017 master: da314444 develop: 29ccb58a
|
|
|
|
git commit --amend -a
|
|
|
|
Keep the merge commit as described in 4.6
|
|
|
|
4.8. Create the new tag (repeat for kokkos and kokkos-kernels):
|
|
|
|
git tag -a #.#.##
|
|
|
|
(type the following into the tag message (same as for step 4.7))
|
|
tag: #.#.##
|
|
date: mm/dd/yyyy
|
|
master: sha1
|
|
develop: sha1
|
|
|
|
4.9. DO NOT PUSH YET !!!
|
|
|
|
|
|
// -------------------------------------------------------------------------------- //
|
|
|
|
Step 5: This step can be done on any SEMS machine (e.g. kokkos-dev).
|
|
|
|
5.1. Clone the Trilinos corresponding branch (or just switch to it)
|
|
|
|
git clone -b kokkos-promotion git@github.com:trilinos/Trilinos.git
|
|
TRILINOS_PATH=$PWD/Trilinos
|
|
|
|
5.2. Snapshot Kokkos into Trilinos - this requires python/2.7.9 and that both Trilinos and Kokkos be clean - no untracked or modified files. Run the following outside of the Kokkos and Trilinos source trees.
|
|
|
|
* Use the master branch of Kokkos for this.
|
|
|
|
module load sems-python/2.7.9
|
|
python $KOKKOS_PATH/scripts/snapshot.py $KOKKOS_PATH $TRILINOS_PATH/packages
|
|
python $KOKKOS_PATH/scripts/snapshot.py $KOKKOSKERNELS_PATH $TRILINOS_PATH/packages
|
|
|
|
If snapshotting kokkos-kernels, use the snapshot.py in kokkos.
|
|
|
|
5.3. Push this Trilinos branch to GitHub, open a pull request for it.
|
|
The pull request title should be:
|
|
|
|
Kokkos + KokkosKernels Promotion To X.X.XX
|
|
|
|
In the message body, mention @trilinos/kokkos and @trilinos/kokkos-kernels,
|
|
|
|
Add a short description of the most significant features and bug fixes,
|
|
|
|
Then add:
|
|
|
|
## Kokkos Changelog
|
|
|
|
And copy-paste the content for this release from the kokkos CHANGELOG.md file, then do the same for kokkos-kernels under:
|
|
|
|
## KokkosKernels Changelog
|
|
|
|
5.4. Wait for Trilinos Autotester results
|
|
|
|
5.5. If there are failures, fix and backtrack. Otherwise, merge into Trilinos' develop branch and go to next step
|
|
|
|
// -------------------------------------------------------------------------------- //
|
|
|
|
Step 6: Push Kokkos + KokkosKernels master and develop branches to respective GitHub repos (requires Owner permission).
|
|
|
|
6.1. Master branch:
|
|
cd $KOKKOS_PATH
|
|
git checkout master
|
|
git push --follow-tags origin master
|
|
|
|
cd $KOKKOSKERNELS_PATH
|
|
git checkout master
|
|
git push --follow-tags origin master
|
|
|
|
6.2. Develop branch: First merge (--no-ff) master back into develop
|
|
cd $KOKKOS_PATH
|
|
git checkout develop
|
|
git merge --no-ff master
|
|
git push origin develop
|
|
|
|
cd $KOKKOSKERNELS_PATH
|
|
git checkout develop
|
|
git merge --no-ff master
|
|
git push origin develop
|
|
|