From d83bb89a2bcb3c010e1856957f89d02a02273bf0 Mon Sep 17 00:00:00 2001 From: Kibeom Kim Date: Thu, 25 May 2017 14:26:54 -0700 Subject: [PATCH 1/2] deps pinning prototype 1 --- mod/dep.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mod/dep.py b/mod/dep.py index 92ce9f8d..b7312601 100644 --- a/mod/dep.py +++ b/mod/dep.py @@ -483,7 +483,7 @@ def _rec_update_imports(fips_dir, proj_dir, handled) : ws_dir = util.get_workspace_dir(fips_dir) proj_name = util.get_project_name_from_dir(proj_dir) if proj_name not in handled : - handled.append(proj_name) + handled[proj_name] = None imports = get_imports(fips_dir, proj_dir) for dep in imports: dep_proj_name = dep @@ -509,6 +509,7 @@ def _rec_update_imports(fips_dir, proj_dir, handled) : log.warn(" '{}' does not exist, please run 'fips fetch'".format(dep_proj_dir)) # recuse if dep_ok : + handled[dep_proj_name] = [dep['git'], git.get_local_rev(dep_proj_dir, "HEAD")] handled = _rec_update_imports(fips_dir, dep_proj_dir, handled) # done, return the new handled array return handled @@ -521,4 +522,10 @@ def update_imports(fips_dir, proj_dir): :param proj_dir: absolute project directory :returns: True if checks were valid """ - _rec_update_imports(fips_dir, proj_dir, []) + handled = _rec_update_imports(fips_dir, proj_dir, OrderedDict()) + # TODO: Write to a file, e.g., .fips.pinned_deps, instead of printing. + print 'imports:' + for dep, git_rev in reversed(handled.items()[1:]): + print ' ' + dep + ':' + print ' git: ' + git_rev[0] + print ' rev: ' + git_rev[1] From 526b719544a5382be10860707b223af29d4c6467 Mon Sep 17 00:00:00 2001 From: Kibeom Kim Date: Thu, 25 May 2017 14:33:19 -0700 Subject: [PATCH 2/2] Add TODO comment to import pinned file. --- mod/dep.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mod/dep.py b/mod/dep.py index b7312601..ab38b0cc 100644 --- a/mod/dep.py +++ b/mod/dep.py @@ -17,6 +17,7 @@ def get_imports(fips_dir, proj_dir) : proj_name = util.get_project_name_from_dir(proj_dir) imports = {} if util.is_valid_project_dir(proj_dir) : + # TODO: Load .fips.pinned_deps instead on `fips update --from-pinned-deps`. dic = util.load_fips_yml(proj_dir) if 'imports' in dic : imports = dic['imports']