Package: Don't warn for missing source on bundle packages without code (#30913)

This commit is contained in:
Chuck Atkins 2022-06-06 17:33:03 -05:00 committed by GitHub
parent 932065beca
commit 9d7cc43673
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 38 additions and 3 deletions

View File

@ -1721,7 +1721,7 @@ def content_hash(self, content=None):
# referenced by branch name rather than tag or commit ID.
env = spack.environment.active_environment()
from_local_sources = env and env.is_develop(self.spec)
if not self.spec.external and not from_local_sources:
if self.has_code and not self.spec.external and not from_local_sources:
message = 'Missing a source id for {s.name}@{s.version}'
tty.warn(message.format(s=self))
hash_content.append(''.encode('utf-8'))

View File

@ -414,9 +414,27 @@ def test_nosource_pkg_install(
pkg.do_install()
out = capfd.readouterr()
assert "Installing dependency-install" in out[0]
# Make sure a warning for missing code is issued
assert "Missing a source id for nosource" in out[1]
@pytest.mark.disable_clean_stage_check
def test_nosource_bundle_pkg_install(
install_mockery, mock_fetch, mock_packages, capfd):
"""Test install phases with the nosource-bundle package."""
spec = Spec('nosource-bundle').concretized()
pkg = spec.package
# Make sure install works even though there is no associated code.
pkg.do_install()
out = capfd.readouterr()
assert "Installing dependency-install" in out[0]
# Make sure a warning for missing code is *not* issued
assert "Missing a source id for nosource" not in out[1]
def test_nosource_pkg_install_post_install(
install_mockery, mock_fetch, mock_packages):
"""Test install phases with the nosource package with post-install."""

View File

@ -0,0 +1,17 @@
# Copyright 2013-2022 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 NosourceBundle(BundlePackage):
"""Simple bundle package with one dependency"""
homepage = "http://www.example.com"
version('1.0')
depends_on('dependency-install')

View File

@ -7,8 +7,8 @@
from spack.package import *
class Nosource(BundlePackage):
"""Simple bundle package with one dependency"""
class Nosource(Package):
"""Simple package with no source and one dependency"""
homepage = "http://www.example.com"