openstudio-standards 0.8.5.rc1 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 60b0fad0a0fb5783f2e99c11774732db9fc1945e6f6a9845df7823073f3ef6c7
4
- data.tar.gz: 157e4ade5c647df26a40184a05eb34c8064fca95d72283c49444b6052e8bc3b2
3
+ metadata.gz: 61647baebf2831b66478a6c4cd574811cea9eac7017e4cc85b2cf2a2e6ae81ce
4
+ data.tar.gz: c3c8a2939476f0ff12b9519baf673b6599b4bc160da4ec310201644872f5a687
5
5
  SHA512:
6
- metadata.gz: ea77ea2bcb506c0754bb3ec2b247012e5c329121194b4be8db9614abd631db2589570a4315666e6444e357a57fd2f4fcdf73745dfd9c60da24a664dd4de415af
7
- data.tar.gz: add05393a5da49b1580f463526e1f7f203af8459cd6c292a128571a24c63c0db3175f1ae5fa92241e8d7b49649cdbc90890ff287cb8a02ff74ef0712d62beafc
6
+ metadata.gz: 3aa48f580368fdbd01741ebc9f2e67b315452c5a961f891fc1faf062f3d8abd24e97b223a775433f56f7138011786341e35d463a0e1e5500e7a71d438339f5f1
7
+ data.tar.gz: 1b486bb6c3ef1a8ffc97ace0efac85c01db12d8507f85c5964c3dbca77dc8d78444593e5586f4400624c7a68fc830f4ac404d3d147c4ef255b178d3e44692de6
@@ -52,3 +52,29 @@ Strip mall - type 2,StripMall,,1.8,,One Per Space,110,RetailStripmall Type2_SWH_
52
52
  Strip mall - type 3,StripMall,,1.8,,One Per Space,110,RetailStripmall Type3_SWH_SCH,0.2,0.05
53
53
  Bakery,SuperMarket,,,0.002141786,Shared,110,SuperMarket Bldg Swh,0.2,0.05
54
54
  Deli,SuperMarket,,,0.002141786,Shared,110,SuperMarket Bldg Swh,0.2,0.05
