Releases: NREL/alfalfa
v0.7.1
What's Changed
- Add import of json in ruby mixin to prevent crashes by @TShapinsky in #523
- Multiplatform support by @TShapinsky in #520
Full Changelog: v0.7.0...v0.7.1
v0.7.0
What's Changed
- Update OpenStudio to v3.8.0
- Update EnergyPlus to v24.1.0
- Update PyFMI to 2.11.0
- New REST API structure
- New API tests beyond the scope of the
alfalfa-client
- Replaced SQS queue with Redis for distributing jobs
- Building name extraction now happens after E+ measures instead of OS measures
- Whole building energy now reads Watts instead of Joules
- Various bugfixes and stability improvements
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Note that with this release we moved from DockerHub to GitHub Container Registry for image hosting. The REGISTRY_BASE_URI has been updated in the .env file. If you are not using the .env for deployment, you will need to update REGISTRY_BASE_URI in your own deployment scripts. No other changes are required.
What's Changed
- Report preprocessing errors and consolidate site information collection by @TShapinsky in #437
- add ability to disable control points by @TShapinsky in #439
- Add Schedule Generation Tests and Support for more Schedule Types by @TShapinsky in #442
- Externalize Worker dependencies and improve CI speed by @TShapinsky in #423
- Create Alfalfa Gem from alfalfa-lib folder by @tanushree04 in #448
- Redis v4 Refactor by @axelstudios in #392
- Add download site button by @TShapinsky in #453
- Bump mongo to version 6 by @TShapinsky in #454
- Update AWS dependencies by @axelstudios in #452
- update to alfalfa lib gem by @tanushree04 in #455
- Bump redis from 3.5.3 to 4.5.4 by @dependabot in #429
- Ruby library tweaks by @TShapinsky in #456
- Prune dependencies in pyproject.toml by @TShapinsky in #460
- Bump version to 0.6.0 by @TShapinsky in #458
New Contributors
- @tanushree04 made their first contribution in #448
Full Changelog: v0.5.1...v0.6.0
v0.5.1
What's Changed
- Temporarily remove automatic natural gas metering by @TShapinsky (#424)
Full Changelog: v0.5.0...v0.5.1
v0.5.0
What's Changed
- Replace GraphQL with REST API @axelstudios (#383, #415) @TShapinsky (#390)
- Added comprehensive REST API documentation at
/docs
endpoint @axelstudios - Models have database instances and can be used to create runs without reuploading @TShapinsky (#390)
- Error log is visible in Web UI @axelstudios (#415)
- Extend timeout during warmup with EnergyPlus runs @TShapinsky (#399)
- Fix bug where OSWs with empty steps would crash @TShapinsky (#401)
- Overhauled point generation. Adding site meters, zone sensors, and schedule controls @TShapinsky (#406)
- Better reporting for certain EnergyPlus errors @TShapinsky
- Added run aliases @TShapinsky (#410)
- Update dependencies @axelstudios (#413)
- Signed URLs point to correct download URL @axelstudios (#415 #422)
- Lock versions for dependent docker containers @nllong (#393)
- Added error handling and validation to all REST API endpoints @axelstudios (#415)
- OSW and FMU sites can be operated on simultaneously from the UI @axelstudios (#415)
- Bug fixes @axelstudios @TShapinsky
Full Changelog: v0.4.1...v0.5.0
v0.4.1
What's Changed
- Add fix for incorrect timesteps when days roll over by @TShapinsky in #364
- Small Optimization for Point Writing by @TShapinsky in #365
- Remove worker container_name by @TShapinsky in #370
- Fix Failing Tests by @TShapinsky in #376
- Change python measure name by @TShapinsky in #373
- Move sim_time to redis by @TShapinsky in #374
- Bump pytoml version to 0.4.1 by @TShapinsky in #379
- Move from sklearn to scikit-learn in test by @TShapinsky in #381
- Bump web version to 0.4.1 by @TShapinsky in #382
- Bump loader-utils from 2.0.2 to 2.0.3 in /alfalfa_web by @dependabot in #384
- API Refactor and Improvements by @axelstudios in #383
- Switch from zipfile to shutil to improve structure of uploaded models by @TShapinsky in #368
- Merge 0.4.1 into Main by @TShapinsky in #380
Full Changelog: v0.4.0...v0.4.1
v0.4.0
Worker Updates
- Substantial upgrades to database interaction:
- Move read/write operations of write arrays,
curVal
, andcurStatus
from Mongo to Redis, reducing latencies associated with model advance. - Add Mongo engine ORM and associated database schema per the object specification.
- Revised Mongo indexes.
- Consolidate explicit MongoDB interactions throughout codebase.
- Creates a database schema per the Mongo engine object specification.
- Creates a new site object which is extracted during the
recs
writing. - Creates relationships between objects.
- Enables cascading deletes (if called from the Python side of the code). e.g.,
site.delete()
now removes all models, runs, recs, writearrays, etc. - Adds unit test with basic mock data for mongoengine/mongo
- Move read/write operations of write arrays,
- Python updates
- Worker Python and E+ Python upgraded to 3.8
- Required packaged for Python plugins can be specified in a requirements.txt file, documented in wiki.
- Improved error handling and logging:
- Jobs that experience errors now upload the contents of the run to S3
- E+ error logs are now exposed to the user when simulation fails.
- Bug fixes:
- Fixes intermittent E+ bug where models would sometimes skip a time step.
- Timescale runs now stop at the specified stop time.
- Improved handing of
writearray
andwriteVal
.
Web Updates
- Fixed React routing to redirect to home on unknown routes
- Restricted uploads to .zip and .fmu file extensions
- Added favicon
- Resolved all high-security vulnerabilities
What's Changed
- InfluxDB auth breaks in Grafana 9. This fixes the historian stack fo… by @anyaelena in #328
- hotfix - pin grafana in 0.3.0 release by @anyaelena in #329
- Centralized License by @axelstudios in #331
- Check in run when error in job is experienced by @TShapinsky in #325
- pull in latest FMU-related libraries from boptest by @nllong in #333
- Python dependency management by @TShapinsky in #335
- Add Basic Model I/O Test by @TShapinsky in #337
- Fix job_history recording by @TShapinsky in #341
- Pass realtime, external_clock, and timescale as string by @nllong in #342
- Watch JS files in development docker compose by @nllong in #351
- Fix model advance bug by @TShapinsky in #338
- Alfalfa with custom e+9.6 w/ py3.8 build by @TShapinsky in #344
- Add test for automatic virtual environment creation by @TShapinsky in #343
- Timescale fixes by @TShapinsky in #340
- Add automatic handling of eplus error logs and test case by @TShapinsky in #353
- Write to Redis by @axelstudios in #356
- Add Mongo ORM/ODM by @nllong in #352
- 0.4.0 Release by @anyaelena in #362
Full Changelog: v0.3.0...v0.4.0
v0.3.0
The 0.3.0 release of Alfalfa includes substantial updates to both worker and web containers. These are detailed in dedicated sections below and include the following breaking changes:
- Worker updates to EnergyPlus, OpenStudio, and Python may require model updates to run without errors.
- Web update to namespace the Project Haystack API mean that any coded API integrations will need url updates to add the `/haystack' prefix.
- Any integrations using alfalfa-client must be updated to use alfalfa-client 0.3.1 which includes updates to API calls for run administration.
Worker Updates
- Update Ubuntu from 18.04 to 20.04.
- Update Python from 3.6 to 3.7.
- Removed Python 2 entirely.
- Update EnergyPlus from 9.4.0 to 9.60.
- Update OpenStudio from 3.1.0 to 3.3.0.
- More granular run statuses, including error status. Status list defined in lib/run.py.
- Introduced Mocks and expanded test coverage.
- FMU and OSW runs now use same base class for timescale and external_clock runs.
Web Updates
- Update base image from Ubuntu 18.04 to Alpine 3.16.
- Webpack 5 upgrade
- Resolves all dependency vulnerabilities.
- Added REST API (/api/v2/*), with live documentation at /docs.
- Project Haystack API moved to namespace: (/haystack/*)
- Added LOGGING toggle to .env
- Fixes unexpected UI behavior bugs.
Deployment Updates
- Run logs scraped and browsable via Kibana.
What's Changed
- Release 0.2.0 by @anyaelena in #272
- Add in Log Stack (ELK) for docker-compose by @tijcolem in #285
- Bump moment from 2.26.0 to 2.29.2 in /alfalfa_web by @dependabot in #287
- Upgrade to Python 3.7 by @TShapinsky in #296
- upgrade IDFs to 9.6.0 by @nllong in #295
- 3 min timeout for warm up by @anyaelena in #298
- configure filebeat to harvest sim logs by @tijcolem in #300
- Bump pillow from 9.1.0 to 9.1.1 by @dependabot in #304
- Web Dependency Refactor by @axelstudios in #305
- Small tweaks to job refactor by @nllong in #306
- Don't Generate Precompressed Assets by @axelstudios in #307
- Alfalfa Job Refactor by @TShapinsky in #299
- Pin minio as workaround for #230. by @anyaelena in #309
- 0.3.0 Release by @anyaelena in #317
- Alfalfa REST API + Documentation by @axelstudios in #316
- Fix error handling during FMU time parsing by @TShapinsky in #315
- Fix Run Download Location for OpenStudio Runs by @TShapinsky in #318
- 0.3.0 Release by @anyaelena in #319
New Contributors
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Summary of updates
Worker:
- Install Spawn of EnergyPlus
- Alfalfa workers upgrade to PyFMI 2.9.5 and now use exclusively Python 3
- OS and FMU operations have improved separation
- Message to add a site now uses ‘model_name’ instead of ‘osm_name’ as a parameter
- FMU timestep updated to 60s.
- Timescale option now working for FMUs
Web:
- Resolved security vulnerabilities
- Windows compatible
- Isolated devDependencies
- Replaced deprecated Roboto dependency
- Localized Material Icons font
- ES6 refactor
- Reformat
- Added missing dependencies
- Replaced moment with luxon for tree shaking
- Replaced hardcoded browser targets with dynamic .browserslistrc
- Fixed invalid json
- Resolved all compilation warnings
Deployment:
- The alfalfa-helm repo now provides resources for deploying Alfalfa to Kubernetes.
What's Changed
- Print the error and traceback if worker dies during startup. by @anyaelena in #173
- lock version of poetry and force install nodejs by @nllong in #186
- Bump path-parse from 1.0.6 to 1.0.7 in /alfalfa_web by @dependabot in #184
- Bump browserslist from 4.13.0 to 4.16.6 in /alfalfa_web by @dependabot in #183
- Bump hosted-git-info from 2.8.8 to 2.8.9 in /alfalfa_web by @dependabot in #182
- Bump redis from 3.0.2 to 3.1.1 in /alfalfa_web by @dependabot in #180
- Bump ssri from 6.0.1 to 6.0.2 in /alfalfa_web by @dependabot in #179
- Bump y18n from 4.0.0 to 4.0.3 in /alfalfa_web by @dependabot in #187
- Bump lodash from 4.17.19 to 4.17.21 in /alfalfa_web by @dependabot in #181
- Update web dependencies by @kbenne in #190
- Bump aws-sdk from 2.715.0 to 2.814.0 in /alfalfa_web by @dependabot in #191
- Increase advance timeout to 1 minute by @kbenne in #193
- remove unused Dockerfile-test by @nllong in #215
- upgrade dependencies by @nllong in #214
- Support dev environment with docker-compose and docker by @nllong in #216
- rename docker-compose.historian.yml by @nllong in #217
- Break out files into worker fmu and worker openstudio folders by @nllong in #219
- move dbops.js out of generic lib folder by @nllong in #225
- Update copyrights and use prettier formatting pre-commit by @nllong in #226
- Remove .osm workflow from workers by @TShapinsky in #227
- rename osmName to modelName to support osm and fmu by @nllong in #223
- Update alfalfa-client branch by @nllong in #235
- Bump node-sass from 4.14.1 to 7.0.0 in /alfalfa_web by @dependabot in #232
- isort precommit by @nllong in #240
- Create dispatcher class by @nllong in #239
- Increase timeout for mlep to 1 min by @kbenne in #243
- Give E+ a minute to warm up. by @anyaelena in #246
- Remove redundant code in Alfalfa Workers by @TShapinsky in #244
- Update install commands for Spawn by @kbenne in #255
- Remove Python 2 by @TShapinsky in #251
- Web Refactor by @axelstudios in #267
- Bump ajv from 6.6.1 to 6.12.6 in /alfalfa_web by @dependabot in #269
- Main into develop by @anyaelena in #271
- Fixed datetime picker by @axelstudios in #277
- Add SuperLU with Sundials to fix spawn support by @TShapinsky in #278
- Bump paramiko from 2.9.2 to 2.10.1 by @dependabot in #281
- 263 fix fmutimescale by @anyaelena in #280
New Contributors
- @TShapinsky made their first contribution in #227
- @axelstudios made their first contribution in #267