Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0156037
Init
haneslinger May 20, 2026
cf1875e
WIP
haneslinger May 26, 2026
a227cff
The easy 80%
haneslinger May 28, 2026
c3872f0
Read me
haneslinger Jun 1, 2026
4492f5e
Add CLI
haneslinger Jun 2, 2026
e1c8026
updates
kflemin Jun 3, 2026
4a11cb6
Merge branch 'init' of github.com:BuildingSync/BOSS into init
kflemin Jun 3, 2026
3a2ad26
cleanup gemspec and readme
kflemin Jun 16, 2026
a442a16
readme
kflemin Jun 16, 2026
11dfe63
add rakefile, update copyrights, cleanup
kflemin Jun 16, 2026
813fef4
adding ci
kflemin Jun 19, 2026
19d06b1
add openstudio-standards dependency
kflemin Jun 22, 2026
2da4e13
Fix Tests workflow locale and weather test flakiness
Copilot Jun 22, 2026
dbacd72
Fix CI bundle path for OpenStudio test runs
Copilot Jun 22, 2026
d74190c
kick ci
kflemin Jun 22, 2026
a8e25a1
updates to CLI and README
kflemin Jun 24, 2026
d9cfec4
change output path for consistency
kflemin Jun 24, 2026
c97bd32
cleanup readme
kflemin Jun 24, 2026
c3a7b1f
Potential fix for pull request finding
kflemin Jun 25, 2026
1ff4a87
Potential fix for pull request finding
kflemin Jun 25, 2026
a0a693d
Potential fix for pull request finding
kflemin Jun 25, 2026
c8be740
Potential fix for pull request finding
kflemin Jun 25, 2026
b00679b
Potential fix for pull request finding
kflemin Jun 25, 2026
90ed0d2
adding rubocop dependencies
kflemin Jun 25, 2026
364b41f
Potential fix for pull request finding
kflemin Jun 25, 2026
94c878c
Fix Python-style triple-quoted strings with Ruby heredocs in spec file
Copilot Jun 25, 2026
e143cfb
Potential fix for pull request finding
kflemin Jun 25, 2026
f3ff76b
Potential fix for pull request finding
kflemin Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Continuous Integration

on:
pull_request:
push:
branches:
- "develop"
tags:
- '*'

jobs:
tests:
name: Tests
container: nrel/openstudio:3.10.0
runs-on: ubuntu-latest
env:
LANG: C.UTF-8
LC_ALL: C.UTF-8
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
gem install bundler -v 2.4.10
bundle config set --local path "$GITHUB_WORKSPACE/.bundle/install"
bundle install
- name: Run Integration Tests
run: bundle exec rspec spec/tests/integration/write_and_run_osws_spec.rb
if: always()
- name: Run Unit Tests
run: bundle exec rspec spec/tests/unit/buildingsync_reader_spec.rb
if: always()
97 changes: 41 additions & 56 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,56 +1,41 @@
*.gem
*.rbc
/.config
/coverage/
/InstalledFiles
/pkg/
/spec/reports/
/spec/examples.txt
/test/tmp/
/test/version_tmp/
/tmp/

# Used by dotenv library to load environment variables.
# .env

# Ignore Byebug command history file.
.byebug_history

## Specific to RubyMotion:
.dat*
.repl_history
build/
*.bridgesupport
build-iPhoneOS/
build-iPhoneSimulator/

## Specific to RubyMotion (use of CocoaPods):
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# vendor/Pods/

## Documentation cache and generated files:
/.yardoc/
/_yardoc/
/doc/
/rdoc/

## Environment normalization:
/.bundle/
/vendor/bundle
/lib/bundler/man/

# for a library or gem, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# Gemfile.lock
# .ruby-version
# .ruby-gemset

# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
.rvmrc

# Used by RuboCop. Remote config files pulled in from inherit_from directive.
# .rubocop-https?--*
.bundle
vendor
spec/output
weather
.ruby-version
.python-version
Gemfile.lock
gems
_yardoc
coverage
doc
pkg
spec/reports
tmp
spec/output
SR1
SRvt
.DS_Store
lib/data
schedules-*.csv
# rspec failure tracking
.rspec_status