55
+ OfficeGeneral,Asm,,,0.036321959,Shared,135,D_Asm_All_DHW_DHW_Yr,0.2,0.05
56
+ OfficeGeneral,Asm,,,0.036321959,Shared,135,D_Asm_All_DHW_DHW_Yr,0.2,0.05
57
+ Kitchen,ECC,,,0.200390499,One Per Space,135,D_ECC_All_DHW_DHW_Yr,0.2,0.05
58
+ Kitchen,EPr,,,0.0476755,One Per Space,135,D_EPr_All_DHW_DHW_Yr,0.2,0.05
59
+ Classroom,ERC,,,0.007802747,Shared,135,D_ERC_All_DHW_DHW_Yr,0.2,0.05
60
+ Kitchen,ESe,,,0.106434595,One Per Space,135,D_ESe_All_DHW_DHW_Yr,0.2,0.05
61
+ DormitoryRoom,EUn,,,0.004358811,Shared,110,D_EUn_All_DHW_DHW_Yr,0.2,0.05
62
+ Kitchen,EUn,,,0.206848891,One Per Space,135,D_EUn_All_DHW_DHW_Yr,0.2,0.05
63
+ Kitchen,Hsp,,,0.742112849,One Per Space,135,D_Hsp_All_DHW_DHW_Yr,0.2,0.05
64
+ GuestRmOcc,Htl,,,0.004130108,Shared,110,D_Htl_All_DHW_DHW_Yr,0.2,0.05
65
+ Kitchen,Htl,,,0.169299412,One Per Space,135,D_Htl_All_DHW_DHW_Yr,0.2,0.05
66
+ OfficeOpen,MBT,,,0.004856812,Shared,135,D_MBT_All_DHW_DHW_Yr,0.2,0.05
67
+ ResBedroom,MFm,,3.48,0.003663158,One Per Unit,110,ApartmentMidRise APT_DHW_SCH,0.2,0.05
68
+ ResLiving,MFm,,3.48,0.003663158,One Per Unit,110,ApartmentMidRise APT_DHW_SCH,0.2,0.05
69
+ Work,MLI,,,0.001934756,Shared,135,D_MLI_All_DHW_DHW_Yr,0.2,0.05
70
+ Laundry,Mtl,,,0.135305351,Dedicated,135,D_Mtl_All_DHW_DHW_Yr,0.2,0.05
71
+ Kitchen,Nrs,,,0.116349097,Dedicated,135,D_Nrs_All_DHW_DHW_Yr,0.2,0.05
72
+ OfficeOpen,OfL,,,0.001699689,Shared,135,D_OfL_All_DHW_DHW_Yr,0.2,0.05
73
+ OfficeSmall,OfS,,,0.001311762,Shared,135,D_OfS_All_DHW_DHW_Yr,0.2,0.05
74
+ Kitchen,RFF,,,0.034460537,One Per Space,135,D_RFF_All_DHW_DHW_Yr,0.2,0.05
75
+ Kitchen,RSD,,,0.03112423,One Per Space,135,D_RSD_All_DHW_DHW_Yr,0.2,0.05
76
+ RetailSales,Rt3,,,0.0002815,Shared,135,D_Rt3_All_DHW_DHW_Yr,0.2,0.05
77
+ RetailSales,RtL,,,0.000350744,Shared,135,D_RtL_All_DHW_DHW_Yr,0.2,0.05
78
+ RetailSales,RtS,,,0.000674871,Shared,135,D_RtS_All_DHW_DHW_Yr,0.2,0.05
79
+ WarehouseCond,SCn,,,0.000104042,Shared,135,D_SCn_All_DHW_DHW_Yr,0.2,0.05
80
+ WarehouseUnCond,SUn,,,0.000104042,Shared,135,D_SUn_All_DHW_DHW_Yr,0.2,0.05
@@ -805,6 +805,416 @@
805
805
  "latent_fraction": 0.05
806
806
  }
807
807
  ]
