Skip to content

Latest commit

 

History

History
62 lines (41 loc) · 2.34 KB

File metadata and controls

62 lines (41 loc) · 2.34 KB

OpenStudio Application Development

Project Overview

Cross-platform (Windows, Mac, Linux) graphical interface for OpenStudio energy models. Built on the OpenStudio SDK using Qt 6.11.0 and C++20.

Quick Start

See BUILDING.md for comprehensive build instructions.

Docker-based local builds (for validation, not production):

# First time setup
make image && make configure && make build && make test

# After source file edits
make build && make test

# After CMakeLists.txt or conanfile.py changes
make configure && make build && make test

Windows users: Run make commands via WSL (Ubuntu 22.04), not PowerShell. See docker-build instructions for setup details.

Production builds use native conan + cmake (see BUILDING.md).

Code Standards

  • C++20 standard, compile with -Werror (warnings are errors)
  • Qt 6.11.0 for all GUI components
  • Unit tests required with 90%+ coverage (see CONTRIBUTING.md)
  • Run static analysis: make cppcheck

Testing

Known baseline failures in Docker environment (expected, not regressions):

  • ModelEditorFixture.MorePath_Conversions — Windows path test always fails on Linux
  • OpenStudioLibFixture.AnalyticsHelperSecrets — Requires CI-injected secrets

All other tests must pass. Zero warnings, zero regressions.

Architecture

  • src/model_editor — Core model editing functionality and Qt UI components
  • src/openstudio_lib — Application library layer, main UI screens
  • src/openstudio_app — Qt application entry point and lifecycle
  • src/shared_gui_components — Reusable widgets and workflow controllers

Supports OpenStudio Measures (Ruby/Python scripts for model transformations).

Key Conventions

  • Docker builds are for local validation only; CI uses native builds on ubuntu-22.04, macos-12, and windows-2022
  • Build artifacts live in a Docker volume (osapp-build), not on the host filesystem — use make check-build to inspect
  • On Windows, Makefile targets require WSL bash; they will not work in PowerShell or cmd.exe

Resources