buildingsync 0.2.0
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 +7 -0
- data/.github/workflows/continuous_integration.yml +146 -0
- data/.gitignore +33 -0
- data/.rspec +3 -0
- data/.rubocop.yml +10 -0
- data/CHANGELOG.md +50 -0
- data/Gemfile +31 -0
- data/Jenkinsfile +10 -0
- data/LICENSE.md +29 -0
- data/README.md +105 -0
- data/Rakefile +77 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/buildingsync.gemspec +37 -0
- data/config.rb.in +26 -0
- data/doc_templates/LICENSE.md +29 -0
- data/doc_templates/README.md.erb +42 -0
- data/doc_templates/copyright_erb.txt +38 -0
- data/doc_templates/copyright_js.txt +5 -0
- data/doc_templates/copyright_ruby.txt +36 -0
- data/lib/buildingsync.rb +43 -0
- data/lib/buildingsync/all_resource_total.rb +54 -0
- data/lib/buildingsync/audit_date.rb +54 -0
- data/lib/buildingsync/constants.rb +49 -0
- data/lib/buildingsync/contact.rb +54 -0
- data/lib/buildingsync/extension.rb +57 -0
- data/lib/buildingsync/generator.rb +584 -0
- data/lib/buildingsync/get_bcl_weather_file.rb +326 -0
- data/lib/buildingsync/helpers/Model.hvac.rb +216 -0
- data/lib/buildingsync/helpers/helper.rb +494 -0
- data/lib/buildingsync/helpers/xml_get_set.rb +215 -0
- data/lib/buildingsync/makers/phase_zero_base.osw +178 -0
- data/lib/buildingsync/makers/workflow_maker.json +811 -0
- data/lib/buildingsync/makers/workflow_maker.rb +581 -0
- data/lib/buildingsync/makers/workflow_maker_base.rb +167 -0
- data/lib/buildingsync/model_articulation/building.rb +1119 -0
- data/lib/buildingsync/model_articulation/building_and_system_types.json +121 -0
- data/lib/buildingsync/model_articulation/building_section.rb +190 -0
- data/lib/buildingsync/model_articulation/building_system.rb +49 -0
- data/lib/buildingsync/model_articulation/envelope_system.rb +102 -0
- data/lib/buildingsync/model_articulation/exterior_floor_system_type.rb +64 -0
- data/lib/buildingsync/model_articulation/facility.rb +439 -0
- data/lib/buildingsync/model_articulation/foundation_system_type.rb +64 -0
- data/lib/buildingsync/model_articulation/hvac_system.rb +395 -0
- data/lib/buildingsync/model_articulation/lighting_system.rb +102 -0
- data/lib/buildingsync/model_articulation/loads_system.rb +287 -0
- data/lib/buildingsync/model_articulation/location_element.rb +129 -0
- data/lib/buildingsync/model_articulation/measure.rb +57 -0
- data/lib/buildingsync/model_articulation/roof_system_type.rb +64 -0
- data/lib/buildingsync/model_articulation/service_hot_water_system.rb +87 -0
- data/lib/buildingsync/model_articulation/site.rb +242 -0
- data/lib/buildingsync/model_articulation/spatial_element.rb +343 -0
- data/lib/buildingsync/model_articulation/wall_system_type.rb +64 -0
- data/lib/buildingsync/report.rb +217 -0
- data/lib/buildingsync/resource_use.rb +55 -0
- data/lib/buildingsync/scenario.rb +622 -0
- data/lib/buildingsync/selection_tool.rb +98 -0
- data/lib/buildingsync/time_series.rb +85 -0
- data/lib/buildingsync/translator.rb +167 -0
- data/lib/buildingsync/utility.rb +67 -0
- data/lib/buildingsync/version.rb +45 -0
- metadata +223 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b5149ec80301b45d4d0c933059ebdfbb18f1ba987d604d3df5cf6c7b8f4d10b8
|
4
|
+
data.tar.gz: e67bd524c2f3386313ea3a0089a8f49cf8b5b4c0eb6cd832014c692b5c8b3f08
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 07db8576a601b662692cb5a10e6386b951acb27788af712ed383e7eae60f4489830e57066bab1b260fc6fa74fe63c27cdc6c0e2b713f96014e88c8682913c5dc
|
7
|
+
data.tar.gz: 481a3639e0aa4437a3fbe6f6e7bf9bde57f530f2a021cd3a10b49393b5360932e5fdf9df3bd14f8614242254d75bd8466aa269f0b561af0f1096a04377e46472
|
@@ -0,0 +1,146 @@
|
|
1
|
+
name: Continuous Integration
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
push:
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
model_articulation_tests:
|
9
|
+
name: Model Articulation Tests
|
10
|
+
container: nrel/openstudio:3.0.1
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
steps:
|
13
|
+
- name: Checkout Code
|
14
|
+
uses: actions/checkout@v2
|
15
|
+
- name: Setup
|
16
|
+
run: |
|
17
|
+
gem install bundler
|
18
|
+
bundle install
|
19
|
+
- name: Building Section Spec
|
20
|
+
run: bundle exec rspec spec/tests/model_articulation_test/building_section_spec.rb
|
21
|
+
if: always()
|
22
|
+
- name: Building Spec
|
23
|
+
run: bundle exec rspec spec/tests/model_articulation_test/building_spec.rb
|
24
|
+
if: always()
|
25
|
+
- name: Envelope System Spec
|
26
|
+
run: bundle exec rspec spec/tests/model_articulation_test/envelope_system_spec.rb
|
27
|
+
if: always()
|
28
|
+
- name: Facility Spec
|
29
|
+
run: bundle exec rspec spec/tests/model_articulation_test/facility_spec.rb
|
30
|
+
if: always()
|
31
|
+
- name: HVAC System Spec
|
32
|
+
run: bundle exec rspec spec/tests/model_articulation_test/hvac_system_spec.rb
|
33
|
+
if: always()
|
34
|
+
- name: Loads System Spec
|
35
|
+
run: bundle exec rspec spec/tests/model_articulation_test/loads_system_spec.rb
|
36
|
+
if: always()
|
37
|
+
- name: Lighting System Spec
|
38
|
+
run: bundle exec rspec spec/tests/model_articulation_test/lighting_system_type_spec.rb
|
39
|
+
if: always()
|
40
|
+
- name: SHW System Spec
|
41
|
+
run: bundle exec rspec spec/tests/model_articulation_test/service_hot_water_system_spec.rb
|
42
|
+
if: always()
|
43
|
+
- name: Site Spec
|
44
|
+
run: bundle exec rspec spec/tests/model_articulation_test/site_spec.rb
|
45
|
+
if: always()
|
46
|
+
- name: Hospital Occupancy Type Spec
|
47
|
+
run: bundle exec rspec spec/tests/model_articulation_test/hospital_occupancy_type_spec.rb
|
48
|
+
if: always()
|
49
|
+
- name: Occupancy Types Spec
|
50
|
+
run: bundle exec rspec spec/tests/model_articulation_test/occupancy_types_spec.rb
|
51
|
+
if: always()
|
52
|
+
# Fails sometimes due to connection issues, so we exclude it here
|
53
|
+
# - name: Weather File Download
|
54
|
+
# run: bundle exec rspec spec/tests/model_articulation_test/weather_file_download_spec.rb
|
55
|
+
# if: always()
|
56
|
+
|
57
|
+
translator_tests:
|
58
|
+
name: Translator Tests
|
59
|
+
container: nrel/openstudio:3.0.1
|
60
|
+
runs-on: ubuntu-latest
|
61
|
+
steps:
|
62
|
+
- name: Checkout Code
|
63
|
+
uses: actions/checkout@v2
|
64
|
+
- name: Setup
|
65
|
+
run: |
|
66
|
+
gem install bundler
|
67
|
+
bundle install
|
68
|
+
- name: Translator Example Spec
|
69
|
+
run: bundle exec rspec spec/tests/translator_spec.rb
|
70
|
+
if: always()
|
71
|
+
- name: Translator Sizing Run Spec
|
72
|
+
run: bundle exec rspec spec/tests/translator_sizing_run_spec.rb
|
73
|
+
if: always()
|
74
|
+
- name: Translator Scenario Generation Specs
|
75
|
+
run: bundle exec rspec spec/tests/translator_scenario_generation_spec.rb
|
76
|
+
if: always()
|
77
|
+
- name: Translator Scenario Simulation Spec
|
78
|
+
run: bundle exec rspec spec/tests/translator_scenario_simulations_spec.rb
|
79
|
+
if: always()
|
80
|
+
|
81
|
+
report_and_scenario_tests:
|
82
|
+
name: Report and Scenario Tests
|
83
|
+
container: nrel/openstudio:3.0.1
|
84
|
+
runs-on: ubuntu-latest
|
85
|
+
steps:
|
86
|
+
- name: Checkout Code
|
87
|
+
uses: actions/checkout@v2
|
88
|
+
- name: Setup
|
89
|
+
run: |
|
90
|
+
gem install bundler
|
91
|
+
bundle install
|
92
|
+
- name: Report Spec
|
93
|
+
run: bundle exec rspec spec/tests/report_spec.rb
|
94
|
+
if: always()
|
95
|
+
- name: Utility Spec
|
96
|
+
run: bundle exec rspec spec/tests/utility_spec.rb
|
97
|
+
if: always()
|
98
|
+
- name: Scenario Spec
|
99
|
+
run: bundle exec rspec spec/tests/scenario_spec.rb
|
100
|
+
if: always()
|
101
|
+
- name: TimeSeries Spec
|
102
|
+
run: bundle exec rspec spec/tests/time_series_spec.rb
|
103
|
+
if: always()
|
104
|
+
- name: ResourceUse Spec
|
105
|
+
run: bundle exec rspec spec/tests/resource_use_spec.rb
|
106
|
+
if: always()
|
107
|
+
- name: AllResourceTotal Spec
|
108
|
+
run: bundle exec rspec spec/tests/all_resource_total_spec.rb
|
109
|
+
if: always()
|
110
|
+
- name: WorkflowMaker Spec
|
111
|
+
run: bundle exec rspec spec/tests/workflow_maker_spec.rb
|
112
|
+
if: always()
|
113
|
+
|
114
|
+
other_specs:
|
115
|
+
name: Other Tests
|
116
|
+
container: nrel/openstudio:3.0.1
|
117
|
+
runs-on: ubuntu-latest
|
118
|
+
steps:
|
119
|
+
- name: Checkout Code
|
120
|
+
uses: actions/checkout@v2
|
121
|
+
- name: Setup
|
122
|
+
run: |
|
123
|
+
gem install bundler
|
124
|
+
bundle install
|
125
|
+
- name: BuildingSync Spec
|
126
|
+
run: bundle exec rspec spec/tests/building_sync_spec.rb
|
127
|
+
if: always()
|
128
|
+
- name: EPW Test Spec
|
129
|
+
run: bundle exec rspec spec/tests/epw_test_spec.rb
|
130
|
+
if: always()
|
131
|
+
- name: Constants Spec
|
132
|
+
run: bundle exec rspec spec/tests/constants_spec.rb
|
133
|
+
if: always()
|
134
|
+
- name: Generator Spec
|
135
|
+
run: bundle exec rspec spec/tests/generator_spec.rb
|
136
|
+
if: always()
|
137
|
+
- name: Helper Spec
|
138
|
+
run: bundle exec rspec spec/tests/helper_spec.rb
|
139
|
+
if: always()
|
140
|
+
- name: XMLGetSet Spec
|
141
|
+
run: bundle exec rspec spec/tests/xml_get_set_spec.rb
|
142
|
+
if: always()
|
143
|
+
# selection tool is not working with ASHRAE level 1.5 yet
|
144
|
+
# - name: Selection Tool Spec
|
145
|
+
# run: bundle exec rspec spec/tests/selection_tool_spec.rb
|
146
|
+
# if: always()
|
data/.gitignore
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
/.bundle/
|
2
|
+
/.yardoc
|
3
|
+
/.ruby-version
|
4
|
+
/.python-version
|
5
|
+
/Gemfile.lock
|
6
|
+
/gems
|
7
|
+
/_yardoc/
|
8
|
+
/coverage/
|
9
|
+
/doc/
|
10
|
+
/pkg/
|
11
|
+
/spec/reports/
|
12
|
+
/tmp/
|
13
|
+
/spec/output/
|
14
|
+
/SR1
|
15
|
+
/SRvt
|
16
|
+
.DS_Store
|
17
|
+
|
18
|
+
# rspec failure tracking
|
19
|
+
.rspec_status
|
20
|
+
|
21
|
+
# Ignore IDE files
|
22
|
+
/.idea
|
23
|
+
*.rubocop-http*
|
24
|
+
|
25
|
+
# measures tests
|
26
|
+
lib/measures/.rubocop.yml
|
27
|
+
lib/measures/test_results/*
|
28
|
+
|
29
|
+
spec/files/filecomparison/in.idf
|
30
|
+
spec/files/filecomparison/in.osm
|
31
|
+
spec/weather/weather_file.json
|
32
|
+
|
33
|
+
.DS_Store
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
# BuildingSync Gem
|
2
|
+
|
3
|
+
## Version 0.2.0
|
4
|
+
|
5
|
+
This is released as a minor version since we are so early stage, even though it has many breaking changes. Most of the 'high-level API' (translator) remains.
|
6
|
+
|
7
|
+
- Added many BuildingSync specific classes:
|
8
|
+
- AllResourceTotal
|
9
|
+
- AuditDate
|
10
|
+
- Contact
|
11
|
+
- Report
|
12
|
+
- ResourceUse
|
13
|
+
- Scenario
|
14
|
+
- TimeSeries
|
15
|
+
- Utility
|
16
|
+
|
17
|
+
- Major modifications to:
|
18
|
+
- WorkflowMaker
|
19
|
+
- Building
|
20
|
+
- BuildingSection
|
21
|
+
- Facility
|
22
|
+
- HVACSystem
|
23
|
+
- LightingSystem
|
24
|
+
- LoadsSystem
|
25
|
+
- Site
|
26
|
+
- SpatialElement
|
27
|
+
- Translator
|
28
|
+
|
29
|
+
- Added / modified modules / classes:
|
30
|
+
- Generator
|
31
|
+
- Helper
|
32
|
+
- XmlGetSet: many useful functions to get / set XML data given a base_xml
|
33
|
+
- LocationElement
|
34
|
+
|
35
|
+
- Removed Classes:
|
36
|
+
- ModelMakerBase
|
37
|
+
- ModelMaker
|
38
|
+
- MeteredEnergy
|
39
|
+
|
40
|
+
- Added `constants.rb`
|
41
|
+
- Renamed `bldg_and_system_types.json1` -> `building_and_system_types.json`
|
42
|
+
- Removed redundant / unused XML files
|
43
|
+
- Updated files to comply with specific BSync versions (v2.1.0, v2.2.0)
|
44
|
+
- Significantly more testing
|
45
|
+
|
46
|
+
## Version 0.1.0
|
47
|
+
|
48
|
+
* Initial release
|
49
|
+
* Support Level 0 (walkthrough), Level 1, and simplified Level 2 energy audits specified by ASHRAE Standard 211-2018.
|
50
|
+
* Support Office, Retail, and Hotel Building Types
|
data/Gemfile
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source 'http://rubygems.org'
|
4
|
+
|
5
|
+
gemspec
|
6
|
+
|
7
|
+
# Local gems are useful when developing and integrating the various dependencies.
|
8
|
+
# To favor the use of local gems, set the following environment variable:
|
9
|
+
# Mac: export FAVOR_LOCAL_GEMS=1
|
10
|
+
# Windows: set FAVOR_LOCAL_GEMS=1
|
11
|
+
# Note that if allow_local is true, but the gem is not found locally, then it will
|
12
|
+
# checkout the latest version (develop) from github.
|
13
|
+
allow_local = ENV['FAVOR_LOCAL_GEMS']
|
14
|
+
|
15
|
+
if allow_local && File.exist?('../openstudio-common-measures-gem')
|
16
|
+
gem 'openstudio-common-measures', path: '../openstudio-common-measures-gem'
|
17
|
+
else
|
18
|
+
gem 'openstudio-common-measures', github: 'NREL/openstudio-common-measures-gem', tag: 'v0.2.1'
|
19
|
+
end
|
20
|
+
|
21
|
+
if allow_local && File.exist?('../openstudio-model-articulation-gem')
|
22
|
+
gem 'openstudio-model-articulation', path: '../openstudio-model-articulation-gem'
|
23
|
+
else
|
24
|
+
gem 'openstudio-model-articulation', github: 'NREL/openstudio-model-articulation-gem', tag: 'v0.2.1'
|
25
|
+
end
|
26
|
+
|
27
|
+
if allow_local && File.exist?('../openstudio-ee-gem')
|
28
|
+
gem 'openstudio-ee', path: '../openstudio-ee-gem'
|
29
|
+
else
|
30
|
+
gem 'openstudio-ee', github: 'NREL/openstudio-ee-gem', tag: 'v0.2.1'
|
31
|
+
end
|
data/Jenkinsfile
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
//Jenkins pipelines are stored in shared libaries. Please see: https://github.com/tijcolem/nrel_cbci_jenkins_libs
|
2
|
+
|
3
|
+
@Library('cbci_shared_libs') _
|
4
|
+
|
5
|
+
// Build for PR to develop branch only.
|
6
|
+
if ((env.CHANGE_ID) && (env.CHANGE_TARGET) ) { // check if set
|
7
|
+
|
8
|
+
building_sync_gems()
|
9
|
+
|
10
|
+
}
|
data/LICENSE.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
|
2
|
+
BuildingSync(R), Copyright (c) 2015-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted
|
5
|
+
provided that the following conditions are met:
|
6
|
+
|
7
|
+
(1) Redistributions of source code must retain the above copyright notice, this list of conditions
|
8
|
+
and the following disclaimer.
|
9
|
+
|
10
|
+
(2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
11
|
+
and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
12
|
+
|
13
|
+
(3) Neither the name of the copyright holder nor the names of any contributors may be used to endorse
|
14
|
+
or promote products derived from this software without specific prior written permission from the
|
15
|
+
respective party.
|
16
|
+
|
17
|
+
(4) Other than as required in clauses (1) and (2), distributions in any form of modifications or other
|
18
|
+
derivative works may not use the "OpenStudio" or "BuildingSync" trademarks, "OS", "os", "BSync" or any
|
19
|
+
other confusingly similar designation without specific prior written permission from Alliance for
|
20
|
+
Sustainable Energy, LLC.
|
21
|
+
|
22
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
23
|
+
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
24
|
+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER, THE UNITED STATES GOVERNMENT,
|
25
|
+
OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
26
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
27
|
+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
28
|
+
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
29
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
# BuildingSync
|
2
|
+
|
3
|
+
The BuildingSync-Gem is a repository of helpers for reading and writing BuildingSync XML files, and for using that data to drive energy simulations of the subject building. See full documentation on [RubyDoc](https://www.rubydoc.info/github/BuildingSync/BuildingSync-gem).
|
4
|
+
|
5
|
+
All of the following are supported:
|
6
|
+
|
7
|
+
* convert BuildingSync XML file into:
|
8
|
+
|
9
|
+
* an OpenStudio Baseline model
|
10
|
+
|
11
|
+
* an OpenStudio workflow for each scenario defined in the XML file
|
12
|
+
|
13
|
+
* enables simulation of the baseline model and all workflows and
|
14
|
+
|
15
|
+
* insert simulation results back into the Building XML file.
|
16
|
+
## Installation
|
17
|
+
|
18
|
+
Add this line to your application's Gemfile:
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
gem 'buildingsync'
|
22
|
+
```
|
23
|
+
|
24
|
+
And then execute:
|
25
|
+
|
26
|
+
|
27
|
+
$ bundle
|
28
|
+
|
29
|
+
Or install it yourself as:
|
30
|
+
|
31
|
+
$ gem install 'buildingsync'
|
32
|
+
|
33
|
+
## Usage
|
34
|
+
|
35
|
+
All of the features described above are provided by the translator class, as shown in the following sample code:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
building_sync_xml_file_path = 'path/to/bsync.xml'
|
39
|
+
out_path = 'path/to/output_dir'
|
40
|
+
|
41
|
+
# initializing the translator
|
42
|
+
translator = BuildingSync::Translator.new(building_sync_xml_file_path, out_path)
|
43
|
+
|
44
|
+
# generating the OpenStudio Model and writing the osm file.
|
45
|
+
# path/to/output_dir/SR and path/to/output_dir/in.osm created
|
46
|
+
translator.setup_and_sizing_run
|
47
|
+
|
48
|
+
# generating the OpenStudio workflows and writing the osw files
|
49
|
+
# auc:Scenario elements with measures are turned into new simulation dirs
|
50
|
+
# path/to/output_dir/scenario_name
|
51
|
+
translator.write_osws
|
52
|
+
|
53
|
+
|
54
|
+
# run all simulations
|
55
|
+
translator.run_osws
|
56
|
+
|
57
|
+
# gather the results for all scenarios found in out_path,
|
58
|
+
# such as annual and monthly data for different energy
|
59
|
+
# sources (electricity, natural gas, etc.)
|
60
|
+
translator.gather_results(out_path)
|
61
|
+
|
62
|
+
# Add in UserDefinedFields, which contain information about the
|
63
|
+
# OpenStudio model run
|
64
|
+
translator.prepare_final_xml
|
65
|
+
|
66
|
+
# write results to xml
|
67
|
+
# default file name is 'results.xml'
|
68
|
+
file_name = 'abc-123.xml'
|
69
|
+
translator.save_xml(file_name)
|
70
|
+
```
|
71
|
+
## Testing
|
72
|
+
|
73
|
+
Check out the repository and then execute:
|
74
|
+
|
75
|
+
$ bundle install
|
76
|
+
|
77
|
+
$ bundle exec rake
|
78
|
+
|
79
|
+
## Documentation
|
80
|
+
|
81
|
+
The documentation of the BuildingSync-Gem is done with Yard (https://yardoc.org)
|
82
|
+
To generate the documentation locally do the following:
|
83
|
+
|
84
|
+
$ gem install yard
|
85
|
+
|
86
|
+
$ yardoc - README.md
|
87
|
+
|
88
|
+
## Updating published documentation
|
89
|
+
Publish documentation for each release:
|
90
|
+
|
91
|
+
1. Tag release on GitHub
|
92
|
+
1. Go to [rubydoc.info](https://www.rubydoc.info) and click `Add Project` in the upper right
|
93
|
+
1. Input the git address: `git://github/BuildingSync/BuildingSync-gem.git`
|
94
|
+
1. Input the release tag for the desired version, eg: `v0.2.0`
|
95
|
+
1. Click `Go`
|
96
|
+
1. Profit
|
97
|
+
|
98
|
+
# Releasing
|
99
|
+
|
100
|
+
1. Update CHANGELOG.md
|
101
|
+
1. Run `bundle exec rake rubocop:auto_correct`
|
102
|
+
1. Update version in `/lib/buildingsync/version.rb`
|
103
|
+
1. Create PR to main, after tests and reviews complete, then merge
|
104
|
+
1. Locally - from the main branch, run `bundle exec rake release`
|
105
|
+
1. On GitHub, go to the releases page and update the latest release tag. Name it “Version x.y.z” and copy the CHANGELOG entry into the description box.
|
data/Rakefile
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# *******************************************************************************
|
4
|
+
# OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
|
5
|
+
# All rights reserved.
|
6
|
+
# Redistribution and use in source and binary forms, with or without
|
7
|
+
# modification, are permitted provided that the following conditions are met:
|
8
|
+
#
|
9
|
+
# (1) Redistributions of source code must retain the above copyright notice,
|
10
|
+
# this list of conditions and the following disclaimer.
|
11
|
+
#
|
12
|
+
# (2) Redistributions in binary form must reproduce the above copyright notice,
|
13
|
+
# this list of conditions and the following disclaimer in the documentation
|
14
|
+
# and/or other materials provided with the distribution.
|
15
|
+
#
|
16
|
+
# (3) Neither the name of the copyright holder nor the names of any contributors
|
17
|
+
# may be used to endorse or promote products derived from this software without
|
18
|
+
# specific prior written permission from the respective party.
|
19
|
+
#
|
20
|
+
# (4) Other than as required in clauses (1) and (2), distributions in any form
|
21
|
+
# of modifications or other derivative works may not use the "OpenStudio"
|
22
|
+
# trademark, "OS", "os", or any other confusingly similar designation without
|
23
|
+
# specific prior written permission from Alliance for Sustainable Energy, LLC.
|
24
|
+
#
|
25
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
|
26
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
27
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
28
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
|
29
|
+
# UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
|
30
|
+
# THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
31
|
+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
32
|
+
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
33
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
34
|
+
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
35
|
+
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
36
|
+
# *******************************************************************************
|
37
|
+
|
38
|
+
require 'bundler/gem_tasks'
|
39
|
+
require 'rspec/core/rake_task'
|
40
|
+
|
41
|
+
RSpec::Core::RakeTask.new(:spec)
|
42
|
+
|
43
|
+
require 'rubocop/rake_task'
|
44
|
+
RuboCop::RakeTask.new
|
45
|
+
|
46
|
+
# Load in the rake tasks from the base extension gem
|
47
|
+
require 'openstudio/extension/rake_task'
|
48
|
+
require 'openstudio/model_articulation'
|
49
|
+
rake_task = OpenStudio::Extension::RakeTask.new
|
50
|
+
rake_task.set_extension_class(OpenStudio::ModelArticulation::Extension)
|
51
|
+
|
52
|
+
desc 'Convert tabs to spaces'
|
53
|
+
task :remove_tabs do
|
54
|
+
Dir['examples/**/*.xml', 'BuildingSync.xsd'].each do |file|
|
55
|
+
puts " Cleaning #{file}"
|
56
|
+
doc = Nokogiri.XML(File.read(file)) do |config|
|
57
|
+
config.default_xml.noblanks
|
58
|
+
end
|
59
|
+
|
60
|
+
doc.xpath('//comment()').each do |node|
|
61
|
+
if node.text.match?(/XMLSpy/)
|
62
|
+
node.remove
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
File.open(file, 'w') { |f| f << doc.to_xml(indent: 2) }
|
67
|
+
end
|
68
|
+
|
69
|
+
if File.exist? 'BuildingSync.json'
|
70
|
+
f = JSON.parse(File.read('BuildingSync.json'))
|
71
|
+
File.open('BuildingSync.json', 'w') do |file|
|
72
|
+
file << JSON.pretty_generate(f)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
task default: :spec
|