808
+ },
809
+ {
810
+ "space_type": "OfficeGeneral",
811
+ "building_type": "Asm",
812
+ "water_use_equipment": [
813
+ {
814
+ "equipment_name": null,
815
+ "peak_flow_rate_gph": null,
816
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.036321959,
817
+ "loop_type": "Shared",
818
+ "mixed_water_temperature_f": 135.0,
819
+ "flow_rate_schedule": "D_Asm_All_DHW_DHW_Yr",
820
+ "sensible_fraction": 0.2,
821
+ "latent_fraction": 0.05
822
+ },
823
+ {
824
+ "equipment_name": null,
825
+ "peak_flow_rate_gph": null,
826
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.036321959,
827
+ "loop_type": "Shared",
828
+ "mixed_water_temperature_f": 135.0,
829
+ "flow_rate_schedule": "D_Asm_All_DHW_DHW_Yr",
830
+ "sensible_fraction": 0.2,
831
+ "latent_fraction": 0.05
832
+ }
833
+ ]
834
+ },
835
+ {
836
+ "space_type": "Kitchen",
837
+ "building_type": "ECC",
838
+ "water_use_equipment": [
839
+ {
840
+ "equipment_name": null,
841
+ "peak_flow_rate_gph": null,
842
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.200390499,
843
+ "loop_type": "One Per Space",
844
+ "mixed_water_temperature_f": 135.0,
845
+ "flow_rate_schedule": "D_ECC_All_DHW_DHW_Yr",
846
+ "sensible_fraction": 0.2,
847
+ "latent_fraction": 0.05
848
+ }
849
+ ]
850
+ },
851
+ {
852
+ "space_type": "Kitchen",
853
+ "building_type": "EPr",
854
+ "water_use_equipment": [
855
+ {
856
+ "equipment_name": null,
857
+ "peak_flow_rate_gph": null,
858
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.0476755,
859
+ "loop_type": "One Per Space",
860
+ "mixed_water_temperature_f": 135.0,
861
+ "flow_rate_schedule": "D_EPr_All_DHW_DHW_Yr",
862
+ "sensible_fraction": 0.2,
863
+ "latent_fraction": 0.05
864
+ }
865
+ ]
866
+ },
867
+ {
868
+ "space_type": "Classroom",
869
+ "building_type": "ERC",
870
+ "water_use_equipment": [
871
+ {
872
+ "equipment_name": null,
873
+ "peak_flow_rate_gph": null,
874
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.007802747,
875
+ "loop_type": "Shared",
876
+ "mixed_water_temperature_f": 135.0,
877
+ "flow_rate_schedule": "D_ERC_All_DHW_DHW_Yr",
878
+ "sensible_fraction": 0.2,
879
+ "latent_fraction": 0.05
880
+ }
881
+ ]
882
+ },
883
+ {
884
+ "space_type": "Kitchen",
885
+ "building_type": "ESe",
886
+ "water_use_equipment": [
887
+ {
888
+ "equipment_name": null,
889
+ "peak_flow_rate_gph": null,
890
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.106434595,
891
+ "loop_type": "One Per Space",
892
+ "mixed_water_temperature_f": 135.0,
893
+ "flow_rate_schedule": "D_ESe_All_DHW_DHW_Yr",
894
+ "sensible_fraction": 0.2,
895
+ "latent_fraction": 0.05
896
+ }
897
+ ]
898
+ },
899
+ {
900
+ "space_type": "DormitoryRoom",
901
+ "building_type": "EUn",
902
+ "water_use_equipment": [
903
+ {
904
+ "equipment_name": null,
905
+ "peak_flow_rate_gph": null,
906
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.004358811,
907
+ "loop_type": "Shared",
908
+ "mixed_water_temperature_f": 110.0,
909
+ "flow_rate_schedule": "D_EUn_All_DHW_DHW_Yr",
910
+ "sensible_fraction": 0.2,
911
+ "latent_fraction": 0.05
912
+ }
913
+ ]
914
+ },
915
+ {
916
+ "space_type": "Kitchen",
917
+ "building_type": "EUn",
918
+ "water_use_equipment": [
919
+ {
920
+ "equipment_name": null,
921
+ "peak_flow_rate_gph": null,
922
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.206848891,
923
+ "loop_type": "One Per Space",
924
+ "mixed_water_temperature_f": 135.0,
925
+ "flow_rate_schedule": "D_EUn_All_DHW_DHW_Yr",
926
+ "sensible_fraction": 0.2,
927
+ "latent_fraction": 0.05
928
+ }
929
+ ]
930
+ },
931
+ {
932
+ "space_type": "Kitchen",
933
+ "building_type": "Hsp",
934
+ "water_use_equipment": [
935
+ {
936
+ "equipment_name": null,
937
+ "peak_flow_rate_gph": null,
938
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.742112849,
939
+ "loop_type": "One Per Space",
940
+ "mixed_water_temperature_f": 135.0,
941
+ "flow_rate_schedule": "D_Hsp_All_DHW_DHW_Yr",
942
+ "sensible_fraction": 0.2,
943
+ "latent_fraction": 0.05
944
+ }
945
+ ]
946
+ },
947
+ {
948
+ "space_type": "GuestRmOcc",
949
+ "building_type": "Htl",
950
+ "water_use_equipment": [
951
+ {
952
+ "equipment_name": null,
953
+ "peak_flow_rate_gph": null,
954
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.004130108,
955
+ "loop_type": "Shared",
956
+ "mixed_water_temperature_f": 110.0,
957
+ "flow_rate_schedule": "D_Htl_All_DHW_DHW_Yr",
958
+ "sensible_fraction": 0.2,
959
+ "latent_fraction": 0.05
960
+ }
961
+ ]
962
+ },
963
+ {
964
+ "space_type": "Kitchen",
965
+ "building_type": "Htl",
966
+ "water_use_equipment": [
967
+ {
968
+ "equipment_name": null,
969
+ "peak_flow_rate_gph": null,
970
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.169299412,
971
+ "loop_type": "One Per Space",
972
+ "mixed_water_temperature_f": 135.0,
973
+ "flow_rate_schedule": "D_Htl_All_DHW_DHW_Yr",
974
+ "sensible_fraction": 0.2,
975
+ "latent_fraction": 0.05
976
+ }
977
+ ]
978
+ },
979
+ {
980
+ "space_type": "OfficeOpen",
981
+ "building_type": "MBT",
982
+ "water_use_equipment": [
983
+ {
984
+ "equipment_name": null,
985
+ "peak_flow_rate_gph": null,
986
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.004856812,
987
+ "loop_type": "Shared",
988
+ "mixed_water_temperature_f": 135.0,
989
+ "flow_rate_schedule": "D_MBT_All_DHW_DHW_Yr",
990
+ "sensible_fraction": 0.2,
991
+ "latent_fraction": 0.05
992
+ }
993
+ ]
994
+ },
995
+ {
996
+ "space_type": "ResBedroom",
997
+ "building_type": "MFm",
998
+ "water_use_equipment": [
999
+ {
1000
+ "equipment_name": null,
1001
+ "peak_flow_rate_gph": 3.48,
1002
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.003663158,
1003
+ "loop_type": "One Per Unit",
1004
+ "mixed_water_temperature_f": 110.0,
1005
+ "flow_rate_schedule": "ApartmentMidRise APT_DHW_SCH",
1006
+ "sensible_fraction": 0.2,
1007
+ "latent_fraction": 0.05
1008
+ }
1009
+ ]
1010
+ },
1011
+ {
1012
+ "space_type": "ResLiving",
1013
+ "building_type": "MFm",
1014
+ "water_use_equipment": [
1015
+ {
1016
+ "equipment_name": null,
1017
+ "peak_flow_rate_gph": 3.48,
1018
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.003663158,
1019
+ "loop_type": "One Per Unit",
1020
+ "mixed_water_temperature_f": 110.0,
1021
+ "flow_rate_schedule": "ApartmentMidRise APT_DHW_SCH",
1022
+ "sensible_fraction": 0.2,
1023
+ "latent_fraction": 0.05
1024
+ }
1025
+ ]
1026
+ },
1027
+ {
1028
+ "space_type": "Work",
1029
+ "building_type": "MLI",
1030
+ "water_use_equipment": [
1031
+ {
1032
+ "equipment_name": null,
1033
+ "peak_flow_rate_gph": null,
1034
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.001934756,
1035
+ "loop_type": "Shared",
1036
+ "mixed_water_temperature_f": 135.0,
1037
+ "flow_rate_schedule": "D_MLI_All_DHW_DHW_Yr",
1038
+ "sensible_fraction": 0.2,
1039
+ "latent_fraction": 0.05
1040
+ }
1041
+ ]
1042
+ },
1043
+ {
1044
+ "space_type": "Laundry",
1045
+ "building_type": "Mtl",
1046
+ "water_use_equipment": [
1047
+ {
1048
+ "equipment_name": null,
1049
+ "peak_flow_rate_gph": null,
1050
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.135305351,
1051
+ "loop_type": "Dedicated",
1052
+ "mixed_water_temperature_f": 135.0,
1053
+ "flow_rate_schedule": "D_Mtl_All_DHW_DHW_Yr",
1054
+ "sensible_fraction": 0.2,
1055
+ "latent_fraction": 0.05
1056
+ }
1057
+ ]
1058
+ },
1059
+ {
1060
+ "space_type": "Kitchen",
1061
+ "building_type": "Nrs",
1062
+ "water_use_equipment": [
1063
+ {
1064
+ "equipment_name": null,
1065
+ "peak_flow_rate_gph": null,
1066
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.116349097,
1067
+ "loop_type": "Dedicated",
1068
+ "mixed_water_temperature_f": 135.0,
1069
+ "flow_rate_schedule": "D_Nrs_All_DHW_DHW_Yr",
1070
+ "sensible_fraction": 0.2,
1071
+ "latent_fraction": 0.05
1072
+ }
1073
+ ]
1074
+ },
1075
+ {
1076
+ "space_type": "OfficeOpen",
1077
+ "building_type": "OfL",
1078
+ "water_use_equipment": [
1079
+ {
1080
+ "equipment_name": null,
1081
+ "peak_flow_rate_gph": null,
1082
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.001699689,
1083
+ "loop_type": "Shared",
1084
+ "mixed_water_temperature_f": 135.0,
1085
+ "flow_rate_schedule": "D_OfL_All_DHW_DHW_Yr",
1086
+ "sensible_fraction": 0.2,
1087
+ "latent_fraction": 0.05
1088
+ }
1089
+ ]
1090
+ },
1091
+ {
1092
+ "space_type": "OfficeSmall",
1093
+ "building_type": "OfS",
1094
+ "water_use_equipment": [
1095
+ {
1096
+ "equipment_name": null,
1097
+ "peak_flow_rate_gph": null,
1098
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.001311762,
1099
+ "loop_type": "Shared",
1100
+ "mixed_water_temperature_f": 135.0,
1101
+ "flow_rate_schedule": "D_OfS_All_DHW_DHW_Yr",
1102
+ "sensible_fraction": 0.2,
1103
+ "latent_fraction": 0.05
1104
+ }
1105
+ ]
1106
+ },
1107
+ {
1108
+ "space_type": "Kitchen",
1109
+ "building_type": "RFF",
1110
+ "water_use_equipment": [
1111
+ {
1112
+ "equipment_name": null,
1113
+ "peak_flow_rate_gph": null,
1114
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.034460537,
1115
+ "loop_type": "One Per Space",
1116
+ "mixed_water_temperature_f": 135.0,
1117
+ "flow_rate_schedule": "D_RFF_All_DHW_DHW_Yr",
1118
+ "sensible_fraction": 0.2,
1119
+ "latent_fraction": 0.05
1120
+ }
1121
+ ]
1122
+ },
1123
+ {
1124
+ "space_type": "Kitchen",
1125
+ "building_type": "RSD",
1126
+ "water_use_equipment": [
1127
+ {
1128
+ "equipment_name": null,
1129
+ "peak_flow_rate_gph": null,
1130
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.03112423,
1131
+ "loop_type": "One Per Space",
1132
+ "mixed_water_temperature_f": 135.0,
1133
+ "flow_rate_schedule": "D_RSD_All_DHW_DHW_Yr",
1134
+ "sensible_fraction": 0.2,
1135
+ "latent_fraction": 0.05
1136
+ }
1137
+ ]
1138
+ },
1139
+ {
1140
+ "space_type": "RetailSales",
1141
+ "building_type": "Rt3",
1142
+ "water_use_equipment": [
1143
+ {
1144
+ "equipment_name": null,
1145
+ "peak_flow_rate_gph": null,
1146
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.0002815,
1147
+ "loop_type": "Shared",
1148
+ "mixed_water_temperature_f": 135.0,
1149
+ "flow_rate_schedule": "D_Rt3_All_DHW_DHW_Yr",
1150
+ "sensible_fraction": 0.2,
1151
+ "latent_fraction": 0.05
1152
+ }
1153
+ ]
1154
+ },
1155
+ {
1156
+ "space_type": "RetailSales",
1157
+ "building_type": "RtL",
1158
+ "water_use_equipment": [
1159
+ {
1160
+ "equipment_name": null,
1161
+ "peak_flow_rate_gph": null,
1162
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.000350744,
1163
+ "loop_type": "Shared",
1164
+ "mixed_water_temperature_f": 135.0,
1165
+ "flow_rate_schedule": "D_RtL_All_DHW_DHW_Yr",
1166
+ "sensible_fraction": 0.2,
1167
+ "latent_fraction": 0.05
1168
+ }
1169
+ ]
1170
+ },
1171
+ {
1172
+ "space_type": "RetailSales",
1173
+ "building_type": "RtS",
1174
+ "water_use_equipment": [
1175
+ {
1176
+ "equipment_name": null,
1177
+ "peak_flow_rate_gph": null,
1178
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.000674871,
1179
+ "loop_type": "Shared",
1180
+ "mixed_water_temperature_f": 135.0,
1181
+ "flow_rate_schedule": "D_RtS_All_DHW_DHW_Yr",
1182
+ "sensible_fraction": 0.2,
1183
+ "latent_fraction": 0.05
1184
+ }
1185
+ ]
1186
+ },
1187
+ {
1188
+ "space_type": "WarehouseCond",
1189
+ "building_type": "SCn",
1190
+ "water_use_equipment": [
1191
+ {
1192
+ "equipment_name": null,
1193
+ "peak_flow_rate_gph": null,
1194
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.000104042,
1195
+ "loop_type": "Shared",
1196
+ "mixed_water_temperature_f": 135.0,
1197
+ "flow_rate_schedule": "D_SCn_All_DHW_DHW_Yr",
1198
+ "sensible_fraction": 0.2,
1199
+ "latent_fraction": 0.05
1200
+ }
1201
+ ]
1202
+ },
1203
+ {
1204
+ "space_type": "WarehouseUnCond",
1205
+ "building_type": "SUn",
1206
+ "water_use_equipment": [
1207
+ {
1208
+ "equipment_name": null,
1209
+ "peak_flow_rate_gph": null,
1210
+ "peak_flow_rate_gph_per_floor_area_ft2": 0.000104042,
1211
+ "loop_type": "Shared",
1212
+ "mixed_water_temperature_f": 135.0,
1213
+ "flow_rate_schedule": "D_SUn_All_DHW_DHW_Yr",
1214
+ "sensible_fraction": 0.2,
1215
+ "latent_fraction": 0.05
1216
+ }
1217
+ ]
808
1218
  }
