diff options
author | Javier Jardón <jjardon@gnome.org> | 2015-03-06 17:02:55 +0000 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2015-03-06 17:03:39 +0000 |
commit | 11559bbbd24c218d512d503df27157668b37bdc9 (patch) | |
tree | dd05bd09f991be08eab78a5688df738131de27cd | |
parent | 9e105fccb12de23551c93aac6cb2b1056b858700 (diff) | |
parent | 8cf5c70943817c5c24b1f8b79a67cc8ac1d7dab0 (diff) | |
download | morph-11559bbbd24c218d512d503df27157668b37bdc9.tar.gz |
Merge branch 'jjardon/no_build_depends'
Reviewed-By: Paul Sherwood <paul.sherwood@codethink.co.uk>
Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk>
-rw-r--r-- | morphlib/artifactresolver.py | 17 | ||||
-rw-r--r-- | morphlib/morphloader.py | 13 | ||||
-rw-r--r-- | morphlib/morphloader_tests.py | 22 | ||||
-rw-r--r-- | morphlib/sourceresolver_tests.py | 14 |
4 files changed, 11 insertions, 55 deletions
diff --git a/morphlib/artifactresolver.py b/morphlib/artifactresolver.py index e53c7511..5062f854 100644 --- a/morphlib/artifactresolver.py +++ b/morphlib/artifactresolver.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2014 Codethink Limited +# Copyright (C) 2012-2015 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -195,13 +195,14 @@ class ArtifactResolver(object): chunk_source.add_dependency(other_stratum) # Add dependencies between chunks mentioned in this stratum - for name in build_depends: # pragma: no cover - if name not in name_to_processed_artifacts: - raise DependencyOrderError( - source, info['name'], name) - other_artifacts = name_to_processed_artifacts[name] - for other_artifact in other_artifacts: - chunk_source.add_dependency(other_artifact) + if build_depends is not None: + for name in build_depends: # pragma: no cover + if name not in name_to_processed_artifacts: + raise DependencyOrderError( + source, info['name'], name) + other_artifacts = name_to_processed_artifacts[name] + for other_artifact in other_artifacts: + chunk_source.add_dependency(other_artifact) # Add build dependencies between our stratum's artifacts # and the chunk artifacts produced by this stratum. diff --git a/morphlib/morphloader.py b/morphlib/morphloader.py index e0f0952b..7d51dc1e 100644 --- a/morphlib/morphloader.py +++ b/morphlib/morphloader.py @@ -111,14 +111,6 @@ class UnknownArchitectureError(MorphologyValidationError): % (arch, morph_filename)) -class NoBuildDependenciesError(MorphologyValidationError): - - def __init__(self, stratum_name, chunk_name, morph_filename): - self.msg = ( - 'Stratum %s has no build dependencies for chunk %s in %s' % - (stratum_name, chunk_name, morph_filename)) - - class NoStratumBuildDependenciesError(MorphologyValidationError): def __init__(self, stratum_name, morph_filename): @@ -556,7 +548,7 @@ class MorphologyLoader(object): # Validate build-dependencies if specified self._validate_stratum_specs_fields(morph, 'build-depends') - # Require build-dependencies for each chunk. + # Check build-dependencies for each chunk. for spec in morph['chunks']: chunk_name = spec.get('alias', spec['name']) if 'build-depends' in spec: @@ -564,9 +556,6 @@ class MorphologyLoader(object): raise InvalidTypeError( '%s.build-depends' % chunk_name, list, type(spec['build-depends']), morph['name']) - else: - raise NoBuildDependenciesError( - morph['name'], chunk_name, morph.filename) @classmethod def _validate_chunk(cls, morphology): diff --git a/morphlib/morphloader_tests.py b/morphlib/morphloader_tests.py index dd70c824..a1fe1674 100644 --- a/morphlib/morphloader_tests.py +++ b/morphlib/morphloader_tests.py @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2014 Codethink Limited +# Copyright (C) 2013-2015 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -344,26 +344,6 @@ build-system: dummy self.loader.validate(m) self.assertEqual(m['arch'], 'armv7l') - def test_validate_requires_build_deps_for_chunks_in_strata(self): - m = morphlib.morphology.Morphology( - { - "kind": "stratum", - "name": "foo", - "chunks": [ - { - "name": "foo", - "repo": "foo", - "ref": "foo", - "morph": "foo", - "build-mode": "bootstrap", - } - ], - }) - - self.assertRaises( - morphlib.morphloader.NoBuildDependenciesError, - self.loader.validate, m) - def test_validate_requires_build_deps_or_bootstrap_mode_for_strata(self): m = morphlib.morphology.Morphology( { diff --git a/morphlib/sourceresolver_tests.py b/morphlib/sourceresolver_tests.py index 638f593f..1239b437 100644 --- a/morphlib/sourceresolver_tests.py +++ b/morphlib/sourceresolver_tests.py @@ -69,15 +69,6 @@ class FakeLocalRepo(object): build-mode: bootstrap build-depends: [] ''', - 'stratum-no-chunk-bdeps.morph': ''' - name: stratum-no-chunk-bdeps - kind: stratum - chunks: - - name: chunk - repo: test:repo - ref: sha1 - build-mode: bootstrap - ''', 'stratum-no-bdeps-no-bootstrap.morph': ''' name: stratum-no-bdeps-no-bootstrap kind: stratum @@ -328,11 +319,6 @@ class SourceResolverTests(unittest.TestCase): self.assertRaises(morphlib.Error, self.sr._get_morphology, 'reponame', 'sha1', 'parse-error.morph') - def test_fails_on_no_chunk_bdeps(self): - self.assertRaises(morphlib.morphloader.NoBuildDependenciesError, - self.sr._get_morphology, 'reponame', 'sha1', - 'stratum-no-chunk-bdeps.morph') - def test_fails_on_no_bdeps_or_bootstrap(self): self.assertRaises( morphlib.morphloader.NoStratumBuildDependenciesError, |