From 3f22b1e6415a86f0c49f3fa5fccf9507759e48a9 Mon Sep 17 00:00:00 2001 From: Logan Harbour Date: Mon, 6 Apr 2026 10:03:54 -0600 Subject: [PATCH 1/4] WIP versioner --changed-summary --- scripts/versioner.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/scripts/versioner.py b/scripts/versioner.py index 3cc9020113d5..313d96aa9526 100755 --- a/scripts/versioner.py +++ b/scripts/versioner.py @@ -511,11 +511,29 @@ def output_summary(self) -> str: } return yaml.dump(output) + def changed_summary(self, base: str) -> str: + packages = self.get_packages("HEAD") + base_packages = self.get_packages(base) + + changed_summary = {} + for name, package in packages.items(): + base_package = base_packages.get(name) + if ( + base_package is None + or base_package.hash != package.hash + or base_package.full_version != package.full_version + ): + changed_summary[name] = package.full_version + else: + changed_summary[name] = None + + return json.dumps(changed_summary) + def output_cli(self, args) -> str: """performs command line actions""" args = self.parse_args(args, self.entities) self.check_args(args) - if args.summary or args.verify or args.build_templates: + if args.summary or args.changed_summary or args.verify or args.build_templates: if self.git_is_diff(): print( "\033[91mWARNING\033[0m: You have changes not yet committed. Information" @@ -523,6 +541,8 @@ def output_cli(self, args) -> str: ) if args.summary: return self.output_summary() + if args.changed_summary: + return self.changed_summary(args.changed_summary) if args.verify: return self.verify_recipes(args) if args.build_templates: @@ -899,6 +919,11 @@ def parse_args(argv: list[str], entities: list[str]) -> argparse.Namespace: default=False, help="Output summary as should be entered in versioner_hashes.yaml", ) + parser.add_argument( + "--changed-summary", + type=str, + help="foo" + ) parser.add_argument( "-v", "--verify", From 0d1bf7acb91e3002fa6027f9809c5f6b6fe5cfe8 Mon Sep 17 00:00:00 2001 From: Logan Harbour Date: Thu, 23 Apr 2026 09:12:19 -0600 Subject: [PATCH 2/4] Bump versions --- conda/build/meta.yaml | 2 +- conda/libmesh/meta.yaml | 8 ++++---- conda/moose-dev/meta.yaml | 14 +++++++------- conda/moose/meta.yaml | 10 +++++----- conda/petsc/meta.yaml | 2 +- conda/pyhit/meta.yaml | 2 +- conda/tools/meta.yaml | 2 +- scripts/versioner.yaml | 14 +++++++------- 8 files changed, 27 insertions(+), 27 deletions(-) diff --git a/conda/build/meta.yaml b/conda/build/meta.yaml index cc2c082c1ab2..3f6c7abb56b6 100644 --- a/conda/build/meta.yaml +++ b/conda/build/meta.yaml @@ -4,7 +4,7 @@ # # As well as any directions pertaining to modifying those files. # ALSO: Follow the directions in scripts/tests/versioner_hashes.yaml -{% set version = "2026.04.21" %} +{% set version = "2026.04.23" %} package: name: moose-build diff --git a/conda/libmesh/meta.yaml b/conda/libmesh/meta.yaml index 117c25003b6b..38157f20c223 100644 --- a/conda/libmesh/meta.yaml +++ b/conda/libmesh/meta.yaml @@ -4,7 +4,7 @@ # # As well as any directions pertaining to modifying those files. # ALSO: Follow the directions in scripts/tests/versioner_hashes.yaml -{% set build = 0 %} +{% set build = 1 %} {% set version = "2026.04.13_0185b8b" %} package: @@ -30,7 +30,7 @@ build: # things that depend on this moose-libmesh must use the # exact moose-petsc and moose-libmesh-vtk that this was # built with - - moose-petsc 3.24.6 {{ mpi }}_0 + - moose-petsc 3.24.6 {{ mpi }}_1 - moose-libmesh-vtk 9.6.1 {{ mpi }}_0 requirements: @@ -45,7 +45,7 @@ requirements: - pkg-config host: - {{ mpi }} {{ mpi_version }} - - moose-petsc 3.24.6 {{ mpi }}_0 + - moose-petsc 3.24.6 {{ mpi }}_1 - moose-libmesh-vtk 9.6.1 {{ mpi }}_0 - _openmp_mutex # [linux] - hdf5 {{ hdf5 }} @@ -58,7 +58,7 @@ requirements: - llvm-openmp # [osx] - zlib run: - - moose-petsc 3.24.6 {{ mpi }}_0 + - moose-petsc 3.24.6 {{ mpi }}_1 - moose-libmesh-vtk 9.6.1 {{ mpi }}_0 test: diff --git a/conda/moose-dev/meta.yaml b/conda/moose-dev/meta.yaml index ca798fc64919..0f78a16f629b 100644 --- a/conda/moose-dev/meta.yaml +++ b/conda/moose-dev/meta.yaml @@ -2,7 +2,7 @@ # REMEMBER TO UPDATE the .yaml files for the following packages: # moose/conda_build_config.yaml # As well as any directions pertaining to modifying those files. -{% set version = "2026.04.21" %} +{% set version = "2026.04.23" %} package: name: moose-dev @@ -19,17 +19,17 @@ build: run_exports: # things that depend on this moose-dev must use the # exact moose-* packages that this was built with - - moose-build 2026.04.21 {{ mpi }} - - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0 + - moose-build 2026.04.23 {{ mpi }} + - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_1 - moose-wasp 2025.09.19_02960f1 build_6 - - moose-tools 2026.04.21 + - moose-tools 2026.04.23 requirements: run: - - moose-build 2026.04.21 {{ mpi }} - - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0 + - moose-build 2026.04.23 {{ mpi }} + - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_1 - moose-wasp 2025.09.19_02960f1 build_6 - - moose-tools 2026.04.21 + - moose-tools 2026.04.23 run_constrained: - {{ moose_python_constrained }} diff --git a/conda/moose/meta.yaml b/conda/moose/meta.yaml index f47e86ddcbbe..458c673ed68e 100644 --- a/conda/moose/meta.yaml +++ b/conda/moose/meta.yaml @@ -29,14 +29,14 @@ requirements: - {{ compiler('fortran') }} - {{ stdlib('c') }} # for libmesh libtool - - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0 + - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_1 # build utilities - make - packaging - patchelf # [linux] # python; for doc build + premake - python 3.14.* - - moose-tools 2026.04.21 + - moose-tools 2026.04.23 host: - {{ mpi }} {{ mpi_version }} - hdf5 {{ hdf5 }} @@ -46,19 +46,19 @@ requirements: - libfabric {{ libfabric }} # [linux] {% endif %} - libpng - - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0 + - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_1 - moose-wasp 2025.09.19_02960f1 build_6 - zlib run: - {{ mpi }} {{ mpi_version }} - - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0 + - moose-libmesh 2026.04.13_0185b8b {{ mpi }}_1 - moose-wasp 2025.09.19_02960f1 build_6 # c++ compiler for jit - gxx_linux-64 {{ cxx_compiler_version }}.* # [linux] - clangxx_osx-64 {{ cxx_compiler_version }}.* # [osx and x86_64] - clangxx_osx-arm64 {{ cxx_compiler_version }}.* # [osx and arm64] # for testharness/python utilities - - moose-tools 2026.04.21 + - moose-tools 2026.04.23 # for running app --copy-inputs - rsync run_constrained: diff --git a/conda/petsc/meta.yaml b/conda/petsc/meta.yaml index 575c71c1456d..6c087f349267 100644 --- a/conda/petsc/meta.yaml +++ b/conda/petsc/meta.yaml @@ -7,7 +7,7 @@ # # As well as any directions pertaining to modifying those files. # ALSO: Follow the directions in scripts/tests/versioner_hashes.yaml -{% set build = 0 %} +{% set build = 1 %} {% set version = "3.24.6" %} package: diff --git a/conda/pyhit/meta.yaml b/conda/pyhit/meta.yaml index 7c2ebe05d3bb..8e77b57b1e5c 100644 --- a/conda/pyhit/meta.yaml +++ b/conda/pyhit/meta.yaml @@ -1,6 +1,6 @@ package: name: moose-pyhit - version: 2026.04.21 + version: 2026.04.23 source: - path: ../../python/moosetree diff --git a/conda/tools/meta.yaml b/conda/tools/meta.yaml index 59fec69921dc..85e7bf52846f 100644 --- a/conda/tools/meta.yaml +++ b/conda/tools/meta.yaml @@ -3,7 +3,7 @@ # moose-dev/* # # As well as any directions pertaining to modifying those files. -{% set version = "2026.04.21" %} +{% set version = "2026.04.23" %} package: name: moose-tools diff --git a/scripts/versioner.yaml b/scripts/versioner.yaml index 576e52e09305..33b2ffdadb4d 100644 --- a/scripts/versioner.yaml +++ b/scripts/versioner.yaml @@ -7,7 +7,7 @@ packages: # dependers: moose-dev tools: - version: 2026.04.21 + version: 2026.04.23 conda: conda/tools templates: conda/tools/meta.yaml.template: conda/tools/meta.yaml @@ -16,7 +16,7 @@ packages: - conda/tools # dependers: moose-dev build: - version: 2026.04.21 + version: 2026.04.23 conda: conda/build templates: conda/build/meta.yaml.template: conda/build/meta.yaml @@ -25,7 +25,7 @@ packages: - conda/build # dependers: moose-dev mpi: - version: 2026.04.21 + version: 2026.04.23 influential: - apptainer/mpi.def - apptainer/files/mpi @@ -44,7 +44,7 @@ packages: # dependers: libmesh, moose-dev petsc: version: 3.24.6 - build_number: 0 + build_number: 1 conda: conda/petsc templates: conda/petsc/meta.yaml.template: conda/petsc/meta.yaml @@ -63,7 +63,7 @@ packages: # dependers: moose-dev libmesh: version: 2026.04.13_0185b8b - build_number: 0 + build_number: 1 conda: conda/libmesh templates: conda/libmesh/meta.yaml.template: conda/libmesh/meta.yaml @@ -95,7 +95,7 @@ packages: - scripts/update_and_rebuild_wasp.sh # dependers: none pyhit: - version: 2026.04.21 + version: 2026.04.23 conda: conda/pyhit dependencies: - wasp @@ -111,7 +111,7 @@ packages: conda/pyhit/meta.yaml.template: conda/pyhit/meta.yaml # dependers: none moose-dev: - version: 2026.04.21 + version: 2026.04.23 conda: conda/moose-dev templates: conda/moose-dev/meta.yaml.template: conda/moose-dev/meta.yaml From 467ac1e33f4c0383ff90672571b9d85807e5c823 Mon Sep 17 00:00:00 2001 From: Logan Harbour Date: Thu, 23 Apr 2026 10:56:44 -0600 Subject: [PATCH 3/4] Add moose-mpi --- docker/moose-mpi/Dockerfile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docker/moose-mpi/Dockerfile diff --git a/docker/moose-mpi/Dockerfile b/docker/moose-mpi/Dockerfile new file mode 100644 index 000000000000..ea7dcd9c3e6d --- /dev/null +++ b/docker/moose-mpi/Dockerfile @@ -0,0 +1,17 @@ +ARG BASE_IMAGE=ghcr.io/idaholab/moose-mpibase/rocky:8.10-gcc13.3.1-mpich5.0.1-openmpi5.0.10_2026.04.12 +FROM $BASE_IMAGE + +# Remove apptainer if it's installed +RUN (dnf list installed apptainer &> /dev/null && dnf remove -y apptainer) || true + +# Extra installs +RUN dnf install -y dnf-plugins-core \ + && dnf config-manager --set-enabled powertools \ + && dnf install -y redhat-lsb-core.x86_64 \ + && dnf install -y epel-release \ + && dnf install -y emacs make cmake diffutils bison flex perl-IO-Compress perl-JSON \ + perl-JSON-PP libtirpc libtirpc-devel zlib-devel patch patchutils libpng \ + libpng-devel valgrind cppunit doxygen fftw-devel gsl-devel libtool autoconf \ + automake cppunit-devel glpk-devel patchelf lcov bash-completion \ + && dnf clean all + From 758bd62361d5eeac29e2bcc24c51229d8a513faa Mon Sep 17 00:00:00 2001 From: Logan Harbour Date: Thu, 23 Apr 2026 09:00:04 -0600 Subject: [PATCH 4/4] WIP branch next --- .github/workflows/next-build-packages.yml | 18 +++++ .github/workflows/next-precheck.yml | 95 +++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 .github/workflows/next-build-packages.yml create mode 100644 .github/workflows/next-precheck.yml diff --git a/.github/workflows/next-build-packages.yml b/.github/workflows/next-build-packages.yml new file mode 100644 index 000000000000..bc1b1e20ee0e --- /dev/null +++ b/.github/workflows/next-build-packages.yml @@ -0,0 +1,18 @@ +name: "Next: Build packages" + +on: + workflow_run: + workflows: ["Next: Precheck"] + types: [completed] + workflow_dispatch: + +jobs: + build_moose_mpi: + name: "Build: moose-mpi" + if: github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + steps: + - name: Get changed packages + uses: actions/download-artifact@v7 + with: + name: workflow-vars diff --git a/.github/workflows/next-precheck.yml b/.github/workflows/next-precheck.yml new file mode 100644 index 000000000000..5220de9a8078 --- /dev/null +++ b/.github/workflows/next-precheck.yml @@ -0,0 +1,95 @@ +name: "Next: Precheck" + +on: + pull_request: + branches: [next] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + precheck: + name: Precheck + runs-on: ubuntu-slim + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.event.pull_request.head.ref }} + fetch-depth: 0 + - name: Get changed packages + shell: bash + run: | + pip install --no-cache pyyaml jinja2 + + changed_summary="$(./scripts/versioner.py --changed-summary ${{ github.event.pull_request.base.sha }})" || exit $? + + echo "$changed_summary" | jq -r 'to_entries[] | "\(.key)\t\(.value // "")"' | + while IFS=$'\t' read -r key value; do + echo "new_version_${key//-/_}=${value}" >> changed-packages.env + done + cat changed-packages.env + - name: Store changed packages + uses: actions/upload-artifact@v7 + with: + name: changed-packages + path: changed-packages.env + + # build_moose_mpi: + # name: "Build: moose-mpi" + # needs: precheck + # if: ${{ needs.precheck.outputs.new_version_mpi != '' }} + # environment: ${{ (needs.precheck.outputs.new_version_mpi != '' && 'build-pr-containers') || '' }} + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@v6 + # with: + # repository: ${{ github.event.pull_request.head.repo.full_name }} + # ref: ${{ github.event.pull_request.head.ref }} + # - name: Build moose-mpi + # uses: docker/build-push-action@v7 + # with: + # context: ./docker/moose-mpi + + # build_moose_dev_openmpi: + # name: "Build: moose-dev-openmpi" + # needs: + # - precheck + # - build_moose_mpi + # if: | + # always() && + # (needs.build_moose_mpi.result == 'success' || needs.build_moose_mpi.result == 'skipped') && + # (needs.precheck.outputs.new_version_petsc != '' || needs.precheck.outputs.new_version_libmesh != '' || needs.precheck.outputs.new_version_moose_dev != '') + # environment: ${{ ((needs.precheck.outputs.new_version_petsc != '' || needs.precheck.outputs.new_version_libmesh != '' || needs.precheck.outputs.new_version_moose_dev != '') && 'build-pr-containers') || '' }} + # runs-on: ubuntu-slim + # steps: + # - name: Build moose-petsc-openmpi + # if: ${{ needs.precheck.outputs.new_version_petsc != '' }} + # run: | + # echo "building" + # - name: Build moose-libmesh-openmpi + # if: ${{ needs.precheck.outputs.new_version_libmesh != '' }} + # run: | + # echo "building" + # - name: Build moose-dev-openmpi + # if: ${{ needs.precheck.outputs.new_version_moose_dev != '' }} + # run: | + # echo "building" + + # test: + # name: "Test" + # needs: + # - precheck + # - build_moose_dev_openmpi + # if: | + # always() && + # (needs.build_moose_dev_openmpi.result == 'success' || needs.build_moose_dev_openmpi.result == 'skipped') + # runs-on: ubuntu-slim + # steps: + # - name: Test + # shell: bash + # run: | + # echo "testing"