| Index: recipe_engine/package.py
|
| diff --git a/recipe_engine/package.py b/recipe_engine/package.py
|
| index 97c2d2f7968d80ee9b64003753b552037c876a47..7c317e95ab639b3363e2e119a93ff018e5ebe793 100644
|
| --- a/recipe_engine/package.py
|
| +++ b/recipe_engine/package.py
|
| @@ -36,7 +36,7 @@ def cleanup_pyc(path):
|
|
|
| This ensures we always use the fresh code.
|
| """
|
| - for root, dirs, files in os.walk(path):
|
| + for root, _dirs, files in os.walk(path):
|
| for f in files:
|
| if f.endswith('.pyc'):
|
| os.unlink(os.path.join(root, f))
|
| @@ -361,12 +361,14 @@ class Package(object):
|
|
|
| This is accessed by loader.py through RecipeDeps.get_package.
|
| """
|
| - def __init__(self, name, repo_spec, deps, repo_root, relative_recipes_dir):
|
| + def __init__(self, name, repo_spec, deps, repo_root, relative_recipes_dir,
|
| + canonical_base_url):
|
| self.name = name
|
| self.repo_spec = repo_spec
|
| self.deps = deps
|
| self.repo_root = repo_root
|
| self.relative_recipes_dir = relative_recipes_dir
|
| + self.canonical_base_url = canonical_base_url
|
|
|
| @property
|
| def recipes_dir(self):
|
| @@ -393,8 +395,9 @@ class Package(object):
|
| return os.path.join(self.recipes_dir, 'recipe_modules', module_name)
|
|
|
| def __repr__(self):
|
| - return 'Package(%r, %r, %r, %r)' % (
|
| - self.name, self.repo_spec, self.deps, self.recipe_dir)
|
| + return 'Package(%r, %r, %r, %r, %r)' % (
|
| + self.name, self.repo_spec, self.deps, self.recipe_dir,
|
| + self.canonical_base_url)
|
|
|
| def __str__(self):
|
| return 'Package %s, with dependencies %s' % (self.name, self.deps.keys())
|
| @@ -466,7 +469,8 @@ class RollCandidate(object):
|
| return PackageSpec(
|
| self._package_spec.project_id,
|
| self._package_spec.recipes_path,
|
| - new_deps)
|
| + new_deps,
|
| + self._package_spec.canonical_base_url)
|
|
|
| def get_commit_infos(self):
|
| """Returns a mapping project_id -> list of commits from that repo
|
| @@ -497,10 +501,11 @@ class RollCandidate(object):
|
| class PackageSpec(object):
|
| API_VERSION = 1
|
|
|
| - def __init__(self, project_id, recipes_path, deps):
|
| + def __init__(self, project_id, recipes_path, deps, canonical_base_url):
|
| self._project_id = project_id
|
| self._recipes_path = recipes_path
|
| self._deps = deps
|
| + self._canonical_base_url = canonical_base_url
|
|
|
| @classmethod
|
| def load_proto(cls, proto_file):
|
| @@ -509,7 +514,8 @@ class PackageSpec(object):
|
|
|
| deps = { str(dep.project_id): cls.spec_for_dep(dep)
|
| for dep in buf.deps }
|
| - return cls(str(buf.project_id), str(buf.recipes_path), deps)
|
| + return cls(str(buf.project_id), str(buf.recipes_path), deps,
|
| + buf.canonical_base_url)
|
|
|
| @classmethod
|
| def spec_for_dep(cls, dep):
|
| @@ -544,12 +550,17 @@ class PackageSpec(object):
|
| def deps(self):
|
| return self._deps
|
|
|
| + @property
|
| + def canonical_base_url(self):
|
| + return self._canonical_base_url
|
| +
|
| def dump(self):
|
| return package_pb2.Package(
|
| api_version=self.API_VERSION,
|
| project_id=self._project_id,
|
| recipes_path=self._recipes_path,
|
| - deps=[ self._deps[dep].dump() for dep in sorted(self._deps.keys()) ])
|
| + deps=[ self._deps[dep].dump() for dep in sorted(self._deps.keys()) ],
|
| + canonical_base_url=self._canonical_base_url)
|
|
|
| def roll_candidates(self, root_spec, context):
|
| """Returns list of consistent roll candidates, and rejected roll candidates.
|
| @@ -624,7 +635,8 @@ class PackageDeps(object):
|
| for project_id, path in overrides.iteritems()}
|
| package_deps = cls(context, overrides=overrides)
|
|
|
| - package_deps._root_package = package_deps._create_package(RootRepoSpec(proto_file))
|
| + package_deps._root_package = package_deps._create_package(
|
| + RootRepoSpec(proto_file))
|
|
|
| return package_deps
|
|
|
| @@ -657,7 +669,8 @@ class PackageDeps(object):
|
| package = Package(
|
| project_id, repo_spec, deps,
|
| repo_spec.repo_root(self._context),
|
| - package_spec.recipes_path)
|
| + package_spec.recipes_path,
|
| + package_spec.canonical_base_url)
|
|
|
| self._packages[project_id] = package
|
| return package
|
|
|