From 8292b4f23ab2ea94c900204b94b0ec1af62a5cbd Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 20 Apr 2026 12:04:25 -0500 Subject: [PATCH 1/6] JCF: for feature branch builds, use feature branch of daq-cmake as well --- scripts/spack/build-release.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/spack/build-release.sh b/scripts/spack/build-release.sh index 93b7fb847..1457ed9e8 100755 --- a/scripts/spack/build-release.sh +++ b/scripts/spack/build-release.sh @@ -83,6 +83,7 @@ cmd="python3 scripts/spack/make-release-repo.py -u \ -r ${RELEASE_TAG} \ -o ${SPACK_AREA}/spack-${SPACK_VERSION} \ ${possible_core_release_arg} \ + --overwrite-daq-cmake \ ${possible_branch_arg}" echo $cmd From 5b5df8c355ef9a3b53cb5501148022fbdc1afb8d Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 11 May 2026 10:42:58 -0500 Subject: [PATCH 2/6] JCF: remove references to moo in our fddaq build. Note that there will likely be transitive dependencies which can now be removed as well --- configs/coredaq/fddaq-develop/release.yaml | 3 -- scripts/spack/make-release-repo.py | 7 +--- scripts/spack/mappings.py | 1 - scripts/version_surveys/python_packages.sh | 1 - .../externals/packages/py-moo/package.py | 40 ------------------- 5 files changed, 1 insertion(+), 51 deletions(-) delete mode 100644 spack-repos/externals/packages/py-moo/package.py diff --git a/configs/coredaq/fddaq-develop/release.yaml b/configs/coredaq/fddaq-develop/release.yaml index 3ce31d59c..e66393c2d 100644 --- a/configs/coredaq/fddaq-develop/release.yaml +++ b/configs/coredaq/fddaq-develop/release.yaml @@ -70,9 +70,6 @@ - name: fmt version: 8.1.1 variant: "cxxstd=17 shared=True" - - name: py-moo - version: 0.6.7 - variant: ~ - name: py-anyconfig version: 0.14.0 variant: ~ diff --git a/scripts/spack/make-release-repo.py b/scripts/spack/make-release-repo.py index ed52a5675..96a6e6b92 100755 --- a/scripts/spack/make-release-repo.py +++ b/scripts/spack/make-release-repo.py @@ -196,9 +196,6 @@ def get_cmake_dependencies(self, package_name, branch_name): find_package_pattern = re.compile(r'\s*[^# ]\s*find_package\(\s*([^)\s]+)') cmake_dependencies_list = find_package_pattern.findall(lines) # Special cases where the dependency has no explicit find_package call - find_daq_codegen = re.search(r'\s*[^# ]\s*daq_codegen\(', lines) - if find_daq_codegen: - cmake_dependencies_list.append('py-moo') find_pybind = re.search(r'\s*[^# ]\s*daq_add_python_bindings\(', lines) if find_pybind: cmake_dependencies_list.append('pybind11') @@ -378,11 +375,9 @@ def generate_pyvenv_requirements(self, output_file): if i["source"].startswith("github"): iuser = i["source"].replace("github_", "") - if iversion == "develop" and not iname == "moo": + if iversion == "develop": (itag, ihash) = get_commit_hash(iname, iversion, iversion) iline = f"git+https://github.com/{iuser}/{iname}@{ihash}#egg={iname}" - elif iname == "moo": - iline = f"git+https://github.com/{iuser}/{iname}@{iversion}#egg={iname}" else: iline = f"git+https://github.com/{iuser}/{iname}@v{iversion}#egg={iname}" f.write(iline + '\n') diff --git a/scripts/spack/mappings.py b/scripts/spack/mappings.py index 4cf17fc1a..49e5e53be 100644 --- a/scripts/spack/mappings.py +++ b/scripts/spack/mappings.py @@ -1,5 +1,4 @@ cmake_to_spack = { - 'py-moo': 'py-moo\", type=\"build', 'pybind11': 'py-pybind11', 'folly': 'folly cxxstd=2a', 'libtorrentrasterbar': 'libtorrent', diff --git a/scripts/version_surveys/python_packages.sh b/scripts/version_surveys/python_packages.sh index 34fedd72e..112fab625 100644 --- a/scripts/version_surveys/python_packages.sh +++ b/scripts/version_surveys/python_packages.sh @@ -43,6 +43,5 @@ pip freeze > ./pyvenv_requirements.txt test "$?" == "0" || return 12 echo "Versions stable into ./pyvenv_requirements.txt" -echo "Note you need to handle moo and its dependencies separately" echo $success_message diff --git a/spack-repos/externals/packages/py-moo/package.py b/spack-repos/externals/packages/py-moo/package.py deleted file mode 100644 index c92a8e1ae..000000000 --- a/spack-repos/externals/packages/py-moo/package.py +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * - - -class PyMoo(PythonPackage): - """Model oriented objects, tools for code generation.""" - - homepage = "https://brettviren.github.io/moo" - url = "https://github.com/brettviren/moo/archive/0.6.3.tar.gz" - git = "https://github.com/brettviren/moo.git" - - maintainers = ['jcfreeman2'] - - version('0.5.7', sha256='f881e396d521dbd1937d4e25949e80770dc8bad03e29888f63aa613bcce82222') - version("0.6.7", sha256="f155c72e2d0f384fce384fa1c5b2fbab17e09aeb1bd4b10454a9b11d95eef8e2") - version("0.6.4", sha256="e512bf088f62946fc9e75b82445c61169f976f230b0d3e918467052ea8982fb9") - version("0.6.3", sha256="f8be51ed4e896bb66329d3d66185b4da375d0964f6a0e582d32565032eaad249") - version("0.6.1", sha256="b100689a1469c7c1b0fa0d418e7391cb8a754fbe5706d0d7e455f5a1743e0ddf") - - - depends_on('py-click', type=('build', 'run')) - depends_on('py-jinja2', type=('build', 'run')) - depends_on('py-jsonschema', type=('build', 'run')) - depends_on('py-fastjsonschema', type=('build', 'run')) - depends_on('py-jsonpointer', type=('build', 'run')) - depends_on('py-numpy@1.23.0', type=('build', 'run'), when="@:0.6.4") - depends_on('py-numpy@2.1.2', type=('build', 'run'), when="@0.6.7:") - #depends_on('py-numpy@1.26.0', type=('build', 'run'), when="@0.6.7: ^python@:3.11") - #depends_on('py-numpy@2.1.2', type=('build', 'run'), when="@0.6.7: ^python@3.12:") - depends_on('py-openpyxl', type=('build', 'run')) - depends_on('py-gojsonnet', type=('build', 'run'), when='@0.6.7:') - depends_on('py-setuptools', type=('build'), when='@0.6.7: ^python@3.11:') - - # DUNE-specific - depends_on('py-jsonnet', type=('build', 'run')) - depends_on('py-anyconfig', type=('build', 'run')) From b1b980b1efb1fc66a3b562f16621fe6cd27c32cb Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 11 May 2026 14:06:59 -0500 Subject: [PATCH 3/6] JCF: Reverting this because we'll still want our infrastructure to handle moo through the v5.6.0 release period (+ any patches) Revert "JCF: remove references to moo in our fddaq build. Note that there will likely be transitive dependencies which can now be removed as well" This reverts commit 5b5df8c355ef9a3b53cb5501148022fbdc1afb8d. --- configs/coredaq/fddaq-develop/release.yaml | 3 ++ scripts/spack/make-release-repo.py | 7 +++- scripts/spack/mappings.py | 1 + scripts/version_surveys/python_packages.sh | 1 + .../externals/packages/py-moo/package.py | 40 +++++++++++++++++++ 5 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 spack-repos/externals/packages/py-moo/package.py diff --git a/configs/coredaq/fddaq-develop/release.yaml b/configs/coredaq/fddaq-develop/release.yaml index e66393c2d..3ce31d59c 100644 --- a/configs/coredaq/fddaq-develop/release.yaml +++ b/configs/coredaq/fddaq-develop/release.yaml @@ -70,6 +70,9 @@ - name: fmt version: 8.1.1 variant: "cxxstd=17 shared=True" + - name: py-moo + version: 0.6.7 + variant: ~ - name: py-anyconfig version: 0.14.0 variant: ~ diff --git a/scripts/spack/make-release-repo.py b/scripts/spack/make-release-repo.py index 96a6e6b92..ed52a5675 100755 --- a/scripts/spack/make-release-repo.py +++ b/scripts/spack/make-release-repo.py @@ -196,6 +196,9 @@ def get_cmake_dependencies(self, package_name, branch_name): find_package_pattern = re.compile(r'\s*[^# ]\s*find_package\(\s*([^)\s]+)') cmake_dependencies_list = find_package_pattern.findall(lines) # Special cases where the dependency has no explicit find_package call + find_daq_codegen = re.search(r'\s*[^# ]\s*daq_codegen\(', lines) + if find_daq_codegen: + cmake_dependencies_list.append('py-moo') find_pybind = re.search(r'\s*[^# ]\s*daq_add_python_bindings\(', lines) if find_pybind: cmake_dependencies_list.append('pybind11') @@ -375,9 +378,11 @@ def generate_pyvenv_requirements(self, output_file): if i["source"].startswith("github"): iuser = i["source"].replace("github_", "") - if iversion == "develop": + if iversion == "develop" and not iname == "moo": (itag, ihash) = get_commit_hash(iname, iversion, iversion) iline = f"git+https://github.com/{iuser}/{iname}@{ihash}#egg={iname}" + elif iname == "moo": + iline = f"git+https://github.com/{iuser}/{iname}@{iversion}#egg={iname}" else: iline = f"git+https://github.com/{iuser}/{iname}@v{iversion}#egg={iname}" f.write(iline + '\n') diff --git a/scripts/spack/mappings.py b/scripts/spack/mappings.py index 49e5e53be..4cf17fc1a 100644 --- a/scripts/spack/mappings.py +++ b/scripts/spack/mappings.py @@ -1,4 +1,5 @@ cmake_to_spack = { + 'py-moo': 'py-moo\", type=\"build', 'pybind11': 'py-pybind11', 'folly': 'folly cxxstd=2a', 'libtorrentrasterbar': 'libtorrent', diff --git a/scripts/version_surveys/python_packages.sh b/scripts/version_surveys/python_packages.sh index 112fab625..34fedd72e 100644 --- a/scripts/version_surveys/python_packages.sh +++ b/scripts/version_surveys/python_packages.sh @@ -43,5 +43,6 @@ pip freeze > ./pyvenv_requirements.txt test "$?" == "0" || return 12 echo "Versions stable into ./pyvenv_requirements.txt" +echo "Note you need to handle moo and its dependencies separately" echo $success_message diff --git a/spack-repos/externals/packages/py-moo/package.py b/spack-repos/externals/packages/py-moo/package.py new file mode 100644 index 000000000..c92a8e1ae --- /dev/null +++ b/spack-repos/externals/packages/py-moo/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyMoo(PythonPackage): + """Model oriented objects, tools for code generation.""" + + homepage = "https://brettviren.github.io/moo" + url = "https://github.com/brettviren/moo/archive/0.6.3.tar.gz" + git = "https://github.com/brettviren/moo.git" + + maintainers = ['jcfreeman2'] + + version('0.5.7', sha256='f881e396d521dbd1937d4e25949e80770dc8bad03e29888f63aa613bcce82222') + version("0.6.7", sha256="f155c72e2d0f384fce384fa1c5b2fbab17e09aeb1bd4b10454a9b11d95eef8e2") + version("0.6.4", sha256="e512bf088f62946fc9e75b82445c61169f976f230b0d3e918467052ea8982fb9") + version("0.6.3", sha256="f8be51ed4e896bb66329d3d66185b4da375d0964f6a0e582d32565032eaad249") + version("0.6.1", sha256="b100689a1469c7c1b0fa0d418e7391cb8a754fbe5706d0d7e455f5a1743e0ddf") + + + depends_on('py-click', type=('build', 'run')) + depends_on('py-jinja2', type=('build', 'run')) + depends_on('py-jsonschema', type=('build', 'run')) + depends_on('py-fastjsonschema', type=('build', 'run')) + depends_on('py-jsonpointer', type=('build', 'run')) + depends_on('py-numpy@1.23.0', type=('build', 'run'), when="@:0.6.4") + depends_on('py-numpy@2.1.2', type=('build', 'run'), when="@0.6.7:") + #depends_on('py-numpy@1.26.0', type=('build', 'run'), when="@0.6.7: ^python@:3.11") + #depends_on('py-numpy@2.1.2', type=('build', 'run'), when="@0.6.7: ^python@3.12:") + depends_on('py-openpyxl', type=('build', 'run')) + depends_on('py-gojsonnet', type=('build', 'run'), when='@0.6.7:') + depends_on('py-setuptools', type=('build'), when='@0.6.7: ^python@3.11:') + + # DUNE-specific + depends_on('py-jsonnet', type=('build', 'run')) + depends_on('py-anyconfig', type=('build', 'run')) From 292371f919b8c83ebfd26635178f248f6c3fff6a Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 11 May 2026 14:10:09 -0500 Subject: [PATCH 4/6] JCF: drop usage of py-moo in future nightlies --- configs/coredaq/fddaq-develop/release.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/configs/coredaq/fddaq-develop/release.yaml b/configs/coredaq/fddaq-develop/release.yaml index 3ce31d59c..e66393c2d 100644 --- a/configs/coredaq/fddaq-develop/release.yaml +++ b/configs/coredaq/fddaq-develop/release.yaml @@ -70,9 +70,6 @@ - name: fmt version: 8.1.1 variant: "cxxstd=17 shared=True" - - name: py-moo - version: 0.6.7 - variant: ~ - name: py-anyconfig version: 0.14.0 variant: ~ From 65c42d0a6b91ca6664f36c394b091f595f019630 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 11 May 2026 14:31:00 -0500 Subject: [PATCH 5/6] JCF: account for the fact that drunc still uses jsonschema and had been relying on the py-jsonschema Spack installation which py-moo depends on --- configs/fddaq/fddaq-develop/release.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configs/fddaq/fddaq-develop/release.yaml b/configs/fddaq/fddaq-develop/release.yaml index 86ae208f0..674a70b06 100644 --- a/configs/fddaq/fddaq-develop/release.yaml +++ b/configs/fddaq/fddaq-develop/release.yaml @@ -249,6 +249,9 @@ - name: jinja2 version: 3.1.6 source: pypi + - name: jsonschema + version: 4.17.3 + source: pypi - name: kafka-python version: 2.3.0 source: pypi @@ -360,6 +363,9 @@ - name: pyparsing version: 3.3.1 source: pypi + - name: pyrsistent + version: 0.19.3 + source: pypi - name: pysocks version: 1.7.1 source: pypi From 5e3fc4250eb5fa81c75bb2ff97ce12c60f4967f7 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 12 May 2026 07:58:14 -0500 Subject: [PATCH 6/6] JCF: revert build-release.sh back to using versioned daq-cmake --- scripts/spack/build-release.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/spack/build-release.sh b/scripts/spack/build-release.sh index 1457ed9e8..93b7fb847 100755 --- a/scripts/spack/build-release.sh +++ b/scripts/spack/build-release.sh @@ -83,7 +83,6 @@ cmd="python3 scripts/spack/make-release-repo.py -u \ -r ${RELEASE_TAG} \ -o ${SPACK_AREA}/spack-${SPACK_VERSION} \ ${possible_core_release_arg} \ - --overwrite-daq-cmake \ ${possible_branch_arg}" echo $cmd