809
1219
  ]
810
1220
  }
@@ -195,7 +195,12 @@ Standard.class_eval do
195
195
  if model.version >= OpenStudio::VersionString.new('3.8.0')
196
196
  sim_control.setDoZoneSizingCalculation(true)
197
197
  sim_control.setDoSystemSizingCalculation(true)
198
- sim_control.setDoPlantSizingCalculation(true)
198
+ # Do plant sizing only if there are Sizing:Plant objects in the model, or else E+ version 25.2+ will error out
199
+ if model.getSizingPlants.size > 0
200
+ sim_control.setDoPlantSizingCalculation(true)
201
+ else
202
+ sim_control.setDoPlantSizingCalculation(false)
203
+ end
199
204
  end
200
205
 
201
206
  # check that all zones have surfaces.
@@ -13,5 +13,5 @@ module OpenstudioStandards
13
13
  end
14
14
  return 'git-not-found-on-this-system'
15
15
  end
16
- VERSION = '0.8.5.rc1'.freeze
16
+ VERSION = '0.8.5'.freeze
17
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstudio-standards
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.5.rc1
4
+ version: 0.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Adams
@@ -39,7 +39,7 @@ authors:
39
39
  autorequire:
40
40
  bindir: bin
41
41
  cert_chain: []
42
- date: 2025-12-11 00:00:00.000000000 Z
42
+ date: 2026-01-05 00:00:00.000000000 Z
43
43
  dependencies:
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: bundler