@@ -126,6 +126,13 @@ def parse_command_line(argv):
126
126
default = None ,
127
127
help = "The conda platform to check existing recipes for." ,
128
128
)
129
+ parser .add_argument (
130
+ "-z" ,
131
+ "--snapshot" ,
132
+ dest = "snapshot" ,
133
+ default = None ,
134
+ help = "The version snapshot file (default: None)."
135
+ )
129
136
arguments = parser .parse_args (argv [1 :])
130
137
global selected_platform
131
138
config .parsed_args = arguments
@@ -214,6 +221,15 @@ def read_vinca_yaml(filepath):
214
221
return vinca_conf
215
222
216
223
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
+
217
233
def generate_output (pkg_shortname , vinca_conf , distro , version , all_pkgs = None ):
218
234
if not all_pkgs :
219
235
all_pkgs = []
@@ -286,6 +302,7 @@ def generate_output(pkg_shortname, vinca_conf, distro, version, all_pkgs=None):
286
302
resolved_setuptools = resolve_pkgname ("python-setuptools" , vinca_conf , distro )
287
303
output ["requirements" ]["host" ].extend (resolved_setuptools )
288
304
else :
305
+ print (f"Unknown build type for { pkg_shortname } : { pkg .get_build_type ()} " )
289
306
return None
290
307
291
308
if vinca_conf .get ("mutex_package" ):
@@ -511,21 +528,14 @@ def get_pkg(pkg_name):
511
528
return outputs
512
529
513
530
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
-
525
531
def generate_outputs_version (distro , vinca_conf ):
526
532
outputs = []
527
533
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 )
529
539
output = generate_output (pkg_shortname , vinca_conf , distro , version )
530
540
if output is not None :
531
541
outputs .append (output )
@@ -545,7 +555,7 @@ def generate_source(distro, vinca_conf):
545
555
entry ["git" ] = url
546
556
entry ["tag" ] = version
547
557
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 )
549
559
print ("Checking " , pkg_shortname , pkg_version )
550
560
if not pkg_names :
551
561
continue
@@ -585,12 +595,6 @@ def generate_source_version(distro, vinca_conf):
585
595
continue
586
596
587
597
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" ]
594
598
595
599
entry = {}
596
600
entry ["git" ] = url
@@ -860,6 +864,7 @@ def main():
860
864
base_dir = os .path .abspath (arguments .dir )
861
865
vinca_yaml = os .path .join (base_dir , "vinca.yaml" )
862
866
vinca_conf = read_vinca_yaml (vinca_yaml )
867
+ snapshot = read_snapshot (arguments .snapshot )
863
868
864
869
from .template import generate_bld_ament_cmake
865
870
from .template import generate_bld_ament_python
@@ -878,7 +883,7 @@ def main():
878
883
if arguments .trigger_new_versions :
879
884
vinca_conf ["trigger_new_versions" ] = True
880
885
else :
881
- vinca_conf ["trigger_new_versions" ] = False
886
+ vinca_conf ["trigger_new_versions" ] = vinca_conf . get ( "trigger_new_versions" , False )
882
887
883
888
if arguments .package :
884
889
pkg_files = glob .glob (arguments .package )
@@ -887,7 +892,7 @@ def main():
887
892
if "python_version" in vinca_conf :
888
893
python_version = vinca_conf ["python_version" ]
889
894
890
- distro = Distro (vinca_conf ["ros_distro" ], python_version )
895
+ distro = Distro (vinca_conf ["ros_distro" ], python_version , snapshot )
891
896
additional_pkgs , parsed_pkgs = [], []
892
897
for f in pkg_files :
893
898
parsed_pkg = catkin_pkg .package .parse_package (f )
@@ -992,7 +997,7 @@ def main():
992
997
if "python_version" in vinca_conf :
993
998
python_version = vinca_conf ["python_version" ]
994
999
995
- distro = Distro (vinca_conf ["ros_distro" ], python_version )
1000
+ distro = Distro (vinca_conf ["ros_distro" ], python_version , snapshot )
996
1001
997
1002
selected_pkgs = get_selected_packages (distro , vinca_conf )
998
1003
0 commit comments