@@ -126,6 +126,13 @@ def parse_command_line(argv):
126126 default = None ,
127127 help = "The conda platform to check existing recipes for." ,
128128 )
129+ parser .add_argument (
130+ "-z" ,
131+ "--snapshot" ,
132+ dest = "snapshot" ,
133+ default = None ,
134+ help = "The version snapshot file (default: None)."
135+ )
129136 arguments = parser .parse_args (argv [1 :])
130137 global selected_platform
131138 config .parsed_args = arguments
@@ -214,6 +221,15 @@ def read_vinca_yaml(filepath):
214221 return vinca_conf
215222
216223
224+ def read_snapshot (filepath ):
225+ if not filepath :
226+ return None
227+
228+ yaml = ruamel .yaml .YAML ()
229+ snapshot = yaml .load (open (filepath , "r" ))
230+ return snapshot
231+
232+
217233def generate_output (pkg_shortname , vinca_conf , distro , version , all_pkgs = None ):
218234 if not all_pkgs :
219235 all_pkgs = []
@@ -286,6 +302,7 @@ def generate_output(pkg_shortname, vinca_conf, distro, version, all_pkgs=None):
286302 resolved_setuptools = resolve_pkgname ("python-setuptools" , vinca_conf , distro )
287303 output ["requirements" ]["host" ].extend (resolved_setuptools )
288304 else :
305+ print (f"Unknown build type for { pkg_shortname } : { pkg .get_build_type ()} " )
289306 return None
290307
291308 if vinca_conf .get ("mutex_package" ):
@@ -511,21 +528,14 @@ def get_pkg(pkg_name):
511528 return outputs
512529
513530
514- def get_version (distro , vinca_conf , pkg_shortname ):
515- version = distro .get_version (pkg_shortname )
516- if (
517- vinca_conf .get ("package_version" )
518- and vinca_conf ["package_version" ][pkg_shortname ]
519- ):
520- version = vinca_conf ["package_version" ][pkg_shortname ]["version" ]
521-
522- return version
523-
524-
525531def generate_outputs_version (distro , vinca_conf ):
526532 outputs = []
527533 for pkg_shortname in vinca_conf ["_selected_pkgs" ]:
528- version = get_version (distro , vinca_conf , pkg_shortname )
534+ if not distro .check_package (pkg_shortname ):
535+ print (f"Could not generate output for { pkg_shortname } " )
536+ continue
537+
538+ version = distro .get_version (pkg_shortname )
529539 output = generate_output (pkg_shortname , vinca_conf , distro , version )
530540 if output is not None :
531541 outputs .append (output )
@@ -545,7 +555,7 @@ def generate_source(distro, vinca_conf):
545555 entry ["git" ] = url
546556 entry ["tag" ] = version
547557 pkg_names = resolve_pkgname (pkg_shortname , vinca_conf , distro )
548- pkg_version = get_version (distro , vinca_conf , pkg_shortname )
558+ pkg_version = distro . get_version (pkg_shortname )
549559 print ("Checking " , pkg_shortname , pkg_version )
550560 if not pkg_names :
551561 continue
@@ -585,12 +595,6 @@ def generate_source_version(distro, vinca_conf):
585595 continue
586596
587597 url , version = distro .get_released_repo (pkg_shortname )
588- if (
589- vinca_conf ["package_version" ]
590- and vinca_conf ["package_version" ][pkg_shortname ]
591- ):
592- url = vinca_conf ["package_version" ][pkg_shortname ]["url" ]
593- version = vinca_conf ["package_version" ][pkg_shortname ]["version" ]
594598
595599 entry = {}
596600 entry ["git" ] = url
@@ -860,6 +864,7 @@ def main():
860864 base_dir = os .path .abspath (arguments .dir )
861865 vinca_yaml = os .path .join (base_dir , "vinca.yaml" )
862866 vinca_conf = read_vinca_yaml (vinca_yaml )
867+ snapshot = read_snapshot (arguments .snapshot )
863868
864869 from .template import generate_bld_ament_cmake
865870 from .template import generate_bld_ament_python
@@ -878,7 +883,7 @@ def main():
878883 if arguments .trigger_new_versions :
879884 vinca_conf ["trigger_new_versions" ] = True
880885 else :
881- vinca_conf ["trigger_new_versions" ] = False
886+ vinca_conf ["trigger_new_versions" ] = vinca_conf . get ( "trigger_new_versions" , False )
882887
883888 if arguments .package :
884889 pkg_files = glob .glob (arguments .package )
@@ -887,7 +892,7 @@ def main():
887892 if "python_version" in vinca_conf :
888893 python_version = vinca_conf ["python_version" ]
889894
890- distro = Distro (vinca_conf ["ros_distro" ], python_version )
895+ distro = Distro (vinca_conf ["ros_distro" ], python_version , snapshot )
891896 additional_pkgs , parsed_pkgs = [], []
892897 for f in pkg_files :
893898 parsed_pkg = catkin_pkg .package .parse_package (f )
@@ -992,7 +997,7 @@ def main():
992997 if "python_version" in vinca_conf :
993998 python_version = vinca_conf ["python_version" ]
994999
995- distro = Distro (vinca_conf ["ros_distro" ], python_version )
1000+ distro = Distro (vinca_conf ["ros_distro" ], python_version , snapshot )
9961001
9971002 selected_pkgs = get_selected_packages (distro , vinca_conf )
9981003
0 commit comments