From 6ebafe46313ebb9dcb23a5cb08012e5ea20aa5e1 Mon Sep 17 00:00:00 2001 From: "Seth R. Johnson" Date: Thu, 21 Nov 2024 19:03:09 -0500 Subject: [PATCH 01/52] vecgeom: add v1.2.10 and delete unused, deprecated versions (#47725) * vecgeom: add v1.2.10 * Remove unused+deprecated versions of vecgeom * Deprecate older v1.2.x versions * [@spackbot] updating style on behalf of sethrj --- .../repos/builtin/packages/vecgeom/package.py | 104 ++---------------- 1 file changed, 10 insertions(+), 94 deletions(-) diff --git a/var/spack/repos/builtin/packages/vecgeom/package.py b/var/spack/repos/builtin/packages/vecgeom/package.py index ff0fdd145dc7da..3483d11576554e 100644 --- a/var/spack/repos/builtin/packages/vecgeom/package.py +++ b/var/spack/repos/builtin/packages/vecgeom/package.py @@ -21,136 +21,52 @@ class Vecgeom(CMakePackage, CudaPackage): maintainers("drbenmorgan", "sethrj") version("master", branch="master") + version( + "1.2.10", + url="https://gitlab.cern.ch/-/project/981/uploads/8e0a94013efdd1b2d4f44c3fbb10bcdf/VecGeom-v1.2.10.tar.gz", + sha256="3e0934842694452e4cb4a265428cb99af1ecc45f0e2d28a32dfeaa0634c21e2a", + ) version( "1.2.9", url="https://gitlab.cern.ch/-/project/981/uploads/55a89cafbf48a418bec68be42867d4bf/VecGeom-v1.2.9.tar.gz", sha256="93ee9ce6f7b2d704e9b9db22fad68f81b8eaf17453452969fc47e93dba4bfaf4", + deprecated=True, ) version( "1.2.8", url="https://gitlab.cern.ch/VecGeom/VecGeom/uploads/db11697eb81d6f369e9ded1078de946b/VecGeom-v1.2.8.tar.gz", sha256="769f59e8377f8268e253a9b2a3eee86868a9ebc1fa66c968b96e19c31440c12b", + deprecated=True, ) version( "1.2.7", url="https://gitlab.cern.ch/VecGeom/VecGeom/uploads/e4172cca4f6f731ef15e2780ecbb1645/VecGeom-v1.2.7.tar.gz", sha256="d264c69b78bf431b9542be1f1af087517eac629da03cf2da62eb1e433fe06021", + deprecated=True, ) version( "1.2.6", url="https://gitlab.cern.ch/VecGeom/VecGeom/uploads/0b16aed9907cea62aa5f5914bec99a90/VecGeom-v1.2.6.tar.gz", sha256="337f8846491930f3d8bfa4b45a1589d46e5d1d87f2d38c8f7006645c3aa90df8", + deprecated=True, ) version( "1.2.5", url="https://gitlab.cern.ch/VecGeom/VecGeom/uploads/33b93e656c5bc49d81cfcba291f5be51/VecGeom-v1.2.5.tar.gz", sha256="d79ea05125e4d03c5605e5ea232994c500841d207b4543ac3d84758adddc15a9", - ) - version( - "1.2.4", - sha256="4f5d43a9cd34a5e0200c41547a438cbb1ed4439f5bb757857c5a225d708590ce", - deprecated=True, - ) - version( - "1.2.3", - sha256="703e52d78b5b78e9f595bc76771659ab0cb09898ea32c50cfbde07d6d09ef1e1", - deprecated=True, - ) - version( - "1.2.2", - sha256="887134d40fc9731138189299f0bd5e73485fbb95a96eb4124ce0854e4672291f", - deprecated=True, - ) - version( - "1.2.1", - sha256="2b47f0d23f6d25ca4fc0601b93a98167bbfb4b8aa6a1bba16d0391569e99e6f0", - deprecated=True, - ) - version( - "1.2.0", - sha256="3448606fceb98ceb72d687d2d3b7ad44c67793d799def4ece9601b8e39c2868a", - deprecated=True, - ) - version( - "1.1.20", - sha256="e1c75e480fc72bca8f8072ea00320878a9ae375eed7401628b15cddd097ed7fd", - deprecated=True, - ) - version( - "1.1.19", - sha256="4c586b57fd4e30be044366c9be983249c7fa8bec629624523f5f69fd9caaa05b", - deprecated=True, - ) - version( - "1.1.18", - sha256="2780640233a36e0d3c767140417015be1893c1ad695ccc0bd3ee0767bc9fbed8", - deprecated=True, - ) - version( - "1.1.17", - sha256="2e95429b795311a6986320d785bedcd9dace9f8e7b7f6bd778d23a4ff23e0424", - deprecated=True, - ) - version( - "1.1.16", - sha256="2fa636993156d9d06750586e8a1ac1701ae2be62dea07964e2369698ae521d02", - deprecated=True, - ) - version( - "1.1.15", - sha256="0ee9897eb12d8d560dc0c9e56e8fdb78d0111f651a984df24e983da035bd1c70", - deprecated=True, - ) - version( - "1.1.13", - sha256="6bb364cc74bdab2e64e2fe132debd7f1e192da0a103f5149df7ab25b7c19a205", - deprecated=True, - ) - version( - "1.1.12", - sha256="fec4495aac4a9d583f076551da61a68b956bba1dd1ebe1cd48c00ef95c962049", - deprecated=True, - ) - version( - "1.1.9", - sha256="a90e11bf83724300d1d7206e5fe89a7915c4ec6aae881587f18e282ac0f6ee8e", - deprecated=True, - ) - version( - "1.1.8", - sha256="9c42206d788ec4b791571882f5ea8d2c591c938abe61c21cc5ec37bfea6bf768", - deprecated=True, - ) - version( - "1.1.7", - sha256="cc79a0baa783b21ecc399c4e7cca925ca340e6aeb96e3b2cad45c141557519bf", - deprecated=True, - ) - version( - "1.1.6", - sha256="c4806a6b67d01b40074b8cc6865d78574a6a1c573be51696f2ecdf98b9cb954a", deprecated=True, ) + version("1.1.20", sha256="e1c75e480fc72bca8f8072ea00320878a9ae375eed7401628b15cddd097ed7fd") version( "1.1.5", sha256="da674f3bbc75c30f56c1a2d251fa8930c899f27fa64b03a36569924030d87b95", deprecated=True, ) - version( - "1.1.3", - sha256="ada09e8b6b2fa6c058290302b2cb5a6c2e644192aab1623c31d18c6a2f4c01c8", - deprecated=True, - ) version( "1.1.0", sha256="e9d1ef83ff591fe4f9ef744a4d3155a3dc7e90ddb6735b24f3afe4c2dc3f7064", deprecated=True, ) - version( - "1.0.1", - sha256="1eae7ac9014c608e8d8db5568058b8c0fea1a1dc7a8f54157a3a1c997b6fd9eb", - deprecated=True, - ) version( "0.5.2", tag="v00.05.02", From ed1dbea77b442cd55848b11e633f6626e83a999d Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Fri, 22 Nov 2024 07:20:38 +0100 Subject: [PATCH 02/52] eigen: self.builder.build_directory -> self.build_directory (#47728) --- var/spack/repos/builtin/packages/eigen/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py index 14d0ad43a78222..1909cdd96e8e72 100644 --- a/var/spack/repos/builtin/packages/eigen/package.py +++ b/var/spack/repos/builtin/packages/eigen/package.py @@ -95,7 +95,7 @@ def cmake_args(self): return args def check(self): - ctest_args = ["--test-dir", self.builder.build_directory, "--repeat", "until-pass:3"] + ctest_args = ["--test-dir", self.build_directory, "--repeat", "until-pass:3"] if self.spec.satisfies("+nightly"): ctest_args.append("-D") ctest_args.append("Nightly") From 559c2f1eb9ea7fdaeecf7d4fdf556c544d9de45e Mon Sep 17 00:00:00 2001 From: Mark Abraham Date: Fri, 22 Nov 2024 14:33:30 +0100 Subject: [PATCH 03/52] gromacs: oneapi does not always require gcc (#47679) * gromacs: oneapi does not always require gcc * Support intel_provided_gcc only with %intel classic compiler Require gcc only when needed with %intel * New approach depending on gcc-runtime directly * Update var/spack/repos/builtin/packages/gromacs/package.py Co-authored-by: Christoph Junghans --------- Co-authored-by: Christoph Junghans --- var/spack/repos/builtin/packages/gromacs/package.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index 055cbebe14304f..90d17661182672 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -310,8 +310,14 @@ class Gromacs(CMakePackage, CudaPackage): depends_on("sycl", when="+sycl") depends_on("lapack") depends_on("blas") - depends_on("gcc", when="%oneapi ~intel_provided_gcc") depends_on("gcc", when="%intel ~intel_provided_gcc") + # TODO this can be expanded to all clang-based compilers once + # the principle is demonstrated to work + with when("%oneapi ~intel_provided_gcc"): + depends_on("gcc-runtime@5:", when="@2020") + depends_on("gcc-runtime@7:", when="@2021:2022") + depends_on("gcc-runtime@9:", when="@2023:2024") + depends_on("gcc-runtime@11:", when="@2025:") depends_on("hwloc@1.0:1", when="+hwloc@2016:2018") depends_on("hwloc", when="+hwloc@2019:") @@ -540,7 +546,7 @@ def cmake_args(self): ): with open(".".join([os.environ["SPACK_CXX"], "cfg"]), "r") as f: options.append("-DCMAKE_CXX_FLAGS={}".format(f.read())) - else: + elif self.spec.satisfies("^gcc"): options.append("-DGMX_GPLUSPLUS_PATH=%s/g++" % self.spec["gcc"].prefix.bin) if self.spec.satisfies("+double"): From cb3d6549c988cb914583e4d220a2d1c0b0aa6ae2 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Fri, 22 Nov 2024 15:04:19 +0100 Subject: [PATCH 04/52] traverse.py: ensure topo order is bfs for trees (#47720) --- lib/spack/spack/build_environment.py | 13 ++- lib/spack/spack/graph.py | 7 +- lib/spack/spack/test/graph.py | 13 +++ lib/spack/spack/test/traverse.py | 23 +++++ lib/spack/spack/traverse.py | 149 +++++++++------------------ 5 files changed, 96 insertions(+), 109 deletions(-) diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index 3a4f8b3fa941bf..c46db63c83b3f6 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -882,6 +882,9 @@ def __init__(self, *roots: spack.spec.Spec, context: Context): elif context == Context.RUN: self.root_depflag = dt.RUN | dt.LINK + def accept(self, item): + return True + def neighbors(self, item): spec = item.edge.spec if spec.dag_hash() in self.root_hashes: @@ -919,19 +922,19 @@ def effective_deptypes( a flag specifying in what way they do so. The list is ordered topologically from root to leaf, meaning that environment modifications should be applied in reverse so that dependents override dependencies, not the other way around.""" - visitor = traverse.TopoVisitor( - EnvironmentVisitor(*specs, context=context), - key=lambda x: x.dag_hash(), + topo_sorted_edges = traverse.traverse_topo_edges_generator( + traverse.with_artificial_edges(specs), + visitor=EnvironmentVisitor(*specs, context=context), + key=traverse.by_dag_hash, root=True, all_edges=True, ) - traverse.traverse_depth_first_with_visitor(traverse.with_artificial_edges(specs), visitor) # Dictionary with "no mode" as default value, so it's easy to write modes[x] |= flag. use_modes = defaultdict(lambda: UseMode(0)) nodes_with_type = [] - for edge in visitor.edges: + for edge in topo_sorted_edges: parent, child, depflag = edge.parent, edge.spec, edge.depflag # Mark the starting point diff --git a/lib/spack/spack/graph.py b/lib/spack/spack/graph.py index f4ac437df92b38..2d0fc9c3a86fcd 100644 --- a/lib/spack/spack/graph.py +++ b/lib/spack/spack/graph.py @@ -325,12 +325,7 @@ def write(self, spec, color=None, out=None): self._out = llnl.util.tty.color.ColorStream(out, color=color) # We'll traverse the spec in topological order as we graph it. - nodes_in_topological_order = [ - edge.spec - for edge in spack.traverse.traverse_edges_topo( - [spec], direction="children", deptype=self.depflag - ) - ] + nodes_in_topological_order = list(spec.traverse(order="topo", deptype=self.depflag)) nodes_in_topological_order.reverse() # Work on a copy to be nondestructive diff --git a/lib/spack/spack/test/graph.py b/lib/spack/spack/test/graph.py index c26363bb46d993..a622e855e55f16 100644 --- a/lib/spack/spack/test/graph.py +++ b/lib/spack/spack/test/graph.py @@ -73,5 +73,18 @@ def test_ascii_graph_mpileaks(config, mock_packages, monkeypatch): o | libdwarf |/ o libelf +""" + or graph_str + == r"""o mpileaks +|\ +| o callpath +|/| +| o dyninst +| |\ +o | | mpich + / / +| o libdwarf +|/ +o libelf """ ) diff --git a/lib/spack/spack/test/traverse.py b/lib/spack/spack/test/traverse.py index 79e05c0b2c369c..62ce24d366ee1b 100644 --- a/lib/spack/spack/test/traverse.py +++ b/lib/spack/spack/test/traverse.py @@ -431,3 +431,26 @@ def test_traverse_nodes_no_deps(abstract_specs_dtuse): ] outputs = [x for x in traverse.traverse_nodes(inputs, deptype=dt.NONE)] assert outputs == [abstract_specs_dtuse["dtuse"], abstract_specs_dtuse["dtlink5"]] + + +@pytest.mark.parametrize("cover", ["nodes", "edges"]) +def test_topo_is_bfs_for_trees(cover): + """For trees, both DFS and BFS produce a topological order, but BFS is the most sensible for + our applications, where we typically want to avoid that transitive dependencies shadow direct + depenencies in global search paths, etc. This test ensures that for trees, the default topo + order coincides with BFS.""" + binary_tree = create_dag( + nodes=["A", "B", "C", "D", "E", "F", "G"], + edges=( + ("A", "B", "all"), + ("A", "C", "all"), + ("B", "D", "all"), + ("B", "E", "all"), + ("C", "F", "all"), + ("C", "G", "all"), + ), + ) + + assert list(traverse.traverse_nodes([binary_tree["A"]], order="topo", cover=cover)) == list( + traverse.traverse_nodes([binary_tree["A"]], order="breadth", cover=cover) + ) diff --git a/lib/spack/spack/traverse.py b/lib/spack/spack/traverse.py index f6c5589b2aeaf7..158f4d892e3017 100644 --- a/lib/spack/spack/traverse.py +++ b/lib/spack/spack/traverse.py @@ -115,70 +115,6 @@ def neighbors(self, item): return self.visitor.neighbors(item) -class TopoVisitor: - """Visitor that can be used in :py:func:`depth-first traversal - ` to generate - a topologically ordered list of specs. - - Algorithm based on "Section 22.4: Topological sort", Introduction to Algorithms - (2001, 2nd edition) by Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; - Stein, Clifford. - - Summary of the algorithm: prepend each vertex to a list in depth-first post-order, - not following edges to nodes already seen. This ensures all descendants occur after - their parent, yielding a topological order. - - Note: in this particular implementation we collect the *edges* through which the - vertices are discovered, meaning that a topological order of *vertices* is obtained - by taking the specs pointed to: ``map(lambda edge: edge.spec, visitor.edges)``. - Lastly, ``all_edges=True`` can be used to retrieve a list of all reachable - edges, with the property that for each vertex all in-edges precede all out-edges. - """ - - def __init__(self, visitor, key=id, root=True, all_edges=False): - """ - Arguments: - visitor: visitor that implements accept(), pre(), post() and neighbors() - key: uniqueness key for nodes - root (bool): Whether to include the root node. - all_edges (bool): when ``False`` (default): Each node is reached once, - and ``map(lambda edge: edge.spec, visitor.edges)`` is topologically - ordered. When ``True``, every edge is listed, ordered such that for - each node all in-edges precede all out-edges. - """ - self.visited = set() - self.visitor = visitor - self.key = key - self.root = root - self.reverse_order = [] - self.all_edges = all_edges - - def accept(self, item): - if self.key(item.edge.spec) not in self.visited: - return True - if self.all_edges and (self.root or item.depth > 0): - self.reverse_order.append(item.edge) - return False - - def pre(self, item): - # You could add a temporary marker for cycle detection - # that's cleared in `post`, but we assume no cycles. - pass - - def post(self, item): - self.visited.add(self.key(item.edge.spec)) - if self.root or item.depth > 0: - self.reverse_order.append(item.edge) - - def neighbors(self, item): - return self.visitor.neighbors(item) - - @property - def edges(self): - """Return edges in topological order (in-edges precede out-edges).""" - return list(reversed(self.reverse_order)) - - def get_visitor_from_args( cover, direction, depflag: Union[dt.DepFlag, dt.DepTypes], key=id, visited=None, visitor=None ): @@ -381,39 +317,54 @@ def traverse_breadth_first_tree_nodes(parent_id, edges, key=id, depth=0): yield item -# Topologic order -def traverse_edges_topo( - specs, - direction="children", - deptype: Union[dt.DepFlag, dt.DepTypes] = "all", - key=id, - root=True, - all_edges=False, -): +def traverse_topo_edges_generator(edges, visitor, key=id, root=True, all_edges=False): """ - Returns a list of edges in topological order, in the sense that all in-edges of a - vertex appear before all out-edges. By default with direction=children edges are - directed from dependent to dependency. With directions=parents, the edges are - directed from dependency to dependent. + Returns a list of edges in topological order, in the sense that all in-edges of a vertex appear + before all out-edges. Arguments: - specs (list): List of root specs (considered to be depth 0) - direction (str): ``children`` (edges are directed from dependent to dependency) - or ``parents`` (edges are flipped / directed from dependency to dependent) - deptype: allowed dependency types + edges (list): List of EdgeAndDepth instances + visitor: visitor instance that defines the sub-DAG to traverse key: function that takes a spec and outputs a key for uniqueness test. root (bool): Yield the root nodes themselves all_edges (bool): When ``False`` only one in-edge per node is returned, when ``True`` all reachable edges are returned. """ - if not isinstance(deptype, dt.DepFlag): - deptype = dt.canonicalize(deptype) - visitor: Union[BaseVisitor, ReverseVisitor, TopoVisitor] = BaseVisitor(deptype) - if direction == "parents": - visitor = ReverseVisitor(visitor, deptype) - visitor = TopoVisitor(visitor, key=key, root=root, all_edges=all_edges) - traverse_depth_first_with_visitor(with_artificial_edges(specs), visitor) - return visitor.edges + # Topo order used to be implemented using a DFS visitor, which was relatively efficient in that + # it would visit nodes only once, and it was composable. In practice however it would yield a + # DFS order on DAGs that are trees, which is undesirable in many cases. For example, a list of + # search paths for trees is better in BFS order, so that direct dependencies are listed first. + # That way a transitive dependency cannot shadow a direct one. So, here we collect the sub-DAG + # of interest and then compute a topological order that is the most breadth-first possible. + + # maps node identifier to the number of remaining in-edges + in_edge_count = defaultdict(int) + # maps parent identifier to a list of edges, where None is a special identifier + # for the artificial root/source. + node_to_edges = defaultdict(list) + for edge in traverse_breadth_first_edges_generator( + edges, CoverEdgesVisitor(visitor, key=key), root=True, depth=False + ): + in_edge_count[key(edge.spec)] += 1 + parent_id = key(edge.parent) if edge.parent is not None else None + node_to_edges[parent_id].append(edge) + + queue = [None] + + while queue: + for edge in node_to_edges[queue.pop(0)]: + child_id = key(edge.spec) + in_edge_count[child_id] -= 1 + + should_yield = root or edge.parent is not None + + if all_edges and should_yield: + yield edge + + if in_edge_count[child_id] == 0: + if not all_edges and should_yield: + yield edge + queue.append(key(edge.spec)) # High-level API: traverse_edges, traverse_nodes, traverse_tree. @@ -462,20 +413,20 @@ def traverse_edges( A generator that yields ``DependencySpec`` if depth is ``False`` or a tuple of ``(depth, DependencySpec)`` if depth is ``True``. """ - + # validate input if order == "topo": if cover == "paths": raise ValueError("cover=paths not supported for order=topo") - # TODO: There is no known need for topological ordering of traversals (edge or node) - # with an initialized "visited" set. Revisit if needed. if visited is not None: raise ValueError("visited set not implemented for order=topo") - return traverse_edges_topo( - specs, direction, deptype, key, root, all_edges=cover == "edges" - ) + elif order not in ("post", "pre", "breadth"): + raise ValueError(f"Unknown order {order}") + # In topo traversal we need to construct a sub-DAG including all edges even if we are yielding + # a subset of them, hence "paths". + _cover = "paths" if order == "topo" else cover + visitor = get_visitor_from_args(_cover, direction, deptype, key, visited) root_edges = with_artificial_edges(specs) - visitor = get_visitor_from_args(cover, direction, deptype, key, visited) # Depth-first if order in ("pre", "post"): @@ -484,8 +435,10 @@ def traverse_edges( ) elif order == "breadth": return traverse_breadth_first_edges_generator(root_edges, visitor, root, depth) - - raise ValueError("Unknown order {}".format(order)) + elif order == "topo": + return traverse_topo_edges_generator( + root_edges, visitor, key, root, all_edges=cover == "edges" + ) def traverse_nodes( From 5dacb774f6f489d7f521fd11eb4a3391ac45e6c3 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Fri, 22 Nov 2024 18:41:23 +0100 Subject: [PATCH 05/52] itk: use vendored googletest (#47687) external googletest breaks dependents because they end up with ITK_LIBRARIES set to `GTest::GTest;GTest::Main`, which then end up literally in a nonsensical link line `-lGTest::GtTest`. the vendored googletest produces a cmake config file where `ITKGoogleTest_LIBRARIES` is empty. --- var/spack/repos/builtin/packages/itk/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/itk/package.py b/var/spack/repos/builtin/packages/itk/package.py index dd3ac52049ef96..f5155a7cc549cb 100644 --- a/var/spack/repos/builtin/packages/itk/package.py +++ b/var/spack/repos/builtin/packages/itk/package.py @@ -63,7 +63,6 @@ class Itk(CMakePackage): depends_on("eigen") depends_on("expat") depends_on("fftw-api") - depends_on("googletest") depends_on("hdf5+cxx+hl") depends_on("jpeg") depends_on("libpng") @@ -79,8 +78,11 @@ class Itk(CMakePackage): def cmake_args(self): use_mkl = self.spec["fftw-api"].name in INTEL_MATH_LIBRARIES args = [ + self.define("BUILD_TESTING", False), self.define("BUILD_SHARED_LIBS", True), self.define("ITK_USE_SYSTEM_LIBRARIES", True), + # https://github.com/InsightSoftwareConsortium/ITK/issues/303 + self.define("ITK_USE_SYSTEM_GOOGLETEST", False), self.define("ITK_USE_MKL", use_mkl), self.define_from_variant("Module_ITKReview", "review"), self.define_from_variant("Module_RTK", "rtk"), From 3dcbd118df52e1bb93aba59c1751e448ee6a9358 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Fri, 22 Nov 2024 22:20:41 +0100 Subject: [PATCH 06/52] py-cython: support Python 3.12+ (#47714) and add various other compat bounds on dependents --- .../builtin/packages/py-cython/package.py | 109 ++++++++++++------ .../builtin/packages/py-expandvars/package.py | 19 +++ .../builtin/packages/py-frozenlist/package.py | 27 +++-- .../builtin/packages/py-multidict/package.py | 16 ++- 4 files changed, 126 insertions(+), 45 deletions(-) create mode 100644 var/spack/repos/builtin/packages/py-expandvars/package.py diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py index 96d60cb7681905..a410fdb4fb2c86 100644 --- a/var/spack/repos/builtin/packages/py-cython/package.py +++ b/var/spack/repos/builtin/packages/py-cython/package.py @@ -10,16 +10,12 @@ class PyCython(PythonPackage): """The Cython compiler for writing C extensions for the Python language.""" homepage = "https://github.com/cython/cython" - pypi = "cython/Cython-0.29.21.tar.gz" + pypi = "cython/cython-3.0.11.tar.gz" tags = ["build-tools"] license("Apache-2.0") - version( - "3.0.11", - sha256="7146dd2af8682b4ca61331851e6aebce9fe5158e75300343f80c07ca80b1faff", - url="https://files.pythonhosted.org/packages/source/cython/cython-3.0.11.tar.gz", - ) + version("3.0.11", sha256="7146dd2af8682b4ca61331851e6aebce9fe5158e75300343f80c07ca80b1faff") version("3.0.10", sha256="dcc96739331fb854dcf503f94607576cfe8488066c61ca50dfd55836f132de99") version("3.0.8", sha256="8333423d8fd5765e7cceea3a9985dd1e0a5dfeb2734629e1a2ed2d6233d39de6") version("3.0.7", sha256="fb299acf3a578573c190c858d49e0cf9d75f4bc49c3f24c5a63804997ef09213") @@ -37,42 +33,83 @@ class PyCython(PythonPackage): version("0.29.23", sha256="6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e") version("0.29.22", sha256="df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406") version("0.29.21", sha256="e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad") - version("0.29.20", sha256="22d91af5fc2253f717a1b80b8bb45acb655f643611983fd6f782b9423f8171c7") - version("0.29.16", sha256="232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05") - version("0.29.15", sha256="60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30") - version("0.29.14", sha256="e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414") - version("0.29.13", sha256="c29d069a4a30f472482343c866f7486731ad638ef9af92bfe5fca9c7323d638e") - version("0.29.10", sha256="26229570d6787ff3caa932fe9d802960f51a89239b990d275ae845405ce43857") - version("0.29.7", sha256="55d081162191b7c11c7bfcb7c68e913827dfd5de6ecdbab1b99dab190586c1e8") - version("0.29.5", sha256="9d5290d749099a8e446422adfb0aa2142c711284800fb1eb70f595101e32cbf1") - version("0.29", sha256="94916d1ede67682638d3cc0feb10648ff14dc51fb7a7f147f4fedce78eaaea97") - version("0.28.6", sha256="68aa3c00ef1deccf4dd50f0201d47c268462978c12c42943bc33dc9dc816ac1b") - version("0.28.3", sha256="1aae6d6e9858888144cea147eb5e677830f45faaff3d305d77378c3cba55f526") - version("0.28.1", sha256="152ee5f345012ca3bb7cc71da2d3736ee20f52cd8476e4d49e5e25c5a4102b12") - version("0.25.2", sha256="f141d1f9c27a07b5a93f7dc5339472067e2d7140d1c5a9e20112a5665ca60306") - version("0.23.5", sha256="0ae5a5451a190e03ee36922c4189ca2c88d1df40a89b4f224bc842d388a0d1b6") - version("0.23.4", sha256="fec42fecee35d6cc02887f1eef4e4952c97402ed2800bfe41bbd9ed1a0730d8e") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - # https://github.com/cython/cython/issues/5751 (distutils not yet dropped) - depends_on("python@:3.11", type=("build", "link", "run")) - - # https://github.com/cython/cython/commit/1cd24026e9cf6d63d539b359f8ba5155fd48ae21 - # collections.Iterable was removed in Python 3.10 - depends_on("python@:3.9", when="@:0.29.14", type=("build", "link", "run")) - - # https://github.com/cython/cython/commit/430e2ca220c8fed49604daf578df98aadb33a87d - depends_on("python@:3.8", when="@:0.29.13", type=("build", "link", "run")) - - depends_on("py-setuptools", type=("build", "run")) + with default_args(deprecated=True): + version( + "0.29.20", sha256="22d91af5fc2253f717a1b80b8bb45acb655f643611983fd6f782b9423f8171c7" + ) + version( + "0.29.16", sha256="232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05" + ) + version( + "0.29.15", sha256="60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30" + ) + version( + "0.29.14", sha256="e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414" + ) + version( + "0.29.13", sha256="c29d069a4a30f472482343c866f7486731ad638ef9af92bfe5fca9c7323d638e" + ) + version( + "0.29.10", sha256="26229570d6787ff3caa932fe9d802960f51a89239b990d275ae845405ce43857" + ) + version( + "0.29.7", sha256="55d081162191b7c11c7bfcb7c68e913827dfd5de6ecdbab1b99dab190586c1e8" + ) + version( + "0.29.5", sha256="9d5290d749099a8e446422adfb0aa2142c711284800fb1eb70f595101e32cbf1" + ) + version("0.29", sha256="94916d1ede67682638d3cc0feb10648ff14dc51fb7a7f147f4fedce78eaaea97") + version( + "0.28.6", sha256="68aa3c00ef1deccf4dd50f0201d47c268462978c12c42943bc33dc9dc816ac1b" + ) + version( + "0.28.3", sha256="1aae6d6e9858888144cea147eb5e677830f45faaff3d305d77378c3cba55f526" + ) + version( + "0.28.1", sha256="152ee5f345012ca3bb7cc71da2d3736ee20f52cd8476e4d49e5e25c5a4102b12" + ) + version( + "0.25.2", sha256="f141d1f9c27a07b5a93f7dc5339472067e2d7140d1c5a9e20112a5665ca60306" + ) + version( + "0.23.5", sha256="0ae5a5451a190e03ee36922c4189ca2c88d1df40a89b4f224bc842d388a0d1b6" + ) + version( + "0.23.4", sha256="fec42fecee35d6cc02887f1eef4e4952c97402ed2800bfe41bbd9ed1a0730d8e" + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + + # Based on PyPI wheel availability + with default_args(type=("build", "link", "run")): + depends_on("python@:3.13") + depends_on("python@:3.12", when="@:3.0.10") + depends_on("python@:3.11", when="@:3.0.3") # Cythonize still used distutils + depends_on("python@:3.10", when="@:0.29.28") + depends_on("python@:3.9", when="@:0.29.24") + depends_on("python@:3.8", when="@:0.29.20") + depends_on("python@:3.7", when="@:0.29.13") + + # https://github.com/cython/cython/issues/5751 + # https://github.com/cython/cython/commit/0000fb4c319ef8f7e8eabcc99677f99a8c503cc3 + depends_on("py-setuptools@66:", when="^python@3.12:", type="run") + + depends_on("py-setuptools", type="build") depends_on("gdb@7.2:", type="test") # Backports CYTHON_FORCE_REGEN environment variable patch("5307.patch", when="@0.29:0.29.33") patch("5712.patch", when="@0.29") + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/c/cython/{}-{}.tar.gz" + if version >= Version("3.0.11"): + name = "cython" + else: + name = "Cython" + return url.format(name, version) + @property def command(self): """Returns the Cython command""" diff --git a/var/spack/repos/builtin/packages/py-expandvars/package.py b/var/spack/repos/builtin/packages/py-expandvars/package.py new file mode 100644 index 00000000000000..7d88ca2a93cbd8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-expandvars/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2024 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.package import * + + +class PyExpandvars(PythonPackage): + """Expand system variables Unix style.""" + + homepage = "https://github.com/sayanarijit/expandvars" + pypi = "expandvars/expandvars-0.12.0.tar.gz" + + license("MIT") + + version("0.12.0", sha256="7d1adfa55728cf4b5d812ece3d087703faea953e0c0a1a78415de9df5024d844") + + depends_on("py-hatchling", type="build") diff --git a/var/spack/repos/builtin/packages/py-frozenlist/package.py b/var/spack/repos/builtin/packages/py-frozenlist/package.py index b98a509c7043ed..89382f32b29897 100644 --- a/var/spack/repos/builtin/packages/py-frozenlist/package.py +++ b/var/spack/repos/builtin/packages/py-frozenlist/package.py @@ -15,14 +15,27 @@ class PyFrozenlist(PythonPackage): license("Apache-2.0") + version("1.5.0", sha256="81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817") version("1.3.1", sha256="3a735e4211a04ccfa3f4833547acdf5d2f863bfeb01cfd3edaffbc251f15cec8") version("1.3.0", sha256="ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b") version("1.2.0", sha256="68201be60ac56aff972dc18085800b6ee07973c49103a8aba669dee3d71079de") - depends_on("c", type="build") # generated - - depends_on("python@3.6:", type=("build", "run")) - depends_on("python@3.7:", when="@1.3.1:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-setuptools@46.4.0:", when="@1.3.1:", type="build") - depends_on("py-wheel@0.37.0:", when="@1.3.1:", type="build") + depends_on("c", type="build") + + # Based on PyPI wheel availability + with default_args(type=("build", "run")): + depends_on("python@:3.13") + depends_on("python@:3.12", when="@:1.4.1") + depends_on("python@:3.11", when="@:1.4.0") + depends_on("python@:3.10", when="@:1.3.1") + + with default_args(type="build"): + depends_on("py-expandvars", when="@1.4.1:") + depends_on("py-setuptools@47:", when="@1.4.1:") + depends_on("py-setuptools@46.4:", when="@1.3.1:") + depends_on("py-setuptools") + depends_on("py-tomli", when="@1.4.1: ^python@:3.10") + depends_on("py-wheel@0.37:", when="@1.3:1.4.0") + + # Not documented but still needed to cythonize files + depends_on("py-cython", when="@1.4.1:") diff --git a/var/spack/repos/builtin/packages/py-multidict/package.py b/var/spack/repos/builtin/packages/py-multidict/package.py index 152becac958447..ff6677668cd499 100644 --- a/var/spack/repos/builtin/packages/py-multidict/package.py +++ b/var/spack/repos/builtin/packages/py-multidict/package.py @@ -15,15 +15,27 @@ class PyMultidict(PythonPackage): license("Apache-2.0") + version("6.1.0", sha256="22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a") version("6.0.4", sha256="3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49") version("6.0.2", sha256="5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013") version("5.2.0", sha256="0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce") version("5.1.0", sha256="25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5") - version("4.7.6", sha256="fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430") + with default_args(deprecated=True): + version("4.7.6", sha256="fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430") - depends_on("c", type="build") # generated + depends_on("c", type="build") + + # Based on PyPI wheel availability + with default_args(type=("build", "link", "run")): + depends_on("python@:3.13") + depends_on("python@:3.12", when="@:6.0") + depends_on("python@:3.11", when="@:6.0.4") + depends_on("python@:3.10", when="@:6.0.2") + depends_on("python@:3.9", when="@:5.1") + depends_on("python@:3.8", when="@:4") depends_on("py-setuptools@40:", type="build") + depends_on("py-typing-extensions@4.1:", when="@6.1: ^python@:3.10", type=("build", "run")) # Historical dependencies depends_on("py-pip@18:", when="@:4", type="build") From 71b65bb424c6294badc4825ac4714ec7f89ad0b7 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Sat, 23 Nov 2024 10:48:07 +0100 Subject: [PATCH 07/52] py-opt-einsum: missing forward compat bound for python (#47757) --- var/spack/repos/builtin/packages/py-opt-einsum/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-opt-einsum/package.py b/var/spack/repos/builtin/packages/py-opt-einsum/package.py index e33397342696f1..90246f40a35054 100644 --- a/var/spack/repos/builtin/packages/py-opt-einsum/package.py +++ b/var/spack/repos/builtin/packages/py-opt-einsum/package.py @@ -19,6 +19,7 @@ class PyOptEinsum(PythonPackage): version("3.2.0", sha256="738b0a1db1d3084d360081bb64d826f9db06d2df7cc0bf8e2c9356028da1fa31") version("3.1.0", sha256="edfada4b1d0b3b782ace8bc14e80618ff629abf53143e1e6bbf9bd00b11ece77") - depends_on("python@3.5:", type=("build", "run")) + # https://github.com/dgasmith/opt_einsum/commit/7c8f193f90b6771a6b3065bb5cf6ec2747af8209 + depends_on("python@:3.11", when="@:3.3", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-numpy@1.7:", type=("build", "run")) From 39a081d7fd3935aad8891446508fa773f6e2408c Mon Sep 17 00:00:00 2001 From: finkandreas Date: Sat, 23 Nov 2024 15:45:22 +0100 Subject: [PATCH 08/52] Kokkos complex_align variant, Trilinos+PETSc enforcement for Kokkos~complex_align (#47686) --- .../repos/builtin/packages/kokkos/package.py | 1 + .../repos/builtin/packages/petsc/package.py | 1 + .../builtin/packages/trilinos/package.py | 39 ++++++++++--------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py index 9b9b78e11728fd..6492906ad76aa2 100644 --- a/var/spack/repos/builtin/packages/kokkos/package.py +++ b/var/spack/repos/builtin/packages/kokkos/package.py @@ -179,6 +179,7 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): options_variants = { "aggressive_vectorization": [False, "Aggressively vectorize loops"], "compiler_warnings": [False, "Print all compiler warnings"], + "complex_align": [True, "Align complex numbers"], "cuda_constexpr": [False, "Activate experimental constexpr features"], "cuda_lambda": [False, "Activate experimental lambda features"], "cuda_ldg_intrinsic": [False, "Use CUDA LDG intrinsics"], diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index 918b2e83679969..9d983d254f34d4 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -374,6 +374,7 @@ def check_fortran_compiler(self): depends_on("libyaml", when="+libyaml") depends_on("hwloc", when="+hwloc") depends_on("kokkos", when="+kokkos") + depends_on("kokkos~complex_align", when="+kokkos+complex") depends_on("kokkos-kernels", when="+kokkos") for cuda_arch in CudaPackage.cuda_arch_values: depends_on( diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index bb12c6caa3a81e..7966cb3e6790c2 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -407,23 +407,25 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): # ###################### Dependencies ########################## # External Kokkos - depends_on("kokkos@4.4.01", when="@master: +kokkos") - depends_on("kokkos@4.3.01", when="@16.0.0 +kokkos") - depends_on("kokkos@4.2.01", when="@15.1.0:15.1.1 +kokkos") - depends_on("kokkos@4.1.00", when="@14.4.0:15.0.0 +kokkos") - - depends_on("kokkos +wrapper", when="trilinos@14.4.0: +kokkos +wrapper") - depends_on("kokkos ~wrapper", when="trilinos@14.4.0: +kokkos ~wrapper") - - for a in CudaPackage.cuda_arch_values: - arch_str = "+cuda cuda_arch={0}".format(a) - kokkos_spec = "kokkos {0}".format(arch_str) - depends_on(kokkos_spec, when="@14.4.0: +kokkos {0}".format(arch_str)) - - for a in ROCmPackage.amdgpu_targets: - arch_str = "+rocm amdgpu_target={0}".format(a) - kokkos_spec = "kokkos {0}".format(arch_str) - depends_on(kokkos_spec, when="@14.4.0: +kokkos {0}".format(arch_str)) + with when("@14.4: +kokkos"): + depends_on("kokkos+wrapper", when="+wrapper") + depends_on("kokkos~wrapper", when="~wrapper") + depends_on("kokkos~complex_align") + depends_on("kokkos@4.4.01", when="@master:") + depends_on("kokkos@4.3.01", when="@16") + depends_on("kokkos@4.2.01", when="@15.1:15") + depends_on("kokkos@4.1.00", when="@14.4:15.0") + depends_on("kokkos-kernels@4.4.01", when="@master:") + depends_on("kokkos-kernels@4.3.01", when="@16") + depends_on("kokkos-kernels@4.2.01", when="@15.1:15") + depends_on("kokkos-kernels@4.1.00", when="@14.4:15.0") + + for a in CudaPackage.cuda_arch_values: + arch_str = f"+cuda cuda_arch={a}" + depends_on(f"kokkos{arch_str}", when=arch_str) + for a in ROCmPackage.amdgpu_targets: + arch_str = f"+rocm amdgpu_target={a}" + depends_on(f"kokkos{arch_str}", when=arch_str) depends_on("adios2", when="+adios2") depends_on("binder@1.3:", when="@15: +python", type="build") @@ -899,8 +901,9 @@ def define_tpl(trilinos_name, spack_name, have_dep): define_tpl(tpl_name, dep_name, dep_name in spec) # External Kokkos - if spec.satisfies("@14.4.0 +kokkos"): + if spec.satisfies("@14.4.0: +kokkos"): options.append(define_tpl_enable("Kokkos")) + options.append(define_tpl_enable("KokkosKernels", True)) # MPI settings options.append(define_tpl_enable("MPI")) From 85d83f9c26cea76051cf95bc7194c43bfa0a0b5a Mon Sep 17 00:00:00 2001 From: Teague Sterling Date: Sat, 23 Nov 2024 12:13:40 -0800 Subject: [PATCH 09/52] duckdb: add v1.1.3, deprecate * Fixing styles Signed-off-by: Teague Sterling * duckdb: add v1.1.1 Signed-off-by: Teague Sterling * duckdb: Fix missing depends_on(unixodbc, when=+odbc) * Adding duckdb variants, removing old variants, removing deprecated versions Signed-off-by: Teague Sterling * duckdb+static_openssl: Add pkgconfig and zlib-api to link zlib when needed * duckdb: add v1.1.3 Signed-off-by: Teague Sterling * Update package.py for CVE-2024-41672 as suggested * [@spackbot] updating style on behalf of teaguesterling * duckdb: add CVE comment before deprecated versions --------- Signed-off-by: Teague Sterling Co-authored-by: Bernhard Kaindl Co-authored-by: Wouter Deconinck --- .../repos/builtin/packages/duckdb/package.py | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/duckdb/package.py b/var/spack/repos/builtin/packages/duckdb/package.py index 6bac330a3af831..79f88acc414948 100644 --- a/var/spack/repos/builtin/packages/duckdb/package.py +++ b/var/spack/repos/builtin/packages/duckdb/package.py @@ -18,12 +18,26 @@ class Duckdb(MakefilePackage): maintainers("glentner", "teaguesterling") version("master", branch="master") + version("1.1.3", sha256="2aea0af898ad753fee82b776fea1bf78ccbc9648986e7f7a87372df5e74cdb98") version("1.1.2", sha256="a3319a64c390ed0454c869b2e4fc0af2413cd49f55cd0f1400aaed9069cdbc4c") version("1.1.1", sha256="a764cef80287ccfd8555884d8facbe962154e7c747043c0842cd07873b4d6752") version("1.1.0", sha256="d9be2c6d3a5ebe2b3d33044fb2cb535bb0bd972a27ae38c4de5e1b4caa4bf68d") - version("1.0.0", sha256="04e472e646f5cadd0a3f877a143610674b0d2bcf9f4102203ac3c3d02f1c5f26") - version("0.10.3", sha256="7855587b3491dd488993287caee28720bee43ae28e92e8f41ea4631e9afcbf88") - version("0.10.2", sha256="662a0ba5c35d678ab6870db8f65ffa1c72e6096ad525a35b41b275139684cea6") + # CVE-2024-41672 + version( + "1.0.0", + sha256="04e472e646f5cadd0a3f877a143610674b0d2bcf9f4102203ac3c3d02f1c5f26", + deprecated=True, + ) + version( + "0.10.3", + sha256="7855587b3491dd488993287caee28720bee43ae28e92e8f41ea4631e9afcbf88", + deprecated=True, + ) + version( + "0.10.2", + sha256="662a0ba5c35d678ab6870db8f65ffa1c72e6096ad525a35b41b275139684cea6", + deprecated=True, + ) version( "0.10.0", sha256="5a925b8607d00a97c1a3ffe6df05c0a62a4df063abd022ada82ac1e917792013", From a7e57c9a14ce36d6a3b03d7cd3b3357754b89019 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Sun, 24 Nov 2024 08:40:29 +0100 Subject: [PATCH 10/52] py-opt-einsum: add v3.4.0 (#47759) --- .../repos/builtin/packages/py-jaxlib/package.py | 10 ++++++---- .../builtin/packages/py-opt-einsum/package.py | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-jaxlib/package.py b/var/spack/repos/builtin/packages/py-jaxlib/package.py index 3ba330388e2a02..8d894c6c5ef595 100644 --- a/var/spack/repos/builtin/packages/py-jaxlib/package.py +++ b/var/spack/repos/builtin/packages/py-jaxlib/package.py @@ -99,11 +99,13 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): depends_on("py-build", when="@0.4.14:") with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@0.4.31:") + depends_on("python@3.9:", when="@0.4.14:") + depends_on("python@3.8:", when="@0.4.6:") # Based on PyPI wheels - depends_on("python@3.10:3.12", when="@0.4.31:") - depends_on("python@3.9:3.12", when="@0.4.17:0.4.30") - depends_on("python@3.9:3.11", when="@0.4.14:0.4.16") - depends_on("python@3.8:3.11", when="@0.4.6:0.4.13") + depends_on("python@:3.13") + depends_on("python@:3.12", when="@:0.4.33") + depends_on("python@:3.11", when="@:0.4.16") # jaxlib/setup.py depends_on("py-scipy@1.10:", when="@0.4.31:") diff --git a/var/spack/repos/builtin/packages/py-opt-einsum/package.py b/var/spack/repos/builtin/packages/py-opt-einsum/package.py index 90246f40a35054..ff6107657013c6 100644 --- a/var/spack/repos/builtin/packages/py-opt-einsum/package.py +++ b/var/spack/repos/builtin/packages/py-opt-einsum/package.py @@ -14,12 +14,21 @@ class PyOptEinsum(PythonPackage): license("MIT") + version("3.4.0", sha256="96ca72f1b886d148241348783498194c577fa30a8faac108586b14f1ba4473ac") version("3.3.0", sha256="59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549") version("3.2.1", sha256="83b76a98d18ae6a5cc7a0d88955a7f74881f0e567a0f4c949d24c942753eb998") version("3.2.0", sha256="738b0a1db1d3084d360081bb64d826f9db06d2df7cc0bf8e2c9356028da1fa31") version("3.1.0", sha256="edfada4b1d0b3b782ace8bc14e80618ff629abf53143e1e6bbf9bd00b11ece77") - # https://github.com/dgasmith/opt_einsum/commit/7c8f193f90b6771a6b3065bb5cf6ec2747af8209 - depends_on("python@:3.11", when="@:3.3", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-numpy@1.7:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.8:", when="@3.4:") + # https://github.com/dgasmith/opt_einsum/commit/7c8f193f90b6771a6b3065bb5cf6ec2747af8209 + depends_on("python@:3.11", when="@:3.3") + + depends_on("py-numpy@1.7:", when="@:3.3") + + depends_on("py-setuptools", when="@:3.3", type="build") + + depends_on("py-hatchling", when="@3.4:", type="build") + depends_on("py-hatch-fancy-pypi-readme@22.5:", when="@3.4:", type="build") + depends_on("py-hatch-vcs", when="@3.4:", type="build") From c57452dd08f9f4da6db1f4591053ea496893140a Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 08:41:29 +0100 Subject: [PATCH 11/52] py-cffi: support Python 3.12+ (#47713) --- .../builtin/packages/flux-core/package.py | 3 +- .../repos/builtin/packages/py-cffi/package.py | 43 +++++++++++-------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/var/spack/repos/builtin/packages/flux-core/package.py b/var/spack/repos/builtin/packages/flux-core/package.py index 71d21097897d1c..0e269925379198 100644 --- a/var/spack/repos/builtin/packages/flux-core/package.py +++ b/var/spack/repos/builtin/packages/flux-core/package.py @@ -91,7 +91,8 @@ class FluxCore(AutotoolsPackage): # `link` dependency on python due to Flux's `pymod` module depends_on("python@3.6:", type=("build", "link", "run")) # Use of distutils in configure script dropped in v0.55 - depends_on("python@:3.11", when="@:0.54", type=("build", "link", "run")) + # Detection of cffi version fixed in v0.68 + depends_on("python@:3.11", when="@:0.67", type=("build", "link", "run")) depends_on("py-cffi@1.1:", type=("build", "run")) depends_on("py-pyyaml@3.10:", type=("build", "run")) depends_on("py-jsonschema@2.3:", type=("build", "run"), when="@:0.58.0") diff --git a/var/spack/repos/builtin/packages/py-cffi/package.py b/var/spack/repos/builtin/packages/py-cffi/package.py index 6f312fd942fdf1..c32e5ccd7c4977 100644 --- a/var/spack/repos/builtin/packages/py-cffi/package.py +++ b/var/spack/repos/builtin/packages/py-cffi/package.py @@ -22,29 +22,38 @@ class PyCffi(PythonPackage): version("1.15.0", sha256="920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954") version("1.14.6", sha256="c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd") version("1.14.3", sha256="f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591") - version("1.13.0", sha256="8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226") - version("1.12.2", sha256="e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7") - version("1.11.5", sha256="e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4") - version("1.10.0", sha256="b3b02911eb1f6ada203b0763ba924234629b51586f72a21faacc638269f4ced5") - version("1.1.2", sha256="390970b602708c91ddc73953bb6929e56291c18a4d80f360afa00fad8b6f3339") + with default_args(deprecated=True): + version( + "1.13.0", sha256="8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226" + ) + version( + "1.12.2", sha256="e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7" + ) + version( + "1.11.5", sha256="e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4" + ) + version( + "1.10.0", sha256="b3b02911eb1f6ada203b0763ba924234629b51586f72a21faacc638269f4ced5" + ) + version("1.1.2", sha256="390970b602708c91ddc73953bb6929e56291c18a4d80f360afa00fad8b6f3339") - depends_on("c", type="build") # generated + depends_on("c", type="build") - # ./spack-src/cffi/ffiplatform.py has _hack_at_distutils which imports - # setuptools before distutils, but only on Windows. This could be made - # unconditional to support Python 3.12 - depends_on("python@:3.11", type=("build", "run")) + # Based on PyPI wheel availability + with default_args(type=("build", "link", "run")): + depends_on("python@3.8:", when="@1.16:") - # python 3.12 support was released in @1.16:, however the removal - # in python3.12 of distutils has resulted in an imperfect fix for prefix-based - # tools like spack, see: - # https://github.com/spack/spack/pull/46224 - # https://github.com/cython/cython/pull/5754#issuecomment-1752102480 - # until this is correctly fixed, do not enable 3.12 support - # depends_on("python@:3.12", type=("build", "run"), when="@1.16:") + depends_on("python@:3.13") + depends_on("python@:3.12", when="@:1.16") + depends_on("python@:3.11", when="@:1.15") + depends_on("python@:3.10", when="@:1.15.0") + depends_on("python@:3.9", when="@:1.14") + depends_on("python@:3.8", when="@:1.14.2") + depends_on("python@:3.7", when="@:1.12") depends_on("pkgconfig", type="build") depends_on("py-setuptools", type="build") + depends_on("py-setuptools", type="run", when="^python@3.12:") depends_on("py-setuptools@66.1:", type="build", when="@1.16:") depends_on("py-pycparser", type=("build", "run")) depends_on("libffi") From 1148c8f195d812e5bd586f404edd403579ed5df2 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 11:53:32 +0100 Subject: [PATCH 12/52] gobject-introspection: Python 3.12 still not supported (#47767) --- .../repos/builtin/packages/gobject-introspection/package.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/var/spack/repos/builtin/packages/gobject-introspection/package.py b/var/spack/repos/builtin/packages/gobject-introspection/package.py index 3e6e32de13a40b..fd0d5881bec46b 100644 --- a/var/spack/repos/builtin/packages/gobject-introspection/package.py +++ b/var/spack/repos/builtin/packages/gobject-introspection/package.py @@ -92,6 +92,12 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage): when="@:1.63.1", ) + # https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/361 + # https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/395 + conflicts( + "^python@3.12:", + msg="gobject-introspection still uses distutils which was removed in Python 3.12", + ) conflicts( "^python@3.11:", when="@:1.60", From 124b616b2773af70c0188f910a17e9ce093caf51 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Sun, 24 Nov 2024 15:23:11 +0100 Subject: [PATCH 13/52] add a few forward compat bounds with python (#47761) --- var/spack/repos/builtin/packages/py-ipykernel/package.py | 2 ++ var/spack/repos/builtin/packages/py-nodeenv/package.py | 8 ++++++-- var/spack/repos/builtin/packages/py-notebook/package.py | 8 ++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-ipykernel/package.py b/var/spack/repos/builtin/packages/py-ipykernel/package.py index 02f2c943b4d58a..047cfdc73d782f 100644 --- a/var/spack/repos/builtin/packages/py-ipykernel/package.py +++ b/var/spack/repos/builtin/packages/py-ipykernel/package.py @@ -54,6 +54,8 @@ class PyIpykernel(PythonPackage): with default_args(type=("build", "run")): depends_on("python@3.8:", when="@6.22:") + # use of `imp` module + depends_on("python@:3.11", when="@:6.10") depends_on("py-debugpy@1.6.5:", when="@6.22:") depends_on("py-debugpy@1:", when="@6.11:") depends_on("py-debugpy@1.0:1", when="@6:6.10") diff --git a/var/spack/repos/builtin/packages/py-nodeenv/package.py b/var/spack/repos/builtin/packages/py-nodeenv/package.py index 6fddf220e42358..c52dfce401ad7a 100644 --- a/var/spack/repos/builtin/packages/py-nodeenv/package.py +++ b/var/spack/repos/builtin/packages/py-nodeenv/package.py @@ -16,6 +16,10 @@ class PyNodeenv(PythonPackage): version("1.7.0", sha256="e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b") version("1.3.3", sha256="ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a") - depends_on("python +ssl", when="@1.5:", type=("build", "run")) - depends_on("py-setuptools", when="@1.7:", type=("build", "run")) + with default_args(type=("build", "run")): + # https://github.com/ekalinin/nodeenv/commit/c1dffc5c64377cfcda9f2befd357e4791903bf39 + depends_on("python@:3.12", when="@:1.8") + depends_on("python +ssl", when="@1.5:") + depends_on("py-setuptools", when="@1.7:") + depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-notebook/package.py b/var/spack/repos/builtin/packages/py-notebook/package.py index 1f62831bfc44c9..3c029772d68972 100644 --- a/var/spack/repos/builtin/packages/py-notebook/package.py +++ b/var/spack/repos/builtin/packages/py-notebook/package.py @@ -38,8 +38,12 @@ class PyNotebook(PythonPackage): version("4.0.4", sha256="a57852514bce1b1cf41fa0311f6cf894960cf68b083b55e6c408316b598d5648") version("4.0.2", sha256="8478d7e2ab474855b0ff841f693983388af8662d3af1adcb861acb900274f22a") - depends_on("python@3.7:", type=("build", "run"), when="@6.4:") - depends_on("python@3.6:", type=("build", "run"), when="@6.3:") + with default_args(type=("build", "run")): + depends_on("python@3.7:", when="@6.4:") + depends_on("python@3.6:", when="@6.3:") + # import pipes in setupbase.py + depends_on("python@:3.12", when="@:6") + depends_on("py-jupyter-packaging@0.9:0", when="@6.4.1:", type="build") depends_on("py-setuptools", when="@5:", type="build") From c76098038ce1e149f8207f98ebd4d7dc0381a629 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Sun, 24 Nov 2024 15:26:15 +0100 Subject: [PATCH 14/52] py-ipykernel: split forward and backward compat bounds (#47763) --- .../builtin/packages/py-ipykernel/package.py | 46 +++++++++++-------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-ipykernel/package.py b/var/spack/repos/builtin/packages/py-ipykernel/package.py index 047cfdc73d782f..baeefe19d785d8 100644 --- a/var/spack/repos/builtin/packages/py-ipykernel/package.py +++ b/var/spack/repos/builtin/packages/py-ipykernel/package.py @@ -56,32 +56,42 @@ class PyIpykernel(PythonPackage): depends_on("python@3.8:", when="@6.22:") # use of `imp` module depends_on("python@:3.11", when="@:6.10") - depends_on("py-debugpy@1.6.5:", when="@6.22:") - depends_on("py-debugpy@1:", when="@6.11:") - depends_on("py-debugpy@1.0:1", when="@6:6.10") - depends_on("py-ipython@7.23.1:", when="@6.5.1:") - depends_on("py-ipython@7.23.1:7", when="@6.0.0:6.5.0") - depends_on("py-ipython@5.0:", when="@5") - depends_on("py-ipython@4.0:", when="@:4") + + with when("@6:"): + depends_on("py-debugpy@1.6.5:", when="@6.22:") + depends_on("py-debugpy@1:") + depends_on("py-debugpy@:1", when="@:6.10") + + depends_on("py-matplotlib-inline@0.1:") + depends_on("py-matplotlib-inline@:0.1", when="@:6.10") + + depends_on("py-ipython@7.23.1:", when="@6:") + depends_on("py-ipython@5:", when="@5:") + depends_on("py-ipython@4:") + depends_on("py-ipython@:7", when="@:6.5") + depends_on("py-comm@0.1.1:", when="@6.22:") + depends_on("py-traitlets@5.4:", when="@6.22:") - depends_on("py-traitlets@5.1:", when="@6.11:") - depends_on("py-traitlets@5.1.0:5", when="@6.5:6.10") - depends_on("py-traitlets@4.1.0:5", when="@6.0:6.4") + depends_on("py-traitlets@5.1:", when="@6.5:") depends_on("py-traitlets@4.1.0:") + depends_on("py-traitlets@:5", when="@:6.10") + depends_on("py-jupyter-client@6.1.12:", when="@6.11:") - depends_on("py-jupyter-client@:7", when="@6.2:6.10") - depends_on("py-jupyter-client@:6", when="@6.0.2:6.1") depends_on("py-jupyter-client") + depends_on("py-jupyter-client@:7", when="@:6.10") + depends_on("py-jupyter-client@:6", when="@:6.1") + depends_on("py-jupyter-core@4.12:", when="@6.22:") + depends_on("py-nest-asyncio", when="@6.6.1:") + depends_on("py-tornado@6.1:", when="@6.11:") - depends_on("py-tornado@5:6", when="@6.10") - depends_on("py-tornado@4.2:6", when="@6:6.9") - depends_on("py-tornado@4.2:", when="@5") - depends_on("py-tornado@4:", when="@:4") - depends_on("py-matplotlib-inline@0.1:", when="@6.11:") - depends_on("py-matplotlib-inline@0.1.0:0.1", when="@6:6.10") + depends_on("py-tornado@5:", when="@6.10:") + depends_on("py-tornado@4.2:", when="@5:") + depends_on("py-tornado@4:") + depends_on("py-tornado@:6", when="@:6.10") + depends_on("py-appnope", when="@5.1.3: platform=darwin") depends_on("py-pyzmq@24:", when="@6.28:") depends_on("py-pyzmq@20:", when="@6.22:") From 6501880fbf8018b7876a0a060a478c4d9b679dde Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Sun, 24 Nov 2024 15:27:16 +0100 Subject: [PATCH 15/52] py-node-env: add v1.9.1 (#47762) --- var/spack/repos/builtin/packages/py-nodeenv/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-nodeenv/package.py b/var/spack/repos/builtin/packages/py-nodeenv/package.py index c52dfce401ad7a..d5dbadfa0a69e7 100644 --- a/var/spack/repos/builtin/packages/py-nodeenv/package.py +++ b/var/spack/repos/builtin/packages/py-nodeenv/package.py @@ -12,6 +12,7 @@ class PyNodeenv(PythonPackage): homepage = "https://github.com/ekalinin/nodeenv" pypi = "nodeenv/nodeenv-1.3.3.tar.gz" + version("1.9.1", sha256="6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f") version("1.8.0", sha256="d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2") version("1.7.0", sha256="e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b") version("1.3.3", sha256="ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a") From 7586303fba9aac03afdad25a408cdf8f68f8e7b5 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:28:45 +0100 Subject: [PATCH 16/52] py-ruamel-yaml-clib: add Python compatibility bounds (#47773) --- .../packages/py-ruamel-yaml-clib/package.py | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py b/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py index 82bbd8db2e99e5..9f1ec1844ae026 100644 --- a/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py +++ b/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py @@ -8,26 +8,32 @@ class PyRuamelYamlClib(PythonPackage): - """C version of reader, parser and emitter for ruamel.yaml derived from - libyaml.""" + """C version of reader, parser and emitter for ruamel.yaml derived from libyaml.""" homepage = "https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/" pypi = "ruamel.yaml.clib/ruamel.yaml.clib-0.2.0.tar.gz" license("MIT") + version("0.2.12", sha256="6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f") version("0.2.7", sha256="1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497") version("0.2.0", sha256="b66832ea8077d9b3f6e311c4a53d06273db5dc2db6e8a908550f3c14d67e718c") - depends_on("c", type="build") # generated + depends_on("c", type="build") - depends_on("python", type=("build", "link", "run")) - # to prevent legacy-install-failure - depends_on("python@:3.9", when="@0.2.0", type=("build", "link", "run")) - depends_on("py-setuptools@28.7.0:", type="build") + # Based on PyPI wheel availability + with default_args(type=("build", "link", "run")): + depends_on("python@:3.13") + depends_on("python@:3.12", when="@:0.2.8") + depends_on("python@:3.11", when="@:0.2.7") + depends_on("python@:3.10", when="@:0.2.6") + depends_on("python@:3.9", when="@:0.2.4") + depends_on("python@:3.8", when="@:0.2.0") + + depends_on("py-setuptools", type="build") def flag_handler(self, name, flags): if name == "cflags": - if self.spec.satisfies("%oneapi") or self.spec.satisfies(" %apple-clang@15:"): + if self.spec.satisfies("%oneapi") or self.spec.satisfies("%apple-clang@15:"): flags.append("-Wno-error=incompatible-function-pointer-types") return (flags, None, None) From 16e130ece113c432861e32c8f791d2a855b42f72 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:31:08 +0100 Subject: [PATCH 17/52] py-cryptography: mark Python 3.13 support (#47768) --- var/spack/repos/builtin/packages/py-cryptography/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-cryptography/package.py b/var/spack/repos/builtin/packages/py-cryptography/package.py index 214deae9b1d7ed..5049fbf3e1c54e 100644 --- a/var/spack/repos/builtin/packages/py-cryptography/package.py +++ b/var/spack/repos/builtin/packages/py-cryptography/package.py @@ -16,6 +16,7 @@ class PyCryptography(PythonPackage): license("Apache-2.0") version("43.0.3", sha256="315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805") + version("43.0.1", sha256="203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d") version("42.0.8", sha256="8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2") version("41.0.7", sha256="13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc") version("41.0.3", sha256="6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34") @@ -35,6 +36,8 @@ class PyCryptography(PythonPackage): variant("idna", default=False, when="@2.5:3.0", description="Deprecated U-label support") + # pyo3 <= 0.22 required in version <= 42 + depends_on("python@:3.12", when="@:42", type=("build", "run")) # distutils required in version <= 40 depends_on("python@:3.11", when="@:40", type=("build", "run")) depends_on("py-setuptools@61.0:", when="@41:", type="build") From 281c274e0b8388cb8b69b156af658f2be6c8e8fb Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:31:31 +0100 Subject: [PATCH 18/52] py-jupyter-packaging: add Python 3.13 support (#47769) --- .../repos/builtin/packages/py-jupyter-packaging/package.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-jupyter-packaging/package.py b/var/spack/repos/builtin/packages/py-jupyter-packaging/package.py index c45a7b86dc3841..7c9df4e9acf403 100644 --- a/var/spack/repos/builtin/packages/py-jupyter-packaging/package.py +++ b/var/spack/repos/builtin/packages/py-jupyter-packaging/package.py @@ -16,6 +16,7 @@ class PyJupyterPackaging(PythonPackage): license("BSD-3-Clause") + version("0.12.3", sha256="9d9b2b63b97ffd67a8bc5391c32a421bc415b264a32c99e4d8d8dd31daae9cf4") version("0.12.0", sha256="b27455d60adc93a7baa2e0b8f386be81b932bb4e3c0116046df9ed230cd3faac") version("0.11.1", sha256="6f5c7eeea98f7f3c8fb41d565a94bf59791768a93f93148b3c2dfb7ebade8eec") version("0.10.6", sha256="a8a2c90bf2e0cae83be63ccb0b7035032a1589f268cc08b1d479e37ce50fc940") @@ -27,8 +28,9 @@ class PyJupyterPackaging(PythonPackage): url="https://files.pythonhosted.org/packages/source/j/jupyter_packaging/jupyter-packaging-0.7.12.tar.gz", ) - depends_on("python@3.7:", when="@0.11:", type=("build", "run")) - depends_on("python@3.6:", type=("build", "run")) + # https://github.com/jupyter/jupyter-packaging/pull/153 + depends_on("python@:3.12", when="@:0.12.1", type=("build", "run")) + depends_on("py-hatchling@0.25:", when="@0.12.1:", type="build") depends_on("py-packaging", type=("build", "run")) depends_on("py-tomlkit", when="@0.8:", type=("build", "run")) depends_on("py-setuptools@60.2:", when="@0.12:", type=("build", "run")) From 150416919e3337d0d61b4a637936b9f9f2fda795 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:37:06 +0100 Subject: [PATCH 19/52] py-pydantic-core: add v2.27.1 (#47771) --- .../repos/builtin/packages/py-pydantic-core/package.py | 4 ++++ var/spack/repos/builtin/packages/py-pydantic/package.py | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-pydantic-core/package.py b/var/spack/repos/builtin/packages/py-pydantic-core/package.py index ec7dd02dfa9d1e..5bc50895c9986b 100644 --- a/var/spack/repos/builtin/packages/py-pydantic-core/package.py +++ b/var/spack/repos/builtin/packages/py-pydantic-core/package.py @@ -15,8 +15,12 @@ class PyPydanticCore(PythonPackage): license("MIT", checked_by="qwertos") + version("2.27.1", sha256="62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235") version("2.18.4", sha256="ec3beeada09ff865c344ff3bc2f427f5e6c26401cc6113d77e372c3fdac73864") + # Based on PyPI wheel availability + depends_on("python@:3.13", type=("build", "run")) + depends_on("python@:3.12", when="@:2.19", type=("build", "run")) depends_on("rust@1.76:", type="build") depends_on("py-maturin@1", type="build") depends_on("py-typing-extensions@4.6,4.7.1:", type="build") diff --git a/var/spack/repos/builtin/packages/py-pydantic/package.py b/var/spack/repos/builtin/packages/py-pydantic/package.py index bfc6aa639bbc0e..a5fe38e4f7cffb 100644 --- a/var/spack/repos/builtin/packages/py-pydantic/package.py +++ b/var/spack/repos/builtin/packages/py-pydantic/package.py @@ -14,6 +14,7 @@ class PyPydantic(PythonPackage): license("MIT") + version("2.10.1", sha256="a4daca2dc0aa429555e0656d6bf94873a7dc5f54ee42b1f5873d666fb3f35560") version("2.7.4", sha256="0c84efd9548d545f63ac0060c1e4d39bb9b14db8b3c0652338aecc07b5adec52") version("1.10.9", sha256="95c70da2cd3b6ddf3b9645ecaa8d98f3d80c606624b6d245558d202cd23ea3be") version("1.10.2", sha256="91b8e218852ef6007c2b98cd861601c6a09f1aa32bbbb74fab5b1c33d4a1e410") @@ -25,12 +26,13 @@ class PyPydantic(PythonPackage): depends_on("py-setuptools", type="build", when="@1") depends_on("py-hatchling", type="build", when="@2") depends_on("py-hatch-fancy-pypi-readme@22.5.0:", type="build", when="@2") + depends_on("py-typing-extensions@4.12.2:", when="@2.10:", type=("build", "run")) depends_on("py-typing-extensions@4.6.1:", when="@2.7.1:", type=("build", "run")) depends_on("py-typing-extensions@4.2:", when="@1.10.9:", type=("build", "run")) depends_on("py-typing-extensions@4.1:", when="@1.10:", type=("build", "run")) depends_on("py-typing-extensions@3.7.4.3:", type=("build", "run")) - + depends_on("py-annotated-types@0.6:", type=("build", "run"), when="@2.10:") depends_on("py-annotated-types@0.4.0:", type=("build", "run"), when="@2.7.4:") + depends_on("py-pydantic-core@2.27.1", type=("build", "run"), when="@2.10.1") depends_on("py-pydantic-core@2.18.4", type=("build", "run"), when="@2.7.4") - depends_on("py-python-dotenv@0.10.4:", when="@1 +dotenv", type=("build", "run")) From a35aa038b0441cb5b790f1d9c9445e6efb077119 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:37:43 +0100 Subject: [PATCH 20/52] py-pystac: add support for Python 3.12+ (#47772) --- .../packages/py-pystac-client/package.py | 29 +++++++++++++++---- .../builtin/packages/py-pystac/package.py | 16 +++++++--- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-pystac-client/package.py b/var/spack/repos/builtin/packages/py-pystac-client/package.py index 7d657fd2217c10..7d3eb546c673b0 100644 --- a/var/spack/repos/builtin/packages/py-pystac-client/package.py +++ b/var/spack/repos/builtin/packages/py-pystac-client/package.py @@ -10,13 +10,30 @@ class PyPystacClient(PythonPackage): """Python library for working with Spatiotemporal Asset Catalog (STAC).""" homepage = "https://github.com/stac-utils/pystac-client.git" - pypi = "pystac-client/pystac-client-0.5.1.tar.gz" + pypi = "pystac-client/pystac_client-0.8.5.tar.gz" license("Apache-2.0") - version("0.5.1", sha256="f585bd9bcd52ee399c8a292dbb7e0405c0da359a73bc07c1ef82a65c17124d94") + version("0.8.5", sha256="7fba8d4f3c641ff7e840084fc3a53c96443a227f8a5889ae500fc38183ccd994") + version( + "0.5.1", + sha256="f585bd9bcd52ee399c8a292dbb7e0405c0da359a73bc07c1ef82a65c17124d94", + url="https://files.pythonhosted.org/packages/source/p/pystac-client/pystac-client-0.5.1.tar.gz", + deprecated=True, + ) - depends_on("py-setuptools", type="build") - depends_on("py-requests@2.27.1:", type=("build", "run")) - depends_on("py-pystac@1.4:", type=("build", "run")) - depends_on("py-python-dateutil@2.7:", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools@61:", when="@0.8:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@0.8:") + # setup.py imports 'imp', removed in Python 3.12 + depends_on("python@:3.11", when="@:0.6") + + depends_on("py-requests@2.28.2:", when="@0.8:") + depends_on("py-requests@2.27.1:") + depends_on("py-pystac@1.10:+validation", when="@0.8:") + depends_on("py-pystac@1.4:") + depends_on("py-python-dateutil@2.8.2:", when="@0.8:") + depends_on("py-python-dateutil@2.7:") diff --git a/var/spack/repos/builtin/packages/py-pystac/package.py b/var/spack/repos/builtin/packages/py-pystac/package.py index 6ddba4bca1cc4a..24994341cad971 100644 --- a/var/spack/repos/builtin/packages/py-pystac/package.py +++ b/var/spack/repos/builtin/packages/py-pystac/package.py @@ -14,6 +14,7 @@ class PyPystac(PythonPackage): license("Apache-2.0") + version("1.11.0", sha256="acb1e04be398a0cda2d8870ab5e90457783a8014a206590233171d8b2ae0d9e7") version("1.4.0", sha256="6ec43e1c6bec50fbfbdede49c3ccb83ecd112072a938001b5c9c581fc2945e83") version("1.3.0", sha256="b0244641ef2a29a7b7929266b0d1eda2b0a0ef826dadb1aed93404a14e6e313b") version("1.2.0", sha256="8a60be2a30e1e28f8617a88f9f8fddc00c519be494a02ec111dc8fba62bf26e7") @@ -21,7 +22,14 @@ class PyPystac(PythonPackage): version("1.0.1", sha256="3927f2104cd2077638e046b9c258d5e6b442bfabf2d179cbefbf10f509efae85") version("0.5.4", sha256="9fc3359364685adf54e3bc78c87550a8bc8b0a927405419bd8e4bbd42a8efc79") - depends_on("python@3.7:", when="@1:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-python-dateutil@2.7:", type=("build", "run")) - depends_on("py-typing-extensions@3.7:", when="@1: ^python@:3.7", type=("build", "run")) + variant("validation", default=False, description="Install an additional jsonschema dependency") + + with default_args(type="build"): + depends_on("py-setuptools@61:", when="@1.11:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@1.11:") + depends_on("py-python-dateutil@2.7:") + + depends_on("py-jsonschema@4.18:4", when="+validation") From cde2620f41ecd364e3cbd09ea1abb47041fce239 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:38:05 +0100 Subject: [PATCH 21/52] py-safetensors: add v0.4.5 (#47774) --- .../repos/builtin/packages/py-safetensors/package.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-safetensors/package.py b/var/spack/repos/builtin/packages/py-safetensors/package.py index f0f11247c55c2a..741a8d8ba43ad1 100644 --- a/var/spack/repos/builtin/packages/py-safetensors/package.py +++ b/var/spack/repos/builtin/packages/py-safetensors/package.py @@ -12,9 +12,12 @@ class PySafetensors(PythonPackage): homepage = "https://github.com/huggingface/safetensors" pypi = "safetensors/safetensors-0.3.1.tar.gz" + version("0.4.5", sha256="d73de19682deabb02524b3d5d1f8b3aaba94c72f1bbfc7911b9b9d5d391c0310") version("0.4.3", sha256="2f85fc50c4e07a21e95c24e07460fe6f7e2859d0ce88092838352b798ce711c2") version("0.3.1", sha256="571da56ff8d0bec8ae54923b621cda98d36dcef10feb36fd492c4d0c2cd0e869") - depends_on("py-setuptools", type="build") - depends_on("py-setuptools-rust", type="build") - depends_on("py-maturin", type="build", when="@0.4.3") + # Based on PyPI wheel availability + depends_on("python@:3.12", when="@:0.4.3", type=("build", "run")) + depends_on("py-maturin@1", type="build", when="@0.4.3:") + depends_on("py-setuptools", when="@0.3.1", type="build") + depends_on("py-setuptools-rust", when="@0.3.1", type="build") From 0bad754e2363fbe85da07adabacf63315a28f65b Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:39:36 +0100 Subject: [PATCH 22/52] py-scikit-learn: add Python 3.13 support (#47775) --- var/spack/repos/builtin/packages/py-scikit-learn/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py index 4fb94f843f70a0..372c50624ad994 100644 --- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py @@ -54,7 +54,8 @@ class PyScikitLearn(PythonPackage): # Based on PyPI wheel availability with default_args(type=("build", "link", "run")): - depends_on("python@3.9:3.12", when="@1.4:") + depends_on("python@3.9:3.13", when="@1.5.2:") + depends_on("python@3.9:3.12", when="@1.4:1.5.1") depends_on("python@3.8:3.12", when="@1.3.1:1.3") depends_on("python@3.8:3.11", when="@1.1.3:1.3.0") depends_on("python@3.8:3.10", when="@1.1.0:1.1.2") From 4208aa6291b04c9a59481772ff27413ca93b34ba Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:40:11 +0100 Subject: [PATCH 23/52] py-torchvision: add Python 3.13 support (#47776) --- var/spack/repos/builtin/packages/py-torchvision/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-torchvision/package.py b/var/spack/repos/builtin/packages/py-torchvision/package.py index 4fe32d63cce910..baa08a80375c38 100644 --- a/var/spack/repos/builtin/packages/py-torchvision/package.py +++ b/var/spack/repos/builtin/packages/py-torchvision/package.py @@ -73,7 +73,7 @@ class PyTorchvision(PythonPackage): with default_args(type=("build", "link", "run")): # Based on PyPI wheel availability - depends_on("python@3.9:3.12", when="@0.20:") + depends_on("python@3.9:3.13", when="@0.20:") depends_on("python@3.8:3.12", when="@0.17:0.19") depends_on("python@3.8:3.11", when="@0.15:0.16") depends_on("python@:3.10", when="@0.12:0.14") From 12d3abc7360da0a29338d6f9016a0a668bc998cb Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:40:45 +0100 Subject: [PATCH 24/52] py-pytz: add v2024.2 (#47777) --- var/spack/repos/builtin/packages/py-pytz/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-pytz/package.py b/var/spack/repos/builtin/packages/py-pytz/package.py index 952e8347f00475..66128890a9eda8 100644 --- a/var/spack/repos/builtin/packages/py-pytz/package.py +++ b/var/spack/repos/builtin/packages/py-pytz/package.py @@ -15,6 +15,7 @@ class PyPytz(PythonPackage): license("MIT") + version("2024.2", sha256="2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a") version("2023.3", sha256="1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588") version("2022.2.1", sha256="cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5") version("2021.3", sha256="acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326") From 9156e4be0458d907ba289661bd64b3dbd8a4c058 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:42:06 +0100 Subject: [PATCH 25/52] awscli-v2: add v2.22.4 (#47765) --- .../builtin/packages/awscli-v2/package.py | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/var/spack/repos/builtin/packages/awscli-v2/package.py b/var/spack/repos/builtin/packages/awscli-v2/package.py index ea9973c1257db5..51b80388946b0a 100644 --- a/var/spack/repos/builtin/packages/awscli-v2/package.py +++ b/var/spack/repos/builtin/packages/awscli-v2/package.py @@ -15,24 +15,31 @@ class AwscliV2(PythonPackage): maintainers("climbfuji", "teaguesterling") + version("2.22.4", sha256="56c6170f3be830afef2dea60fc3fd7ed14cf2ca2efba055c085fe6a7c4de358e") version("2.15.53", sha256="a4f5fd4e09b8f2fb3d2049d0610c7b0993f9aafaf427f299439f05643b25eb4b") version("2.13.22", sha256="dd731a2ba5973f3219f24c8b332a223a29d959493c8a8e93746d65877d02afc1") + with default_args(type="build"): + depends_on("py-flit-core@3.7.1:3.9.0", when="@2.22:") + depends_on("py-flit-core@3.7.1:3.8.0", when="@:2.15") + with default_args(type=("build", "run")): - depends_on("python@3.8:") - depends_on("py-flit-core@3.7.1:3.8.0") depends_on("py-colorama@0.2.5:0.4.6") depends_on("py-docutils@0.10:0.19") - # Remove upper bound to enable Python 3.12 support - # depends_on("py-cryptography@3.3.2:40.0.1") - depends_on("py-cryptography@3.3.2:") + depends_on("py-cryptography@40:43.0.1", when="@2.22:") + depends_on("py-cryptography@3.3.2:40.0.1", when="@:2.15") depends_on("py-ruamel-yaml@0.15:0.17.21") - depends_on("py-ruamel-yaml-clib@0.2:0.2.7", when="^python@:3.9") + depends_on("py-ruamel-yaml-clib@0.2:", when="@2.22:") + # Upper bound relaxed for Python 3.13 support + # depends_on("py-ruamel-yaml-clib@0.2:0.2.8", when="@2.22:") + depends_on("py-ruamel-yaml-clib@0.2:0.2.7", when="@:2.15") depends_on("py-prompt-toolkit@3.0.24:3.0.38") depends_on("py-distro@1.5:1.8") - depends_on("py-awscrt@0.16.4:0.16.16", when="@2.13") + depends_on("py-awscrt@0.19.18:0.22.0", when="@2.22:") depends_on("py-awscrt@0.19.18:0.19.19", when="@2.15") - depends_on("py-python-dateutil@2.1:2.8.2") + depends_on("py-awscrt@0.16.4:0.16.16", when="@2.13") + depends_on("py-python-dateutil@2.1:2.9.0", when="@2.22:") + depends_on("py-python-dateutil@2.1:2.8.2", when="@:2.15") depends_on("py-jmespath@0.7.1:1.0") depends_on("py-urllib3@1.25.4:1.26") From 325873a4c787f887ce7f033a689f7e7c1a0653bd Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 15:42:30 +0100 Subject: [PATCH 26/52] py-fsspec: add v2024.10.0 (#47778) --- var/spack/repos/builtin/packages/py-fsspec/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-fsspec/package.py b/var/spack/repos/builtin/packages/py-fsspec/package.py index 1e5bc5bad39821..d24069a32b4622 100644 --- a/var/spack/repos/builtin/packages/py-fsspec/package.py +++ b/var/spack/repos/builtin/packages/py-fsspec/package.py @@ -17,6 +17,7 @@ class PyFsspec(PythonPackage): # Requires pytest skip_modules = ["fsspec.tests"] + version("2024.10.0", sha256="eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493") version("2024.5.0", sha256="1d021b0b0f933e3b3029ed808eb400c08ba101ca2de4b3483fbc9ca23fcee94a") version("2024.3.1", sha256="f39780e282d7d117ffb42bb96992f8a90795e4d0fb0f661a70ca39fe9c43ded9") version("2024.2.0", sha256="b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84") From 58511a33523c200fd0400ca25ffc844a9ecc7fd1 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 17:48:16 +0100 Subject: [PATCH 27/52] py-pandas: correct Python version constraint (#47770) --- .../builtin/packages/py-pandas/package.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py index 63c6597b51c173..4ded508d748b9a 100644 --- a/var/spack/repos/builtin/packages/py-pandas/package.py +++ b/var/spack/repos/builtin/packages/py-pandas/package.py @@ -95,15 +95,16 @@ class PyPandas(PythonPackage): depends_on("py-setuptools@24.2:", when="@:1.2") with default_args(type=("build", "run")): - # Based on PyPI wheel versions - depends_on("python@3.9:3.13", when="@2.2.3:") - depends_on("python@3.9:3.12", when="@2.1.1:") - depends_on("python@3.9:3.11", when="@2.1.0") - depends_on("python@3.8:3.11", when="@1.5:2.0") - depends_on("python@3.8:3.10", when="@1.4") - depends_on("python@:3.10", when="@1.3.3:1.3") - depends_on("python@:3.9", when="@1.1.3:1.3.2") - depends_on("python@:3.8", when="@0.25.2:1.1.2") + # Based on PyPI wheel availability + depends_on("python@3.9:", when="@2.1:") + depends_on("python@3.8:", when="@1.4:") + + depends_on("python@:3.13") + depends_on("python@:3.12", when="@:2.2.2") + depends_on("python@:3.11", when="@:2.1.0") + depends_on("python@:3.10", when="@:1.4") + depends_on("python@:3.9", when="@:1.3.2") + depends_on("python@:3.8", when="@:1.1.2") depends_on("py-numpy@1.22.4:", when="@2.1:") depends_on("py-numpy@1.20.3:", when="@1.5:") From 75b03bc12ffbabdfac0775ead5442c3f102f94c7 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sun, 24 Nov 2024 20:55:18 +0100 Subject: [PATCH 28/52] glib: add v2.82.2 (#47766) --- var/spack/repos/builtin/packages/glib/package.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 982ea5449e16f9..5a32596e381225 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -30,7 +30,14 @@ class Glib(MesonPackage, AutotoolsPackage): license("LGPL-2.1-or-later") - version("2.78.3", sha256="609801dd373796e515972bf95fc0b2daa44545481ee2f465c4f204d224b2bc21") + # Even minor versions are stable, odd minor versions are development, only add even numbers + version("2.82.2", sha256="ab45f5a323048b1659ee0fbda5cecd94b099ab3e4b9abf26ae06aeb3e781fd63") + # No real reason to prefer older versions, `preferred` should be removed after testing + version( + "2.78.3", + sha256="609801dd373796e515972bf95fc0b2daa44545481ee2f465c4f204d224b2bc21", + preferred=True, + ) version("2.78.0", sha256="44eaab8b720877ce303c5540b657b126f12dc94972d9880b52959f43fb537b30") version("2.76.6", sha256="1136ae6987dcbb64e0be3197a80190520f7acab81e2bfb937dc85c11c8aa9f04") version("2.76.4", sha256="5a5a191c96836e166a7771f7ea6ca2b0069c603c7da3cba1cd38d1694a395dda") @@ -139,6 +146,8 @@ class Glib(MesonPackage, AutotoolsPackage): ) with when("build_system=meson"): + depends_on("meson@1.4:", when="@2.83:", type="build") + depends_on("meson@1.2:", when="@2.79:", type="build") depends_on("meson@0.60.0:", when="@2.73:", type="build") depends_on("meson@0.52.0:", when="@2.71:2.72", type="build") depends_on("meson@0.49.2:", when="@2.61.2:2.70", type="build") @@ -149,8 +158,9 @@ class Glib(MesonPackage, AutotoolsPackage): depends_on("zlib-api") depends_on("gettext") depends_on("perl", type=("build", "run")) + depends_on("python", type=("build", "run"), when="@2.53.4:") # Uses distutils in gio/gdbus-2.0/codegen/utils.py - depends_on("python@:3.11", type=("build", "run"), when="@2.53.4:") + depends_on("python@:3.11", type=("build", "run"), when="@2.53.4:2.78") depends_on("pcre2", when="@2.73.2:") depends_on("pcre2@10.34:", when="@2.74:") depends_on("pcre+utf", when="@2.48:2.73.1") From cd8c46e54e21d0317e0538481e54dac01a55bc8e Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 25 Nov 2024 10:02:31 +0100 Subject: [PATCH 29/52] py-ruff: add v0.8.0 (#47758) --- var/spack/repos/builtin/packages/py-ruff/package.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-ruff/package.py b/var/spack/repos/builtin/packages/py-ruff/package.py index f38b08a4d772a8..81781a04b5ecfa 100644 --- a/var/spack/repos/builtin/packages/py-ruff/package.py +++ b/var/spack/repos/builtin/packages/py-ruff/package.py @@ -7,15 +7,16 @@ class PyRuff(PythonPackage): - """An extremely fast Python linter, written in Rust.""" + """An extremely fast Python linter and code formatter, written in Rust.""" - homepage = "https://beta.ruff.rs/docs" + homepage = "https://docs.astral.sh/ruff" pypi = "ruff/ruff-0.0.276.tar.gz" git = "https://github.com/astral-sh/ruff.git" license("MIT") maintainers("adamjstewart") + version("0.8.0", sha256="a7ccfe6331bf8c8dad715753e157457faf7351c2b69f62f32c165c2dbcbacd44") version("0.6.5", sha256="4d32d87fab433c0cf285c3683dd4dae63be05fd7a1d65b3f5bf7cdd05a6b96fb") version("0.5.7", sha256="8dfc0a458797f5d9fb622dd0efc52d796f23f0a1493a9527f4e49a550ae9a7e5") version("0.4.5", sha256="286eabd47e7d4d521d199cab84deca135557e6d1e0f0d01c29e757c3cb151b54") @@ -28,5 +29,6 @@ class PyRuff(PythonPackage): depends_on("py-maturin@1") # Found in Cargo.toml + depends_on("rust@1.80:", when="@0.7.1:") depends_on("rust@1.76:", when="@0.5.6:") depends_on("rust@1.71:") From 347ec87fc522b93de2549d14bd937b36fda15f0c Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Mon, 25 Nov 2024 01:13:22 -0800 Subject: [PATCH 30/52] mfem: add logic for the C++ standard level when using rocPRIM (#47751) --- var/spack/repos/builtin/packages/mfem/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index 2b5d75706cd014..f5d564854f81c5 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -361,6 +361,8 @@ class Mfem(Package, CudaPackage, ROCmPackage): # MUMPS (and SuiteSparse in older versions). On the other hand, PETSc built # with MUMPS is not strictly required, so we do not require it here. depends_on("petsc@3.8:+mpi+hypre", when="+petsc") + # rocPRIM is a dependency when using petsc+rocm and requires C++14 or newer: + conflicts("cxxstd=11", when="^rocprim@5.5.0:") depends_on("slepc@3.8.0:", when="+slepc") # If petsc is built with +cuda, propagate cuda_arch to petsc and slepc for sm_ in CudaPackage.cuda_arch_values: @@ -635,6 +637,9 @@ def find_optional_library(name, prefix): cxxstd = "14" if self.spec.satisfies("^ginkgo"): cxxstd = "14" + # When rocPRIM is used (e.g. by PETSc + ROCm) we need C++14: + if self.spec.satisfies("^rocprim@5.5.0:"): + cxxstd = "14" cxxstd_req = spec.variants["cxxstd"].value if cxxstd_req != "auto": # Constraints for valid standard level should be imposed during From 8957ef0df54683c956b476b1d54b4dc517b7be96 Mon Sep 17 00:00:00 2001 From: Stephen Herbener <32968781+srherbener@users.noreply.github.com> Date: Mon, 25 Nov 2024 02:14:16 -0700 Subject: [PATCH 31/52] Updated version specs for bufr-query package. (#47752) --- var/spack/repos/builtin/packages/bufr-query/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/bufr-query/package.py b/var/spack/repos/builtin/packages/bufr-query/package.py index bf79f5f581bd82..f6557eb9b40f87 100644 --- a/var/spack/repos/builtin/packages/bufr-query/package.py +++ b/var/spack/repos/builtin/packages/bufr-query/package.py @@ -18,6 +18,7 @@ class BufrQuery(CMakePackage, PythonExtension): license("Apache-2.0", checked_by="srherbener") + version("0.0.4", sha256="cc21a298c03ee3a8938823301606e91c7b321005da284ebf2c9b25044bfcbad8") version("0.0.3", sha256="f2952a190cc1d7714a3bfe481fb1545459639ba304fc31b941062b471dea1d41") version("0.0.2", sha256="b87a128246e79e3c76e3158d89823e2ae38e9ee1a5a81b6f7b423837bdb93a1f") version("0.0.1", sha256="001990d864533c101b93d1c351edf50cf8b5ccc575e442d174735f6c332d3d03") From f1faf31735a7540188f34b6d374f5c6ed926dcb5 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 25 Nov 2024 03:20:58 -0600 Subject: [PATCH 32/52] build-containers: determine latest release tag and push that as latest (#47742) --- .github/workflows/build-containers.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index eb7e7b07927092..e49c98029d36f8 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -57,6 +57,12 @@ jobs: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - name: Determine latest release tag + id: latest + run: | + git fetch --quiet --tags + echo "tag=$(git tag --list --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1)" | tee -a $GITHUB_OUTPUT + - uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 id: docker_meta with: @@ -71,6 +77,7 @@ jobs: type=semver,pattern={{major}} type=ref,event=branch type=ref,event=pr + type=raw,value=latest,enable=${{ github.ref == format('refs/tags/{0}', steps.latest.outputs.tag) }} - name: Generate the Dockerfile env: From c93f223a7372eb960041cb5c5ffef833e80c4801 Mon Sep 17 00:00:00 2001 From: jflrichard <119768404+jflrichard@users.noreply.github.com> Date: Mon, 25 Nov 2024 04:24:03 -0500 Subject: [PATCH 33/52] postgis: add version 3.1.2 (#47743) --- var/spack/repos/builtin/packages/postgis/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/postgis/package.py b/var/spack/repos/builtin/packages/postgis/package.py index 5bc68169291e5b..1fdc91b9d32e6e 100644 --- a/var/spack/repos/builtin/packages/postgis/package.py +++ b/var/spack/repos/builtin/packages/postgis/package.py @@ -18,6 +18,7 @@ class Postgis(AutotoolsPackage): license("GPL-2.0-or-later") + version("3.1.2", sha256="2cdd3760176926704b4eb25ff3357543c9637dee74425a49082906857c7e0732") version("3.0.1", sha256="5a5432f95150d9bae9215c6d1c7bb354e060482a7c379daa9b8384e1d03e6353") version("3.0.0", sha256="c06fd2cd5cea0119106ffe17a7235d893c2bbe6f4b63c8617c767630973ba594") version("2.5.3", sha256="72e8269d40f981e22fb2b78d3ff292338e69a4f5166e481a77b015e1d34e559a") From 9da8dcae973b07a5701248c8854939b5cdf4ff51 Mon Sep 17 00:00:00 2001 From: Dave Keeshan <96727608+davekeeshan@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:30:48 +0000 Subject: [PATCH 34/52] verible: add v0.0.3841 (#47729) --- var/spack/repos/builtin/packages/verible/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/var/spack/repos/builtin/packages/verible/package.py b/var/spack/repos/builtin/packages/verible/package.py index e7109855f27c1f..e16c84f56afd90 100644 --- a/var/spack/repos/builtin/packages/verible/package.py +++ b/var/spack/repos/builtin/packages/verible/package.py @@ -34,6 +34,11 @@ class Verible(Package): version("master", branch="master") + version( + "0.0.3841", + sha256="fbc9cb32aa8a64ba60f24dc89e8573c8ea62c45d76113a0f2ab5b73babed5990", + url="https://github.com/chipsalliance/verible/archive/refs/tags/v0.0-3841-g5eb8aa34.tar.gz", + ) version( "0.0.3836", sha256="946625a1527d0a97772ea031ab7358af29e61258c189a2ab0d9533b43e71f35b", From a1c57d86c3a201e43316169bb3fc832319e8932c Mon Sep 17 00:00:00 2001 From: Dave Keeshan <96727608+davekeeshan@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:33:08 +0000 Subject: [PATCH 35/52] libusb: add v1.0.23:1.0.27 (#47727) --- var/spack/repos/builtin/packages/libusb/package.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/libusb/package.py b/var/spack/repos/builtin/packages/libusb/package.py index 36fb87fcc8aad7..9fdc454afc697d 100644 --- a/var/spack/repos/builtin/packages/libusb/package.py +++ b/var/spack/repos/builtin/packages/libusb/package.py @@ -11,12 +11,17 @@ class Libusb(AutotoolsPackage): """Library for USB device access.""" homepage = "https://libusb.info/" - url = "https://github.com/libusb/libusb/releases/download/v1.0.22/libusb-1.0.22.tar.bz2" + url = "https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2" git = "https://github.com/libusb/libusb" license("LGPL-2.1-or-later") version("master", branch="master") + version("1.0.27", sha256="ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575") + version("1.0.26", sha256="12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5") + version("1.0.25", sha256="8a28ef197a797ebac2702f095e81975e2b02b2eeff2774fa909c78a74ef50849") + version("1.0.24", sha256="7efd2685f7b327326dcfb85cee426d9b871fd70e22caa15bb68d595ce2a2b12a") + version("1.0.23", sha256="db11c06e958a82dac52cf3c65cb4dd2c3f339c8a988665110e0d24d19312ad8d") version("1.0.22", sha256="75aeb9d59a4fdb800d329a545c2e6799f732362193b465ea198f2aa275518157") version("1.0.21", sha256="7dce9cce9a81194b7065ee912bcd55eeffebab694ea403ffb91b67db66b1824b") version("1.0.20", sha256="cb057190ba0a961768224e4dc6883104c6f945b2bf2ef90d7da39e7c1834f7ff") From 66055f903c96576b5c9d0e912a2b1cd3871eaefd Mon Sep 17 00:00:00 2001 From: pauleonix Date: Mon, 25 Nov 2024 10:36:11 +0100 Subject: [PATCH 36/52] cuda: Add v12.6.3 (#47721) --- var/spack/repos/builtin/packages/cuda/package.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py index bd1ff959f2ac26..ea7b314418d9e2 100644 --- a/var/spack/repos/builtin/packages/cuda/package.py +++ b/var/spack/repos/builtin/packages/cuda/package.py @@ -24,6 +24,16 @@ # format returned by platform.system() and 'arch' by platform.machine() _versions = { + "12.6.3": { + "Linux-aarch64": ( + "213ea63a6357020978a8b0a79a8c9d12a2a5941afa1cdc69d5a3f933fa8bed04", + "https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_560.35.05_linux_sbsa.run", + ), + "Linux-x86_64": ( + "81d60e48044796d7883aa8a049afe6501b843f2c45639b3703b2378de30d55d3", + "https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_560.35.05_linux.run", + ), + }, "12.6.2": { "Linux-aarch64": ( "2249408848b705c18b9eadfb5161b52e4e36fcc5753647329cce93db141e5466", From eda0c6888ee834697b1fa65f7c7efeb9b5d233e9 Mon Sep 17 00:00:00 2001 From: Alex Richert Date: Mon, 25 Nov 2024 01:38:08 -0800 Subject: [PATCH 37/52] ip: add cmake version requirement for @5.1: (#47754) --- var/spack/repos/builtin/packages/ip/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/ip/package.py b/var/spack/repos/builtin/packages/ip/package.py index e87a5fb6f7f101..d8e2371fb0c6b1 100644 --- a/var/spack/repos/builtin/packages/ip/package.py +++ b/var/spack/repos/builtin/packages/ip/package.py @@ -70,6 +70,7 @@ class Ip(CMakePackage): depends_on("sp precision=d", when="@4.1:4 precision=d") depends_on("sp precision=8", when="@4.1:4 precision=8") depends_on("lapack", when="@5.1:") + depends_on("cmake@3.18:", when="@5.1:") def cmake_args(self): args = [ From ed39967848bbbbb5ef6c5a213494e912862d2991 Mon Sep 17 00:00:00 2001 From: afzpatel <122491982+afzpatel@users.noreply.github.com> Date: Mon, 25 Nov 2024 04:40:21 -0500 Subject: [PATCH 38/52] rocm-tensile: add 6.2.1 (#47702) --- var/spack/repos/builtin/packages/rocm-tensile/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/rocm-tensile/package.py b/var/spack/repos/builtin/packages/rocm-tensile/package.py index de9da28b89764f..8cd72abd51532e 100644 --- a/var/spack/repos/builtin/packages/rocm-tensile/package.py +++ b/var/spack/repos/builtin/packages/rocm-tensile/package.py @@ -19,6 +19,7 @@ class RocmTensile(CMakePackage): license("MIT") maintainers("srekolam", "renjithravindrankannath", "haampie") + version("6.2.1", sha256="29802dc65a7cea29f0e2608782c75db87e9c71eea8aeb485e856cf2861d83098") version("6.2.0", sha256="6f7d679bfffd1f723f2788b00fdcb1b4673b597f9f85c2cdaab3c2aa17afb33d") version("6.1.2", sha256="6a08190f6d9c8cc76764a68e2dd3e7af4759d4146ddc1c4b3370c7762a6f6d83") version("6.1.1", sha256="04fd76e6a0e9b7528e61df0721b03c0e977c145a2a1ea331d515c9167d7ac35f") @@ -80,6 +81,7 @@ class RocmTensile(CMakePackage): "6.1.1", "6.1.2", "6.2.0", + "6.2.1", ]: depends_on(f"rocm-cmake@{ver}", type="build", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") From 21e10d6d989afcabdd340e4e4a8d2c5c0ba003d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szabolcs=20Horv=C3=A1t?= Date: Mon, 25 Nov 2024 09:51:24 +0000 Subject: [PATCH 39/52] igraph: add v0.10.15 (#47692) --- var/spack/repos/builtin/packages/igraph/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/igraph/package.py b/var/spack/repos/builtin/packages/igraph/package.py index c741f316f1c00e..948b325322b6e1 100644 --- a/var/spack/repos/builtin/packages/igraph/package.py +++ b/var/spack/repos/builtin/packages/igraph/package.py @@ -14,6 +14,7 @@ class Igraph(CMakePackage, AutotoolsPackage): license("GPL-2.0-or-later") + version("0.10.15", sha256="03ba01db0544c4e32e51ab66f2356a034394533f61b4e14d769b9bbf5ad5e52c") version("0.10.13", sha256="c6dc44324f61f52c098bedb81f6a602365d39d692d5068ca4fc3734b2a15e64c") version("0.10.6", sha256="99bf91ee90febeeb9a201f3e0c1d323c09214f0b5f37a4290dc3b63f52839d6d") version("0.7.1", sha256="d978030e27369bf698f3816ab70aa9141e9baf81c56cc4f55efbe5489b46b0df") From b256a7c50d2ba4c2aae1be9e4497cf671a1da2f8 Mon Sep 17 00:00:00 2001 From: david-edwards-linaro <147443134+david-edwards-linaro@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:53:27 +0000 Subject: [PATCH 40/52] linaro-forge: remove v21.1.3 (#47688) --- var/spack/repos/builtin/packages/linaro-forge/package.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/var/spack/repos/builtin/packages/linaro-forge/package.py b/var/spack/repos/builtin/packages/linaro-forge/package.py index 8480310eb6d47f..13f0a17269103a 100644 --- a/var/spack/repos/builtin/packages/linaro-forge/package.py +++ b/var/spack/repos/builtin/packages/linaro-forge/package.py @@ -66,9 +66,6 @@ class LinaroForge(Package): version( "22.1.4", sha256="4e2af481a37b4c99dba0de6fac75ac945316955fc4170d06e321530adea7ac9f" ) - version( - "21.1.3", sha256="4a4ff7372aad5a31fc9e18b7b6c493691ab37d8d44a3158584e62d1ab82b0eeb" - ) elif platform.machine() == "ppc64le": # N.B. support for ppc64le was dropped in 24.0 version( @@ -97,9 +94,6 @@ class LinaroForge(Package): version( "22.0.4", sha256="f4cb5bcbaa67f9209299fe4653186a2829760b8b16a2883913aa43766375b04c" ) - version( - "21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e" - ) elif platform.machine() == "x86_64": version("24.1", sha256="0b96878ab73c20b39c4730ed15f24ca86dc5985637ff5d8e68f55e1e802e5fe3") version( @@ -147,9 +141,6 @@ class LinaroForge(Package): version( "22.0.4", sha256="a2c8c1da38b9684d7c4656a98b3fc42777b03fd474cd0bf969324804f47587e5" ) - version( - "21.1.3", sha256="03dc82f1d075deb6f08d1e3e6592dc9b630d406c08a1316d89c436b5874f3407" - ) variant( "probe", From ac2ede8d2faae758555c941073ae99fdf8889206 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 25 Nov 2024 04:00:00 -0600 Subject: [PATCH 41/52] py-pyzmq: add v25.1.2, v26.0.3, v26.1.1, v26.2.0 (switch to py-scikit-build-core) (#44493) --- .../builtin/packages/py-pyzmq/package.py | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-pyzmq/package.py b/var/spack/repos/builtin/packages/py-pyzmq/package.py index 660c658e9039d6..bac8d3be16c4c7 100644 --- a/var/spack/repos/builtin/packages/py-pyzmq/package.py +++ b/var/spack/repos/builtin/packages/py-pyzmq/package.py @@ -24,6 +24,10 @@ class PyPyzmq(PythonPackage): license("BSD-3-Clause") + version("26.2.0", sha256="070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f") + version("26.1.1", sha256="a7db05d8b7cd1a8c6610e9e9aa55d525baae7a44a43e18bc3260eb3f92de96c6") + version("26.0.3", sha256="dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a") + version("25.1.2", sha256="93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226") version("25.0.2", sha256="6b8c1bbb70e868dc88801aa532cae6bd4e3b5233784692b786f17ad2962e5149") version("24.0.1", sha256="216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77") version("22.3.0", sha256="8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c") @@ -39,13 +43,17 @@ class PyPyzmq(PythonPackage): depends_on("python@2.6:2.7,3.2:3.8", type=("build", "run"), when="@:14") # pyproject.toml - depends_on("py-setuptools", type="build") - # https://github.com/zeromq/pyzmq/issues/1278 - # https://github.com/zeromq/pyzmq/pull/1317 - depends_on("py-setuptools@:59", when="@17:18.0", type="build") - depends_on("py-packaging", type="build") + with when("@26:"): + depends_on("py-scikit-build-core +pyproject", type="build") + with when("@:25"): + depends_on("py-setuptools", type="build") + # https://github.com/zeromq/pyzmq/issues/1278 + # https://github.com/zeromq/pyzmq/pull/1317 + depends_on("py-setuptools@:59", when="@17:18.0", type="build") - # setup.py + depends_on("py-packaging", type="build") + depends_on("py-cython@3:", type="build", when="@26:") + depends_on("py-cython@0.29.35:", type="build", when="@25.1.1: ^python@3.12:") depends_on("py-cython@0.29:", type="build", when="@22.3.0:") depends_on("py-cython@0.20:", type="build", when="@18:") depends_on("py-cython@0.16:", type="build") @@ -66,7 +74,7 @@ def remove_cythonized_files(self): for f in find(".", "*.pyx"): touch(f) - @run_before("install") + @run_before("install", when="@:25") def setup(self): """Create config file listing dependency information.""" From a15563f8906ca6439599ef1e58691a438a7266e2 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 25 Nov 2024 04:28:01 -0600 Subject: [PATCH 42/52] py-werkzeug: add v3.1.3 (and deprecate older versions) (#47507) Co-authored-by: wdconinc --- .../builtin/packages/py-werkzeug/package.py | 56 ++++++++++++++----- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-werkzeug/package.py b/var/spack/repos/builtin/packages/py-werkzeug/package.py index 475db93c4f01e2..f7d4b8e9d98209 100644 --- a/var/spack/repos/builtin/packages/py-werkzeug/package.py +++ b/var/spack/repos/builtin/packages/py-werkzeug/package.py @@ -15,24 +15,50 @@ class PyWerkzeug(PythonPackage): license("BSD-3-Clause", checked_by="wdconinc") + version("3.1.3", sha256="60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746") version("3.0.4", sha256="34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306") version("3.0.0", sha256="3ffff4dcc32db52ef3cc94dff3000a3c2846890f3a5a51800a27b909c5e770f0") - version("2.3.7", sha256="2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8") - version("2.3.4", sha256="1d5a58e0377d1fe39d061a5de4469e414e78ccb1e1e59c0f5ad6fa1c36c52b76") - version("2.2.2", sha256="7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f") - version("2.0.2", sha256="aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a") - version("0.16.0", sha256="7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7") - version("0.15.6", sha256="0a24d43be6a7dce81bae05292356176d6c46d63e42a0dd3f9504b210a9cfaa43") - version("0.15.5", sha256="a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6") - version("0.15.4", sha256="a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6") - version("0.15.3", sha256="cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3") - version("0.15.2", sha256="0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a") - version("0.15.1", sha256="ca5c2dcd367d6c0df87185b9082929d255358f5391923269335782b213d52655") - version("0.15.0", sha256="590abe38f8be026d78457fe3b5200895b3543e58ac3fc1dd792c6333ea11af64") - version("0.12.2", sha256="903a7b87b74635244548b30d30db4c8947fe64c5198f58899ddcd3a13c23bb26") - version("0.11.15", sha256="455d7798ac263266dbd38d4841f7534dd35ca9c3da4a8df303f8488f38f3bcc0") - version("0.11.11", sha256="e72c46bc14405cba7a26bd2ce28df734471bc9016bc8b4cb69466c2c14c2f7e5") + with default_args(deprecated=True): + # https://nvd.nist.gov/vuln/detail/CVE-2023-46136 + version("2.3.7", sha256="2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8") + version("2.3.4", sha256="1d5a58e0377d1fe39d061a5de4469e414e78ccb1e1e59c0f5ad6fa1c36c52b76") + version("2.2.2", sha256="7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f") + version("2.0.2", sha256="aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a") + version( + "0.16.0", sha256="7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7" + ) + version( + "0.15.6", sha256="0a24d43be6a7dce81bae05292356176d6c46d63e42a0dd3f9504b210a9cfaa43" + ) + version( + "0.15.5", sha256="a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6" + ) + version( + "0.15.4", sha256="a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6" + ) + version( + "0.15.3", sha256="cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3" + ) + version( + "0.15.2", sha256="0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a" + ) + version( + "0.15.1", sha256="ca5c2dcd367d6c0df87185b9082929d255358f5391923269335782b213d52655" + ) + version( + "0.15.0", sha256="590abe38f8be026d78457fe3b5200895b3543e58ac3fc1dd792c6333ea11af64" + ) + version( + "0.12.2", sha256="903a7b87b74635244548b30d30db4c8947fe64c5198f58899ddcd3a13c23bb26" + ) + version( + "0.11.15", sha256="455d7798ac263266dbd38d4841f7534dd35ca9c3da4a8df303f8488f38f3bcc0" + ) + version( + "0.11.11", sha256="e72c46bc14405cba7a26bd2ce28df734471bc9016bc8b4cb69466c2c14c2f7e5" + ) + depends_on("python@3.9:", when="@3.1:", type=("build", "run")) depends_on("python@3.8:", when="@2.3:", type=("build", "run")) depends_on("python@:3.9", when="@:0.12", type=("build", "run")) depends_on("py-flit-core@:3", when="@2.3.7:", type="build") From 94815d22277ad1a111e4f51828acb9a814bbeb81 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 25 Nov 2024 04:37:41 -0600 Subject: [PATCH 43/52] py-netifaces: add v0.10.9, v0.11.0 (#47451) --- .../repos/builtin/packages/py-netifaces/package.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-netifaces/package.py b/var/spack/repos/builtin/packages/py-netifaces/package.py index fb8096d1e2afb2..e4f193b78a728d 100644 --- a/var/spack/repos/builtin/packages/py-netifaces/package.py +++ b/var/spack/repos/builtin/packages/py-netifaces/package.py @@ -9,15 +9,15 @@ class PyNetifaces(PythonPackage): """Portable network interface information""" - homepage = ( - "https://0xbharath.github.io/python-network-programming/libraries/netifaces/index.html" - ) + homepage = "https://github.com/al45tair/netifaces" pypi = "netifaces/netifaces-0.10.5.tar.gz" - license("Unlicense") + license("MIT", checked_by="wdconinc") + version("0.11.0", sha256="043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32") + version("0.10.9", sha256="2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3") version("0.10.5", sha256="59d8ad52dd3116fcb6635e175751b250dc783fb011adba539558bd764e5d628b") - depends_on("c", type="build") # generated + depends_on("c", type="build") depends_on("py-setuptools", type="build") From 9883a2144dbec2e67e1c26305f091632c6edc7b6 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 25 Nov 2024 04:38:22 -0600 Subject: [PATCH 44/52] py-quart: add v0.19.8 (#47508) Co-authored-by: wdconinc --- .../builtin/packages/py-flask/package.py | 41 ++++++++++++++----- .../builtin/packages/py-quart/package.py | 23 ++++++++++- 2 files changed, 52 insertions(+), 12 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-flask/package.py b/var/spack/repos/builtin/packages/py-flask/package.py index 091ebed06bb981..6c7786f2d1bb52 100644 --- a/var/spack/repos/builtin/packages/py-flask/package.py +++ b/var/spack/repos/builtin/packages/py-flask/package.py @@ -10,24 +10,37 @@ class PyFlask(PythonPackage): """A simple framework for building complex web applications.""" homepage = "https://palletsprojects.com/p/flask/" - pypi = "Flask/Flask-1.1.1.tar.gz" + pypi = "flask/flask-3.0.3.tar.gz" git = "https://github.com/pallets/flask.git" license("BSD-3-Clause") + version("3.0.3", sha256="ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842") version("2.3.2", sha256="8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef") - version("2.2.2", sha256="642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b") - version("2.0.2", sha256="7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2") - version("1.1.2", sha256="4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060") - version("1.1.1", sha256="13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52") - version("0.12.4", sha256="2ea22336f6d388b4b242bc3abf8a01244a8aa3e236e7407469ef78c16ba355dd") - version("0.12.2", sha256="49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1") - version("0.12.1", sha256="9dce4b6bfbb5b062181d3f7da8f727ff70c1156cbb4024351eafd426deb5fb88") - version("0.11.1", sha256="b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e") + with default_args(deprecated=True): + # https://nvd.nist.gov/vuln/detail/CVE-2023-30861 + version("2.2.2", sha256="642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b") + version("2.0.2", sha256="7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2") + version("1.1.2", sha256="4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060") + version("1.1.1", sha256="13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52") + version( + "0.12.4", sha256="2ea22336f6d388b4b242bc3abf8a01244a8aa3e236e7407469ef78c16ba355dd" + ) + version( + "0.12.2", sha256="49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1" + ) + version( + "0.12.1", sha256="9dce4b6bfbb5b062181d3f7da8f727ff70c1156cbb4024351eafd426deb5fb88" + ) + version( + "0.11.1", sha256="b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e" + ) depends_on("python@3.8:", when="@2.3:", type=("build", "run")) - depends_on("py-setuptools", type=("build", "run")) + depends_on("py-setuptools", type=("build", "run"), when="@:2") + depends_on("py-flit-core@:3", type=("build", "run"), when="@3:") + depends_on("py-werkzeug@3:", when="@3:", type=("build", "run")) depends_on("py-werkzeug@2.3.3:", when="@2.3.2:", type=("build", "run")) depends_on("py-werkzeug@2.2.2:", when="@2.2.2:", type=("build", "run")) depends_on("py-werkzeug@2:", when="@2:", type=("build", "run")) @@ -44,3 +57,11 @@ class PyFlask(PythonPackage): depends_on("py-click@5.1:", type=("build", "run")) depends_on("py-blinker@1.6.2:", when="@2.3:", type=("build", "run")) depends_on("py-importlib-metadata@3.6:", when="@2.1: ^python@:3.9", type=("build", "run")) + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/f/flask/{}-{}.tar.gz" + if self.spec.satisfies("@:0.18.3"): + name = "Flask" + else: + name = "flask" + return url.format(name, version) diff --git a/var/spack/repos/builtin/packages/py-quart/package.py b/var/spack/repos/builtin/packages/py-quart/package.py index 60ac08264cd1c9..a3d49bac24b6c1 100644 --- a/var/spack/repos/builtin/packages/py-quart/package.py +++ b/var/spack/repos/builtin/packages/py-quart/package.py @@ -11,21 +11,40 @@ class PyQuart(PythonPackage): Flask.""" homepage = "https://gitlab.com/pgjones/quart/" - pypi = "Quart/Quart-0.16.3.tar.gz" + pypi = "quart/quart-0.16.3.tar.gz" license("MIT") + version("0.19.8", sha256="ef567d0be7677c99890d5c6ff30e679699fe7e5fca1a90fa3b6974edd8421794") version("0.16.3", sha256="16521d8cf062461b158433d820fff509f98fb997ae6c28740eda061d9cba7d5e") + depends_on("python@3.8:", type=("build", "run"), when="@0.19:") depends_on("python@3.7:", type=("build", "run")) depends_on("py-poetry-core@1:", type="build") depends_on("py-aiofiles", type=("build", "run")) + depends_on("py-blinker@1.6:", type=("build", "run"), when="@0.19:") depends_on("py-blinker", type=("build", "run")) + depends_on("py-click@8.0.0:", type=("build", "run"), when="@0.18.1:") depends_on("py-click", type=("build", "run")) + depends_on("py-flask@3.0.0:", type=("build", "run"), when="@0.19:") depends_on("py-hypercorn@0.11.2:", type=("build", "run")) depends_on("py-itsdangerous", type=("build", "run")) depends_on("py-jinja2", type=("build", "run")) - depends_on("py-toml", type=("build", "run")) + depends_on("py-markupsafe", type=("build", "run"), when="@0.17:") + depends_on("py-werkzeug@3:", type=("build", "run"), when="@0.19:") depends_on("py-werkzeug@2:", type=("build", "run")) + depends_on("py-importlib-metadata", type=("build", "run"), when="@0.18: ^python@:3.9") depends_on("py-importlib-metadata", type=("build", "run"), when="^python@:3.7") + depends_on("py-typing-extensions", type=("build", "run"), when="@0.19: ^python@:3.9") depends_on("py-typing-extensions", type=("build", "run"), when="^python@:3.7") + + # Historical dependencies + depends_on("py-toml", type=("build", "run"), when="@:0.17") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/q/quart/{}-{}.tar.gz" + if self.spec.satisfies("@:0.18.3"): + name = "Quart" + else: + name = "quart" + return url.format(name, version) From 3f50ccfcdd3e11a5deca9eeda594cb5d8094e062 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 25 Nov 2024 04:38:49 -0600 Subject: [PATCH 45/52] py-azure-*: updated versions (#47525) --- .../packages/py-azure-batch/package.py | 13 ++++++++-- .../builtin/packages/py-azure-core/package.py | 4 ++- .../packages/py-azure-identity/package.py | 25 ++++++++++++------- .../packages/py-azure-storage-blob/package.py | 18 +++++++------ 4 files changed, 41 insertions(+), 19 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-azure-batch/package.py b/var/spack/repos/builtin/packages/py-azure-batch/package.py index 680a0d69b79298..467bfcb8061b65 100644 --- a/var/spack/repos/builtin/packages/py-azure-batch/package.py +++ b/var/spack/repos/builtin/packages/py-azure-batch/package.py @@ -11,8 +11,9 @@ class PyAzureBatch(PythonPackage): """Microsoft Azure Batch Client Library for Python.""" homepage = "https://github.com/Azure/azure-sdk-for-python" - pypi = "azure-batch/azure-batch-9.0.0.zip" + pypi = "azure-batch/azure-batch-14.2.0.tar.gz" + version("14.2.0", sha256="c79267d6c3d3fe14a16a422ab5bbfabcbd68ed0b58b6bbcdfa0c8345c4c78532") version("14.0.0", sha256="165b1e99b86f821024c4fae85fb34869d407aa0ebb0ca4b96fb26d859c26c934") version("13.0.0", sha256="e9295de70404d276eda0dd2253d76397439abe5d8f18c1fca199c49b8d6ae30a") version("12.0.0", sha256="1a9b1e178984a7bf495af67bcce51f0db1e4a8a957afb29e33554a14a9674deb") @@ -20,7 +21,7 @@ class PyAzureBatch(PythonPackage): version("10.0.0", sha256="83d7a2b0be42ca456ac2b56fa3dc6ce704c130e888d37d924072c1d3718f32d0") version("9.0.0", sha256="47ca6f50a640915e1cdc5ce3c1307abe5fa3a636236e561119cf62d9df384d84") - # https://github.com/Azure/azure-sdk-for-python/blob/azure-batch_14.0.0/sdk/batch/azure-batch/setup.py + # https://github.com/Azure/azure-sdk-for-python/blob/azure-batch_14.2.0/sdk/batch/azure-batch/setup.py depends_on("py-setuptools", type="build") @@ -30,3 +31,11 @@ class PyAzureBatch(PythonPackage): with when("@:12"): depends_on("py-msrest@0.6.21:", when="@11:", type=("build", "run")) depends_on("py-msrest@0.5.0:", type=("build", "run")) + + def url_for_version(self, version): + if version < Version("14.1.0"): + return "https://pypi.io/packages/source/a/azure-batch/azure-batch-{0}.zip".format( + version + ) + + return super().url_for_version(version) diff --git a/var/spack/repos/builtin/packages/py-azure-core/package.py b/var/spack/repos/builtin/packages/py-azure-core/package.py index a411e14e1ea286..19db3d0f1cdce0 100644 --- a/var/spack/repos/builtin/packages/py-azure-core/package.py +++ b/var/spack/repos/builtin/packages/py-azure-core/package.py @@ -15,6 +15,7 @@ class PyAzureCore(PythonPackage): license("MIT") + version("1.30.2", sha256="a14dc210efcd608821aa472d9fb8e8d035d29b68993819147bc290a8ac224472") version("1.30.0", sha256="6f3a7883ef184722f6bd997262eddaf80cfe7e5b3e0caaaf8db1695695893d35") version("1.29.7", sha256="2944faf1a7ff1558b1f457cabf60f279869cabaeef86b353bed8eb032c7d8c5e") version("1.29.2", sha256="beb0fe88d1043d8457318e8fb841d9caa648211092eda213c16b376401f3710d") @@ -26,8 +27,9 @@ class PyAzureCore(PythonPackage): version("1.7.0", sha256="a66da240a287f447f9867f54ba09ea235895cec13ea38c5f490ce4eedefdd75c") version("1.6.0", sha256="d10b74e783cff90d56360e61162afdd22276d62dc9467e657ae866449eae7648") - # https://github.com/Azure/azure-sdk-for-python/blob/azure-core_1.30.0/sdk/core/azure-core/setup.py + # https://github.com/Azure/azure-sdk-for-python/blob/azure-core_1.30.2/sdk/core/azure-core/setup.py + depends_on("python@3.8:", type=("build", "run"), when="@1.30.2:") depends_on("py-setuptools", type="build") depends_on("py-anyio@3:4", when="@1.29.6", type=("build", "run")) depends_on("py-requests@2.21:", when="@1.29.6:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-azure-identity/package.py b/var/spack/repos/builtin/packages/py-azure-identity/package.py index b3d743a80792d9..00c18e24d6c39e 100644 --- a/var/spack/repos/builtin/packages/py-azure-identity/package.py +++ b/var/spack/repos/builtin/packages/py-azure-identity/package.py @@ -21,6 +21,7 @@ class PyAzureIdentity(PythonPackage): license("MIT") + version("1.17.1", sha256="32ecc67cc73f4bd0595e4f64b1ca65cd05186f4fe6f98ed2ae9f1aa32646efea") version("1.15.0", sha256="4c28fc246b7f9265610eb5261d65931183d019a23d4b0e99357facb2e6c227c8") version("1.14.1", sha256="48e2a9dbdc59b4f095f841d867d9a8cbe4c1cdbbad8251e055561afd47b4a9b8") version("1.13.0", sha256="c931c27301ffa86b07b4dcf574e29da73e3deba9ab5d1fe4f445bb6a3117e260") @@ -28,20 +29,26 @@ class PyAzureIdentity(PythonPackage): version("1.3.1", sha256="5a59c36b4b05bdaec455c390feda71b6495fc828246593404351b9a41c2e877a") version("1.2.0", sha256="b32acd1cdb6202bfe10d9a0858dc463d8960295da70ae18097eb3b85ab12cb91") - # https://github.com/Azure/azure-sdk-for-python/blob/azure-identity_1.15.0/sdk/identity/azure-identity/setup.py + # https://github.com/Azure/azure-sdk-for-python/blob/azure-identity_1.17.1/sdk/identity/azure-identity/setup.py + depends_on("python@3.8:", type=("build", "run"), when="@1.16:") depends_on("py-setuptools", type="build") - depends_on("py-azure-core@1.23:1", type=("build", "run"), when="@1.15:") - depends_on("py-azure-core@1.11:1", type=("build", "run"), when="@1.12:") - depends_on("py-azure-core@1", type=("build", "run")) + depends_on("py-azure-core@1.23:", type=("build", "run"), when="@1.16:") + depends_on("py-azure-core@1.23:1", type=("build", "run"), when="@1.15") + depends_on("py-azure-core@1.11:1", type=("build", "run"), when="@1.12:1.14") + depends_on("py-azure-core@1", type=("build", "run"), when="@:1.15") depends_on("py-cryptography@2.5:", type=("build", "run"), when="@1.12:") depends_on("py-cryptography@2.1.4:", type=("build", "run")) - depends_on("py-msal@1.24:1", type=("build", "run"), when="@1.15:") - depends_on("py-msal@1.20:1", type=("build", "run"), when="@1.13:") - depends_on("py-msal@1.12:1", type=("build", "run"), when="@1.12:") - depends_on("py-msal@1", type=("build", "run")) - depends_on("py-msal-extensions@0.3:1", type=("build", "run"), when="@1.12:") + depends_on("py-msal@1.24:", type=("build", "run"), when="@1.16:") + depends_on("py-msal@1.24:1", type=("build", "run"), when="@1.15") + depends_on("py-msal@1.20:1", type=("build", "run"), when="@1.13:1.14") + depends_on("py-msal@1.12:1", type=("build", "run"), when="@1.12") + depends_on("py-msal@1", type=("build", "run"), when="@:1.15") + depends_on("py-msal-extensions@0.3:", type=("build", "run"), when="@1.16:") + depends_on("py-msal-extensions@0.3:1", type=("build", "run"), when="@1.12:1.15") depends_on("py-msal-extensions@0.1.3:0.1", type=("build", "run"), when="@:1.11") + depends_on("py-typing-extensions@4:", type=("build", "run"), when="@1.17:") + depends_on("py-six@1.12:", type=("build", "run"), when="@1.12") depends_on("py-six@1.6:", type=("build", "run"), when="@:1.11") diff --git a/var/spack/repos/builtin/packages/py-azure-storage-blob/package.py b/var/spack/repos/builtin/packages/py-azure-storage-blob/package.py index 134df401e56b01..30307250ec70b9 100644 --- a/var/spack/repos/builtin/packages/py-azure-storage-blob/package.py +++ b/var/spack/repos/builtin/packages/py-azure-storage-blob/package.py @@ -16,6 +16,7 @@ class PyAzureStorageBlob(PythonPackage): license("MIT") + version("12.22.0", sha256="b3804bb4fe8ab1c32771fa464053da772a682c2737b19da438a3f4e5e3b3736e") version("12.19.0", sha256="26c0a4320a34a3c2a1b74528ba6812ebcb632a04cd67b1c7377232c4b01a5897") version("12.18.3", sha256="d8ced0deee3367fa3d4f3d1a03cd9edadf4440c0a371f503d623fa6c807554ee") version("12.17.0", sha256="c14b785a17050b30fc326a315bdae6bc4a078855f4f94a4c303ad74a48dc8c63") @@ -28,16 +29,19 @@ class PyAzureStorageBlob(PythonPackage): version("12.10.0", sha256="3c7dc2c93e7ff2a731acd66a36a1f0a6266072b4154deba4894dab891285ea3a") version("12.9.0", sha256="cff66a115c73c90e496c8c8b3026898a3ce64100840276e9245434e28a864225") - # https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_12.19.0/sdk/storage/azure-storage-blob/setup.py + # https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_12.22.0/sdk/storage/azure-storage-blob/setup.py + depends_on("python@3.8:", type=("build", "run"), when="@12.20:") depends_on("py-setuptools", type="build") - depends_on("py-azure-core@1.28:1", type=("build", "run"), when="@12.17:") - depends_on("py-azure-core@1.26:1", type=("build", "run"), when="@12.15:") - depends_on("py-azure-core@1.24.2:1", type=("build", "run"), when="@12.14:") - depends_on("py-azure-core@1.23.1:1", type=("build", "run"), when="@12.12:") - depends_on("py-azure-core@1.15:1", type=("build", "run"), when="@12.10:") - depends_on("py-azure-core@1.10:1", type=("build", "run")) + depends_on("py-azure-core@1.28:", type=("build", "run"), when="@12.20:") + depends_on("py-azure-core@1.28:1", type=("build", "run"), when="@12.17:12.19") + depends_on("py-azure-core@1.26:1", type=("build", "run"), when="@12.15:12.16") + depends_on("py-azure-core@1.24.2:1", type=("build", "run"), when="@12.14") + depends_on("py-azure-core@1.23.1:1", type=("build", "run"), when="@12.12:12.13") + depends_on("py-azure-core@1.15:1", type=("build", "run"), when="@12.10:12.11") + depends_on("py-azure-core@1.10:1", type=("build", "run"), when="@:12.19") depends_on("py-cryptography@2.1.4:", type=("build", "run")) + depends_on("py-typing-extensions@4.6:", type=("build", "run"), when="@12.20:") depends_on("py-typing-extensions@4.3:", type=("build", "run"), when="@12.17:") depends_on("py-typing-extensions@4.0.1:", type=("build", "run"), when="@12.15:") depends_on("py-isodate@0.6.1:", type=("build", "run"), when="@12.15:") From 406c73ae1152b0f66b299fab2973d3b25dee8118 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 25 Nov 2024 04:39:09 -0600 Subject: [PATCH 46/52] py-boto*: add v1.34.162 (#47528) Co-authored-by: wdconinc --- var/spack/repos/builtin/packages/py-boto3/package.py | 4 +++- var/spack/repos/builtin/packages/py-botocore/package.py | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-boto3/package.py b/var/spack/repos/builtin/packages/py-boto3/package.py index f38952d305e863..8aadc297a16ea8 100644 --- a/var/spack/repos/builtin/packages/py-boto3/package.py +++ b/var/spack/repos/builtin/packages/py-boto3/package.py @@ -12,6 +12,7 @@ class PyBoto3(PythonPackage): homepage = "https://github.com/boto/boto3" pypi = "boto3/boto3-1.10.44.tar.gz" + version("1.34.162", sha256="873f8f5d2f6f85f1018cbb0535b03cceddc7b655b61f66a0a56995238804f41f") version("1.34.44", sha256="86bcf79a56631609a9f8023fe8f53e2869702bdd4c9047c6d9f091eb39c9b0fa") version("1.26.26", sha256="a2349d436db6f6aa1e0def5501e4884572eb6f008f35063a359a6fa8ba3539b7") version("1.25.5", sha256="aec7db139429fe0f3fbe723170461192b0483b0070114a4b56351e374e0f294d") @@ -37,7 +38,8 @@ class PyBoto3(PythonPackage): depends_on("python@2.6:", when="@1.9:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-botocore@1.34.44:1.34", when="@1.34", type=("build", "run")) + depends_on("py-botocore@1.34.162:1.34", when="@1.34.162", type=("build", "run")) + depends_on("py-botocore@1.34.44:1.34", when="@1.34.44", type=("build", "run")) depends_on("py-botocore@1.29.26:1.29", when="@1.26", type=("build", "run")) depends_on("py-botocore@1.28.5:1.28", when="@1.25", type=("build", "run")) depends_on("py-botocore@1.27.96:1.27", when="@1.24", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-botocore/package.py b/var/spack/repos/builtin/packages/py-botocore/package.py index d362b3730238b5..016692c0111fd1 100644 --- a/var/spack/repos/builtin/packages/py-botocore/package.py +++ b/var/spack/repos/builtin/packages/py-botocore/package.py @@ -12,6 +12,7 @@ class PyBotocore(PythonPackage): homepage = "https://github.com/boto/botocore" pypi = "botocore/botocore-1.13.44.tar.gz" + version("1.34.162", sha256="adc23be4fb99ad31961236342b7cbf3c0bfc62532cd02852196032e8c0d682f3") version("1.34.44", sha256="b0f40c54477e8e0a5c43377a927b8959a86bb8824aaef2d28db7c9c367cdefaa") version("1.31.41", sha256="4dad7c5a5e70940de54ebf8de3955450c1f092f43cacff8103819d1e7d5374fa") version("1.29.84", sha256="a36f7f6f8eae5dbd4a1cc8cb6fc747f6315500541181eff2093ee0529fc8e4bc") @@ -48,4 +49,9 @@ class PyBotocore(PythonPackage): depends_on("py-urllib3@1.25.4:1.25", type=("build", "run"), when="@1.19.0:1.19.15") depends_on("py-urllib3@1.25.4:1.26", type=("build", "run"), when="@1.19.16:1.31.61") depends_on("py-urllib3@1.25.4:1.26", type=("build", "run"), when="@1.31.62: ^python@:3.9") - depends_on("py-urllib3@1.25.4:2.0", type=("build", "run"), when="@1.31.62: ^python@3.10:") + depends_on( + "py-urllib3@1.25.4:2.0", type=("build", "run"), when="@1.31.62:1.34.62 ^python@3.10:" + ) + depends_on( + "py-urllib3@1.25.4:2.1,2.2.1:2", type=("build", "run"), when="@1.34.63: ^python@3.10:" + ) From bf12bb57e7277e1eff9315bcf9e2c7cc9c4825dc Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Mon, 25 Nov 2024 11:53:28 +0100 Subject: [PATCH 47/52] install_test: first look at builder, then package (#47735) --- lib/spack/spack/install_test.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/lib/spack/spack/install_test.py b/lib/spack/spack/install_test.py index a4401fc87870c4..d639548ecfd3e9 100644 --- a/lib/spack/spack/install_test.py +++ b/lib/spack/spack/install_test.py @@ -375,23 +375,16 @@ def phase_tests(self, builder, phase_name: str, method_names: List[str]): for name in method_names: try: - # Prefer the method in the package over the builder's. - # We need this primarily to pick up arbitrarily named test - # methods but also some build-time checks. - fn = getattr(builder.pkg, name, getattr(builder, name)) - - msg = f"RUN-TESTS: {phase_name}-time tests [{name}]" - print_message(logger, msg, verbose) - - fn() - + fn = getattr(builder, name, None) or getattr(builder.pkg, name) except AttributeError as e: - msg = f"RUN-TESTS: method not implemented [{name}]" - print_message(logger, msg, verbose) - - self.add_failure(e, msg) + print_message(logger, f"RUN-TESTS: method not implemented [{name}]", verbose) + self.add_failure(e, f"RUN-TESTS: method not implemented [{name}]") if fail_fast: break + continue + + print_message(logger, f"RUN-TESTS: {phase_name}-time tests [{name}]", verbose) + fn() if have_tests: print_message(logger, "Completed testing", verbose) From c01fb9a6d28f82073426c7bbd0ec2fec14341d0a Mon Sep 17 00:00:00 2001 From: "John W. Parent" <45471568+johnwparent@users.noreply.github.com> Date: Mon, 25 Nov 2024 06:32:57 -0500 Subject: [PATCH 48/52] Add CMake 3.31 minor release (#47676) --- var/spack/repos/builtin/packages/cmake/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index a4baa66ca4ccff..ba0b028bc138e4 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -31,6 +31,7 @@ class Cmake(Package): license("BSD-3-Clause") version("master", branch="master") + version("3.31.0", sha256="300b71db6d69dcc1ab7c5aae61cbc1aa2778a3e00cbd918bc720203e311468c3") version("3.30.5", sha256="9f55e1a40508f2f29b7e065fa08c29f82c402fa0402da839fffe64a25755a86d") version("3.30.4", sha256="c759c97274f1e7aaaafcb1f0d261f9de9bf3a5d6ecb7e2df616324a46fe704b2") version("3.30.3", sha256="6d5de15b6715091df7f5441007425264bdd477809f80333fdf95f846aaff88e4") From 5c67051980007eea3b445b814c2429a3b8d0c5fc Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Mon, 25 Nov 2024 12:56:39 +0100 Subject: [PATCH 49/52] Add missing C/C++ dependencies (#47782) --- .../builtin/packages/bitgroomingz/package.py | 10 +++------- .../repos/builtin/packages/fftx/package.py | 3 ++- .../repos/builtin/packages/julia/package.py | 5 +++-- .../repos/builtin/packages/lua-sol2/package.py | 3 ++- .../builtin/packages/opencl-clhpp/package.py | 3 ++- .../repos/builtin/packages/pagmo2/package.py | 3 ++- var/spack/repos/builtin/packages/pdt/package.py | 17 +++++++++-------- .../repos/builtin/packages/py-blosc2/package.py | 1 + .../repos/builtin/packages/pygmo/package.py | 3 ++- .../packages/rocprofiler-register/package.py | 1 + .../repos/builtin/packages/voropp/package.py | 3 ++- .../repos/builtin/packages/warpx/package.py | 1 + 12 files changed, 30 insertions(+), 23 deletions(-) diff --git a/var/spack/repos/builtin/packages/bitgroomingz/package.py b/var/spack/repos/builtin/packages/bitgroomingz/package.py index 85430a1579bf19..f618da822b292f 100644 --- a/var/spack/repos/builtin/packages/bitgroomingz/package.py +++ b/var/spack/repos/builtin/packages/bitgroomingz/package.py @@ -17,16 +17,12 @@ class Bitgroomingz(CMakePackage): version("master", branch="master") version("2022-10-14", commit="a018b20cca9f7d6a5396ab36230e4be6ae1cb25b") - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") variant("shared", default=True, description="build shared libs") depends_on("zlib-api") def cmake_args(self): - args = [] - if self.spec.satisfies("+shared"): - args.append("-DBUILD_SHARED_LIBS=ON") - else: - args.append("-DBUILD_SHARED_LIBS=OFF") - return args + return [self.define_from_variant("BUILD_SHARED_LIBS", "shared")] diff --git a/var/spack/repos/builtin/packages/fftx/package.py b/var/spack/repos/builtin/packages/fftx/package.py index 96ed533315bf18..b132231d149e50 100644 --- a/var/spack/repos/builtin/packages/fftx/package.py +++ b/var/spack/repos/builtin/packages/fftx/package.py @@ -30,7 +30,8 @@ class Fftx(CMakePackage, CudaPackage, ROCmPackage): version("1.1.0", sha256="a6f95605abc11460bbf51839727a456a31488e27e12a970fc29a1b8c42f4e3b5") version("1.0.3", sha256="b5ff275facce4a2fbabd0aecc65dd55b744794f2e07cd8cfa91363001c664896") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("spiral-software+fftx+simt+jit+mpi") # depend only on spiral-software, but spiral-software must be installed with variants: diff --git a/var/spack/repos/builtin/packages/julia/package.py b/var/spack/repos/builtin/packages/julia/package.py index 0508410e896f9f..2e489bd3a211ac 100644 --- a/var/spack/repos/builtin/packages/julia/package.py +++ b/var/spack/repos/builtin/packages/julia/package.py @@ -53,8 +53,9 @@ class Julia(MakefilePackage): version("1.6.5", sha256="b70ae299ff6b63a9e9cbf697147a48a31b4639476d1947cb52e4201e444f23cb") version("1.6.4", sha256="a4aa921030250f58015201e28204bff604a007defc5a379a608723e6bb1808d4") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") variant("precompile", default=True, description="Improve julia startup time") variant("openlibm", default=True, description="Use openlibm instead of libm") diff --git a/var/spack/repos/builtin/packages/lua-sol2/package.py b/var/spack/repos/builtin/packages/lua-sol2/package.py index 31d0367ffab513..cf7aa3ee91fa6e 100644 --- a/var/spack/repos/builtin/packages/lua-sol2/package.py +++ b/var/spack/repos/builtin/packages/lua-sol2/package.py @@ -26,7 +26,8 @@ class LuaSol2(CMakePackage): version("3.0.3", sha256="bf089e50387edfc70063e24fd7fbb693cceba4a50147d864fabedd1b33483582") version("3.0.2", sha256="3f5f369eae6732ae9a315fe4370bbdc9900d2f2f4f291206aeb5b2d5533f0c99") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") # Lua is not needed when building, since sol2 is headers-only depends_on("lua", type=("link", "run")) diff --git a/var/spack/repos/builtin/packages/opencl-clhpp/package.py b/var/spack/repos/builtin/packages/opencl-clhpp/package.py index c580b966775af4..4ecdb1215786cd 100644 --- a/var/spack/repos/builtin/packages/opencl-clhpp/package.py +++ b/var/spack/repos/builtin/packages/opencl-clhpp/package.py @@ -27,7 +27,8 @@ class OpenclClhpp(CMakePackage): version("2.0.10", sha256="fa27456295c3fa534ce824eb0314190a8b3ebd3ba4d93a0b1270fc65bf378f2b") version("2.0.9", sha256="ba8ac4977650d833804f208a1b0c198006c65c5eac7c83b25dc32cea6199f58c") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") root_cmakelists_dir = "include" diff --git a/var/spack/repos/builtin/packages/pagmo2/package.py b/var/spack/repos/builtin/packages/pagmo2/package.py index 527314c70055b0..d8569ac8119419 100644 --- a/var/spack/repos/builtin/packages/pagmo2/package.py +++ b/var/spack/repos/builtin/packages/pagmo2/package.py @@ -22,7 +22,8 @@ class Pagmo2(CMakePackage): version("master", branch="master") version("2.18.0", sha256="5ad40bf3aa91857a808d6b632d9e1020341a33f1a4115d7a2b78b78fd063ae31") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("boost+system+serialization+thread") depends_on("intel-tbb") diff --git a/var/spack/repos/builtin/packages/pdt/package.py b/var/spack/repos/builtin/packages/pdt/package.py index d4784cb6ed1381..30d2fadfaf9e1b 100644 --- a/var/spack/repos/builtin/packages/pdt/package.py +++ b/var/spack/repos/builtin/packages/pdt/package.py @@ -38,7 +38,8 @@ class Pdt(AutotoolsPackage): version("3.19", sha256="d57234077e2e999f2acf9860ea84369a4694b50cc17fa6728e5255dc5f4a2160") version("3.18.1", sha256="d06c2d1793fadebf169752511e5046d7e02cf3fead6135a35c34b1fee6d6d3b2") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") variant("pic", default=False, description="Builds with pic") @@ -50,21 +51,21 @@ def patch(self): filter_file(r"PDT_GXX=g\+\+ ", r"PDT_GXX=clang++ ", "ductape/Makefile") def configure(self, spec, prefix): - options = ["-prefix=%s" % prefix] - if self.compiler.name == "xl": + options = [f"-prefix={prefix}"] + if spec.satisfies("%xl"): options.append("-XLC") - elif self.compiler.name == "intel": + elif spec.satisfies("%intel"): options.append("-icpc") - elif self.compiler.name == "oneapi": + elif spec.satisfies("%oneapi"): if spec.satisfies("@3.25.2:"): options.append("-icpx") else: options.append("-icpc") - elif self.compiler.name == "gcc": + elif spec.satisfies("%gcc"): options.append("-GNU") - elif self.compiler.name in ["clang", "apple-clang", "aocc"]: + elif spec.satisfies("%clang") or spec.satisfies("%apple-clang") or spec.satisfies("%aocc"): options.append("-clang") - elif self.compiler.name == "cce": + elif spec.satisfies("%cce"): options.append("-CC") else: raise InstallError("Unknown/unsupported compiler family: " + self.compiler.name) diff --git a/var/spack/repos/builtin/packages/py-blosc2/package.py b/var/spack/repos/builtin/packages/py-blosc2/package.py index d852742cc42ea3..d8b08dd8684584 100644 --- a/var/spack/repos/builtin/packages/py-blosc2/package.py +++ b/var/spack/repos/builtin/packages/py-blosc2/package.py @@ -22,6 +22,7 @@ class PyBlosc2(PythonPackage): version("2.0.0", sha256="f19b0b3674f6c825b490f00d8264b0c540c2cdc11ec7e81178d38b83c57790a1") depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("python@3.9:3", when="@2.2:", type=("build", "link", "run")) depends_on("python@3.8:3", when="@2.0", type=("build", "link", "run")) diff --git a/var/spack/repos/builtin/packages/pygmo/package.py b/var/spack/repos/builtin/packages/pygmo/package.py index bd04f292aae63d..9f26a46160084f 100644 --- a/var/spack/repos/builtin/packages/pygmo/package.py +++ b/var/spack/repos/builtin/packages/pygmo/package.py @@ -21,7 +21,8 @@ class Pygmo(CMakePackage): version("master", branch="master") version("2.18.0", sha256="9f081cc973297894af09f713f889870ac452bfb32b471f9f7ba08a5e0bb9a125") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") variant("shared", default=True, description="Build shared libraries") diff --git a/var/spack/repos/builtin/packages/rocprofiler-register/package.py b/var/spack/repos/builtin/packages/rocprofiler-register/package.py index 38471a1605f515..2dab5a0d0a4f63 100644 --- a/var/spack/repos/builtin/packages/rocprofiler-register/package.py +++ b/var/spack/repos/builtin/packages/rocprofiler-register/package.py @@ -26,6 +26,7 @@ class RocprofilerRegister(CMakePackage): version("6.1.1", sha256="38242443d9147a04d61374de4cecee686578a3140fed17e88480f564a1f67cc7") version("6.1.0", sha256="c6e60447ea2ccca8d6acd8758ac00037347892b16b450e1f99ddd04cc4b6cac1") + depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fmt") depends_on("glog") diff --git a/var/spack/repos/builtin/packages/voropp/package.py b/var/spack/repos/builtin/packages/voropp/package.py index 49a1aa078ed249..e9c358b5138f8e 100644 --- a/var/spack/repos/builtin/packages/voropp/package.py +++ b/var/spack/repos/builtin/packages/voropp/package.py @@ -22,7 +22,8 @@ class Voropp(CMakePackage): version("master", branch="master") version("0.4.6", sha256="ef7970071ee2ce3800daa8723649ca069dc4c71cc25f0f7d22552387f3ea437e") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") patch("voro++-0.4.6-cmake.patch", when="@0.4.6") diff --git a/var/spack/repos/builtin/packages/warpx/package.py b/var/spack/repos/builtin/packages/warpx/package.py index 82a8610c4f420d..906c495d3aac9e 100644 --- a/var/spack/repos/builtin/packages/warpx/package.py +++ b/var/spack/repos/builtin/packages/warpx/package.py @@ -243,6 +243,7 @@ class Warpx(CMakePackage, PythonExtension): variant("shared", default=True, description="Build a shared version of the library") variant("tprof", default=True, description="Enable tiny profiling features") + depends_on("c", type="build") depends_on("cxx", type="build") for v in ["24.10", "24.08", "develop"]: From 8094fa1e2fc793280653b0da312582fd894da2ab Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 25 Nov 2024 06:07:56 -0600 Subject: [PATCH 50/52] py-gradio: add v5.1.0 (and add/update dependencies) (fix CVEs) (#47504) * py-pdm-backend: add v2.4.3 * py-starlette: add v0.28.0, v0.32.0, v0.35.1, v0.36.3, v0.37.2, v0.41.2 * py-fastapi: add v0.110.2, v0.115.4 * py-pydantic-extra-types: add v2.10.0 * py-pydantic-settings: add v2.6.1 * py-python-multipart: add v0.0.17 * py-email-validator: add v2.2.0 --- .../packages/py-email-validator/package.py | 5 ++- .../builtin/packages/py-fastapi/package.py | 40 +++++++++++++++---- .../builtin/packages/py-gradio/package.py | 13 +++++- .../packages/py-pdm-backend/package.py | 1 + .../py-pydantic-extra-types/package.py | 23 +++++++++++ .../packages/py-pydantic-settings/package.py | 22 ++++++++++ .../packages/py-python-multipart/package.py | 12 +++++- .../builtin/packages/py-starlette/package.py | 6 +++ 8 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 var/spack/repos/builtin/packages/py-pydantic-extra-types/package.py create mode 100644 var/spack/repos/builtin/packages/py-pydantic-settings/package.py diff --git a/var/spack/repos/builtin/packages/py-email-validator/package.py b/var/spack/repos/builtin/packages/py-email-validator/package.py index 130824d5c3fcd6..151f65c7ec91ef 100644 --- a/var/spack/repos/builtin/packages/py-email-validator/package.py +++ b/var/spack/repos/builtin/packages/py-email-validator/package.py @@ -12,10 +12,13 @@ class PyEmailValidator(PythonPackage): homepage = "https://github.com/JoshData/python-email-validator" pypi = "email_validator/email_validator-1.3.1.tar.gz" - license("CC0-1.0") + license("Unlicense", when="@2.1.1:", checked_by="wdconinc") + license("CC0-1.0", when="@:2.1.0", checked_by="wdconinc") + version("2.2.0", sha256="cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7") version("1.3.1", sha256="d178c5c6fa6c6824e9b04f199cf23e79ac15756786573c190d2ad13089411ad2") depends_on("py-setuptools", type="build") + depends_on("py-dnspython@2:", type=("build", "run"), when="@2:") depends_on("py-dnspython@1.15:", type=("build", "run")) depends_on("py-idna@2:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-fastapi/package.py b/var/spack/repos/builtin/packages/py-fastapi/package.py index 36e48025b34efa..359a0f81533503 100644 --- a/var/spack/repos/builtin/packages/py-fastapi/package.py +++ b/var/spack/repos/builtin/packages/py-fastapi/package.py @@ -10,34 +10,60 @@ class PyFastapi(PythonPackage): """FastAPI framework, high performance, easy to learn, fast to code, ready for production""" - homepage = "https://github.com/tiangolo/fastapi" + homepage = "https://github.com/fastapi/fastapi" pypi = "fastapi/fastapi-0.88.0.tar.gz" license("MIT") - version("0.98.0", sha256="0d3c18886f652038262b5898fec6b09f4ca92ee23e9d9b1d1d24e429f84bf27b") - version("0.88.0", sha256="915bf304180a0e7c5605ec81097b7d4cd8826ff87a02bb198e336fb9f3b5ff02") + version("0.115.4", sha256="db653475586b091cb8b2fec2ac54a680ac6a158e07406e1abae31679e8826349") + version("0.110.2", sha256="b53d673652da3b65e8cd787ad214ec0fe303cad00d2b529b86ce7db13f17518d") + with default_args(deprecated=True): + # https://nvd.nist.gov/vuln/detail/CVE-2024-24762 + version( + "0.98.0", sha256="0d3c18886f652038262b5898fec6b09f4ca92ee23e9d9b1d1d24e429f84bf27b" + ) + version( + "0.88.0", sha256="915bf304180a0e7c5605ec81097b7d4cd8826ff87a02bb198e336fb9f3b5ff02" + ) variant("all", default=False, description="Build all optional dependencies") - depends_on("py-hatchling@1.13:", when="@0.98:", type="build") - depends_on("py-hatchling", type="build") - depends_on("py-starlette@0.27", when="@0.95.2:", type=("build", "run")) + depends_on("python@3.8:", when="@0.104:", type=("build", "run")) + + depends_on("py-pdm-backend", when="@0.110.3:", type="build") + depends_on("py-hatchling@1.13:", when="@0.98:0.110.2", type="build") + depends_on("py-hatchling", when="@:0.110.2", type="build") + + depends_on("py-starlette@0.40:0.41", when="@0.115.3:", type=("build", "run")) + depends_on("py-starlette@0.37.2:0.40", when="@0.115.2", type=("build", "run")) + depends_on("py-starlette@0.37.2:0.38", when="@0.112.1:0.115.1", type=("build", "run")) + depends_on("py-starlette@0.37.2:0.37", when="@0.110.1:0.112.0", type=("build", "run")) + depends_on("py-starlette@0.36.3:0.36", when="@0.109.2:0.110.0", type=("build", "run")) + depends_on("py-starlette@0.35:0.35", when="@0.109.0:0.109.1", type=("build", "run")) + depends_on("py-starlette@0.29:0.32", when="@0.108.0:0.108", type=("build", "run")) + depends_on("py-starlette@0.28", when="@0.107.0:0.107", type=("build", "run")) + depends_on("py-starlette@0.27", when="@0.95.2:0.106", type=("build", "run")) depends_on("py-starlette@0.22.0", when="@:0.89.1", type=("build", "run")) + depends_on("py-pydantic@1.7.4:1,2.1.1:2", when="@0.101:", type=("build", "run")) depends_on("py-pydantic@1.7.4:1", when="@0.96.1:", type=("build", "run")) depends_on("py-pydantic@1.6.2:1", when="@:0.96.0", type=("build", "run")) + depends_on("py-typing-extensions@4.8.0:", when="@0.104:", type=("build", "run")) - conflicts("^py-pydantic@1.7.0:1.7.3,1.8.0:1.8.1") + conflicts("^py-pydantic@1.7.0:1.7.3,1.8.0:1.8.1,2.0,2.1.0") with when("+all"): depends_on("py-httpx@0.23:", type=("build", "run")) depends_on("py-jinja2@2.11.2:", type=("build", "run")) + depends_on("py-python-multipart@0.0.7:", when="@0.109.1:", type=("build", "run")) depends_on("py-python-multipart@0.0.5:", type=("build", "run")) depends_on("py-itsdangerous@1.1:", type=("build", "run")) depends_on("py-pyyaml@5.3.1:", type=("build", "run")) depends_on("py-ujson@4.0.1:", type=("build", "run")) depends_on("py-orjson@3.2.1:", type=("build", "run")) + depends_on("py-email-validator@2.0.0:", when="@0.100:", type=("build", "run")) depends_on("py-email-validator@1.1.1:", type=("build", "run")) depends_on("py-uvicorn@0.12:+standard", type=("build", "run")) + depends_on("py-pydantic-settings@2.0.0:", when="@0.100:", type=("build", "run")) + depends_on("py-pydantic-extra-types@2.0.0:", when="@0.100:", type=("build", "run")) conflicts("^py-ujson@4.0.2,4.1.0,4.2.0,4.3.0,5.0.0,5.1.0") diff --git a/var/spack/repos/builtin/packages/py-gradio/package.py b/var/spack/repos/builtin/packages/py-gradio/package.py index 3070071ab7ca04..720e47dbeb15d6 100644 --- a/var/spack/repos/builtin/packages/py-gradio/package.py +++ b/var/spack/repos/builtin/packages/py-gradio/package.py @@ -14,7 +14,18 @@ class PyGradio(PythonPackage): license("Apache-2.0") - version("3.36.1", sha256="1d821cee15da066c24c197248ba9aaed5f5e59505d17754561c2f96f90e73a89") + version("5.1.0", sha256="d2153668e6de2df7a01bb33f01a074fc7716ec863c40f472d8e439439ef1e153") + with default_args(deprecated=True): + # https://nvd.nist.gov/vuln/detail/CVE-2024-47871 + version( + "4.44.1", sha256="a68a52498ac6b63f8864ef84bf7866a70e7d07ebe913edf921e1d2a3708ad5ae" + ) + version( + "3.50.2", sha256="c6c81320566ba3e5688a1a58201d0729565a97b828b2bf6895e54f7bf25c01de" + ) + version( + "3.36.1", sha256="1d821cee15da066c24c197248ba9aaed5f5e59505d17754561c2f96f90e73a89" + ) depends_on("python@3.8:", type=("build", "run")) depends_on("py-hatchling", type="build") diff --git a/var/spack/repos/builtin/packages/py-pdm-backend/package.py b/var/spack/repos/builtin/packages/py-pdm-backend/package.py index c3aebb38b76f76..220e1b5a37844d 100644 --- a/var/spack/repos/builtin/packages/py-pdm-backend/package.py +++ b/var/spack/repos/builtin/packages/py-pdm-backend/package.py @@ -13,6 +13,7 @@ class PyPdmBackend(PythonPackage): license("MIT", checked_by="matz-e") + version("2.4.3", sha256="dbd9047a7ac10d11a5227e97163b617ad5d665050476ff63867d971758200728") version("2.3.0", sha256="e39ed2da206d90d4a6e9eb62f6dce54ed4fa65ddf172a7d5700960d0f8a09e09") depends_on("python@3.8:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-pydantic-extra-types/package.py b/var/spack/repos/builtin/packages/py-pydantic-extra-types/package.py new file mode 100644 index 00000000000000..03636a1bd60b3d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pydantic-extra-types/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2024 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.package import * + + +class PyPydanticExtraTypes(PythonPackage): + """A place for pydantic types that probably shouldn't + exist in the main pydantic lib.""" + + homepage = "https://github.com/pydantic/pydantic-extra-types" + pypi = "pydantic_extra_types/pydantic_extra_types-2.10.0.tar.gz" + + license("MIT", checked_by="wdconinc") + + version("2.10.0", sha256="552c47dd18fe1d00cfed75d9981162a2f3203cf7e77e55a3d3e70936f59587b9") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-hatchling", type="build") + depends_on("py-pydantic@2.5.2:", type=("build", "run")) + depends_on("py-typing-extensions", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-pydantic-settings/package.py b/var/spack/repos/builtin/packages/py-pydantic-settings/package.py new file mode 100644 index 00000000000000..5881eb5dc75fbf --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pydantic-settings/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2024 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.package import * + + +class PyPydanticSettings(PythonPackage): + """Settings management using Pydantic.""" + + homepage = "https://github.com/pydantic/pydantic-settings" + pypi = "pydantic_settings/pydantic_settings-2.6.1.tar.gz" + + license("MIT", checked_by="wdconinc") + + version("2.6.1", sha256="e0f92546d8a9923cb8941689abf85d6601a8c19a23e97a34b2964a2e3f813ca0") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-hatchling", type="build") + depends_on("py-pydantic@2.7.0:", type=("build", "run")) + depends_on("py-python-dotenv@0.21:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-python-multipart/package.py b/var/spack/repos/builtin/packages/py-python-multipart/package.py index 0af95b14b7f1af..5dd5780011f462 100644 --- a/var/spack/repos/builtin/packages/py-python-multipart/package.py +++ b/var/spack/repos/builtin/packages/py-python-multipart/package.py @@ -15,8 +15,18 @@ class PyPythonMultipart(PythonPackage): license("Apache-2.0") + version("0.0.17", sha256="41330d831cae6e2f22902704ead2826ea038d0419530eadff3ea80175aec5538") version("0.0.5", sha256="f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43") - depends_on("py-setuptools", type="build") + depends_on("py-setuptools", type="build", when="@:0.0.5") + depends_on("py-hatchling", type="build", when="@0.0.6:") depends_on("py-six@1.4.0:", type=("build", "run")) + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/p/python-multipart/{}-{}.tar.gz" + if self.spec.satisfies("@:0.0.5"): + name = "python-multipart" + else: + name = "python_multipart" + return url.format(name, version) diff --git a/var/spack/repos/builtin/packages/py-starlette/package.py b/var/spack/repos/builtin/packages/py-starlette/package.py index 7f51b279732eeb..ea2e1d260164d3 100644 --- a/var/spack/repos/builtin/packages/py-starlette/package.py +++ b/var/spack/repos/builtin/packages/py-starlette/package.py @@ -15,6 +15,12 @@ class PyStarlette(PythonPackage): license("BSD-3-Clause") + version("0.41.2", sha256="9834fd799d1a87fd346deb76158668cfa0b0d56f85caefe8268e2d97c3468b62") + version("0.37.2", sha256="9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823") + version("0.36.3", sha256="90a671733cfb35771d8cc605e0b679d23b992f8dcfad48cc60b38cb29aeb7080") + version("0.35.1", sha256="3e2639dac3520e4f58734ed22553f950d3f3cb1001cd2eaac4d57e8cdc5f66bc") + version("0.32.0", sha256="87c899fe3aee6a42f711380b03e1d244a21079529cb3dbe1a5109e60915e0bbb") + version("0.28.0", sha256="7bf3da5e997e796cc202cef2bd3f96a7d9b1e1943203c2fe2b42e020bc658482") version("0.27.0", sha256="6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75") version("0.23.1", sha256="8510e5b3d670326326c5c1d4cb657cc66832193fe5d5b7015a51c7b1e1b1bf42") version("0.22.0", sha256="b092cbc365bea34dd6840b42861bdabb2f507f8671e642e8272d2442e08ea4ff") From 3c220d098954af581a0ff0dfa2024b9142f64340 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Mon, 25 Nov 2024 13:22:16 +0100 Subject: [PATCH 51/52] apex: add 2.7.0 (#47736) --- var/spack/repos/builtin/packages/apex/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/apex/package.py b/var/spack/repos/builtin/packages/apex/package.py index 24aa59a10f3ace..0fec0eead5e2d3 100644 --- a/var/spack/repos/builtin/packages/apex/package.py +++ b/var/spack/repos/builtin/packages/apex/package.py @@ -18,6 +18,7 @@ class Apex(CMakePackage): version("develop", branch="develop") version("master", branch="master") + version("2.7.0", sha256="81cd7e8dbea35cec2360d6404e20f7527f66410614f06a73c8c782ac2cfdb0b0") version("2.6.5", sha256="2ba29a1198c904ac209fc6bc02962304a1416443b249f34ef96889aff39644ce") version("2.6.4", sha256="281a673f447762a488577beaa60e48d88cb6354f220457cf8f05c1de2e1fce70") version("2.6.3", sha256="7fef12937d3bd1271a01abe44cb931b1d63823fb5c74287a332f3012ed7297d5") From 8e914308f056e876a98aff55988cde3d477dd0e9 Mon Sep 17 00:00:00 2001 From: Mark Abraham Date: Mon, 25 Nov 2024 16:12:55 +0100 Subject: [PATCH 52/52] gromacs: add itt variant (#47764) Permit configuring GROMACS with support for mdrun to trace its timing regions by calling the ITT API. This permits tools like VTune and unitrace to augment their analysis with GROMACS-specific annotation. --- .../repos/builtin/packages/gromacs/package.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index 90d17661182672..486c36af8e66f9 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -296,6 +296,15 @@ class Gromacs(CMakePackage, CudaPackage): + "The g++ location is written to icp{c,x}.cfg", ) + variant( + "itt", + default=False, + when="@2024:", + description="Enable Instrumentation and Tracing Technology (ITT)" + + " profiling API (from Intel)", + ) + depends_on("intel-oneapi-vtune", "+itt") + depends_on("fftw-api@3") depends_on("cmake@2.8.8:3", type="build") depends_on("cmake@3.4.3:3", type="build", when="@2018:") @@ -614,6 +623,13 @@ def cmake_args(self): options.append("-DGMX_GPU_NB_CLUSTER_SIZE=8") options.append("-DGMX_GPU_NB_NUM_CLUSTER_PER_CELL_X=1") + if "+itt" in self.spec: + options.append("-DGMX_USE_ITT=on") + options.append( + "-DITTNOTIFY_INCLUDE_DIR=%s" + % join_path(self.spec["intel-oneapi-vtune"].package.headers) + ) + if self.spec.satisfies("~nblib"): options.append("-DGMX_INSTALL_NBLIB_API=OFF") if self.spec.satisfies("~gmxapi"):