# Ignore IDE files
.idea
*.rubocop-http*

# measures tests
lib/measures/.rubocop.yml
lib/measures/building_sync_to_openstudio/tests/output

# OSW tests for gem
osw_test/generated_files
osw_test/run
osw_test/out.osw

spec/files/filecomparison/in.idf
spec/files/filecomparison/in.osm
spec/weather/weather_file.json
output/*
.vscode
3 changes: 3 additions & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
--format documentation
--color
--require spec_helper
11 changes: 11 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
AllCops:
Exclude:
- gems/**/*
- init_templates/**/*
- lib/measures/**/resources/*
- lib/openstudio/extension/core/**/*
TargetRubyVersion: 3.2.2

require: rubocop-performance
inherit_from:
- http://s3.amazonaws.com/openstudio-resources/styles/rubocop_v4.yml
Comment thread
kflemin marked this conversation as resolved.
1 change: 1 addition & 0 deletions .ruby-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.2.2
41 changes: 41 additions & 0 deletions BOSS.gemspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# frozen_string_literal: true

lib = File.expand_path('lib', __dir__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'BOSS/version'

Gem::Specification.new do |spec|
spec.name = 'BOSS'
spec.version = BOSS::VERSION
spec.authors = ['Hannah Eslinger', 'Katherine Fleming']
spec.email = ['hannah.eslinger@nlr.gov', 'katherine.fleming@nlr.gov']

spec.summary = 'Library for reading, writing, and exporting BuildingSync to OpenStudio'
spec.description = 'Library for reading, writing, and exporting BuildingSync to OpenStudio'
spec.homepage = 'https://buildingsync.net'

# Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
spec.files = Dir.chdir(File.expand_path(__dir__)) do
`git ls-files -z`.force_encoding('UTF-8').split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
end
spec.bindir = 'bin'
spec.executables = ['boss']
spec.require_paths = ['lib']

spec.add_dependency 'bundler', '~> 2.4.10'
spec.add_dependency 'openstudio-common-measures', '~> 0.12.3'
spec.add_dependency 'openstudio-ee', '~> 0.12.5'
spec.add_dependency 'openstudio-extension', '~> 0.9.4'
spec.add_dependency 'openstudio-model-articulation', '~> 0.12.2'
spec.add_dependency 'openstudio-standards', '~> 0.8.2'
spec.add_dependency 'httparty', '~> 0.23.2'
spec.add_dependency 'thor', '~> 1.5.0'

spec.add_development_dependency 'rake', '~> 13.0'
spec.add_development_dependency 'rspec', '~> 3.13'
spec.add_development_dependency 'rubocop', '1.50'
spec.add_development_dependency 'rubocop-checkstyle_formatter', '0.6.0'
spec.add_development_dependency 'rubocop-performance', '1.20.0'
spec.add_development_dependency 'pry', '~> 0.15.2'
end
5 changes: 5 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source "https://rubygems.org"

gemspec

#gem 'openstudio-extension', path: '../OpenStudio-extension-gem'
196 changes: 196 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
PATH
remote: .
specs:
BOSS (0.1.0)
bundler (~> 2.4.10)
httparty (~> 0.23.2)
openstudio-common-measures (~> 0.12.3)
openstudio-ee (~> 0.12.5)
openstudio-extension (~> 0.9.4)
openstudio-model-articulation (~> 0.12.2)
openstudio-standards (~> 0.8.2)
thor (~> 1.5.0)

GEM
remote: https://rubygems.org/
specs:
addressable (2.8.1)
public_suffix (>= 2.0.2, < 6.0)
ansi (1.6.0)
ast (2.4.3)
bcl (0.9.1)
builder (= 3.2.4)
faraday (~> 1.10.4)
minitar (~> 0.9)
openstudio_measure_tester (~> 0.5.0)
rexml (= 3.2.5)
rubyzip (~> 2.3.2)
spreadsheet (= 1.2.9)
uuid (~> 2.3.9)
yamler (= 0.1.0)
zliby (= 0.0.5)
bigdecimal (4.1.2)
builder (3.2.4)
coderay (1.1.3)
csv (3.3.5)
diff-lcs (1.6.2)
faraday (1.10.5)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.1)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.2.0)
multipart-post (~> 2.0)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.4)
git (1.13.2)
addressable (~> 2.8)
rchardet (~> 1.8)
httparty (0.23.2)
csv
mini_mime (>= 1.0.0)
multi_xml (>= 0.5.2)
json (2.19.9)
json-schema (4.3.1)
addressable (>= 2.8)
macaddr (1.7.2)
systemu (~> 2.6.5)
matrix (0.4.3)
method_source (1.1.0)
mini_mime (1.1.5)
minitar (0.12.1)
minitest (5.14.4)
minitest-reporters (1.4.3)
ansi
builder
minitest (>= 5.0)
ruby-progressbar
multi_xml (0.9.1)
bigdecimal (>= 3.1, < 5)
multipart-post (2.4.0)
octokit (4.18.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
openstudio-common-measures (0.12.3)
bundler (~> 2.4.10)
multipart-post (= 2.4.0)
openstudio-extension (~> 0.9.3)
openstudio-standards (= 0.8.2)
openstudio-ee (0.12.5)
bundler (~> 2.4.10)
multipart-post (= 2.4.0)
openstudio-extension (~> 0.9.3)
openstudio-standards (= 0.8.2)
openstudio-extension (0.9.4)
addressable (= 2.8.1)
bcl (~> 0.9.1)
bundler (= 2.4.10)
octokit (~> 4.18.0)
openstudio-workflow (~> 2.5.0)
openstudio_measure_tester (~> 0.5.0)
parallel (~> 1.19.1)
regexp_parser (= 2.9.0)
openstudio-model-articulation (0.12.2)
bundler (~> 2.4.10)
multipart-post (= 2.4.0)
openstudio-extension (~> 0.9.3)
openstudio-standards (= 0.8.2)
openstudio-standards (0.8.2)
tbd (~> 3)
openstudio-workflow (2.5.0)
openstudio_measure_tester (0.5.2)
git (~> 1.13.0)
minitest (~> 5.14.0)
minitest-reporters (~> 1.4.2)
parser (= 3.2.2.2)
rake (~> 13.0)
oslg (0.4.0)
osut (0.9.1)
oslg (>= 0.4.0)
parallel (1.19.2)
parser (3.2.2.2)
ast (~> 2.4.1)
pry (0.15.2)
coderay (~> 1.1)
method_source (~> 1.0)
public_suffix (5.1.1)
rainbow (3.1.1)
rake (13.4.2)
rchardet (1.10.0)
regexp_parser (2.9.0)
rexml (3.2.5)
rspec (3.13.2)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.6)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.8)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.7)
rubocop (1.50.0)
json (~> 2.3)
parallel (~> 1.10)
parser (>= 3.2.0.0)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.28.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.30.0)
parser (>= 3.2.1.0)
ruby-ole (1.2.13.1)
ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
sawyer (0.8.2)
addressable (>= 2.3.5)
faraday (> 0.8, < 2.0)
spreadsheet (1.2.9)
ruby-ole
systemu (2.6.5)
tbd (3.6.0)
json-schema (~> 4)
osut (~> 0)
topolys (~> 0)
thor (1.5.0)
topolys (0.6.2)
matrix
unicode-display_width (2.6.0)
uuid (2.3.9)
macaddr (~> 1.0)
yamler (0.1.0)
zliby (0.0.5)

PLATFORMS
arm64-darwin-24
ruby

DEPENDENCIES
BOSS!
pry (~> 0.15.2)
rake (~> 13.0)
rspec (~> 3.13)
rubocop (= 1.50)

BUNDLED WITH
2.4.10
Loading
Loading