Skip to content

Releases: NREL/alfalfa

v1.0.0

30 Sep 20:46
47284f7
Compare
Choose a tag to compare

This is the first major release of Alfalfa!

Alfalfa is now in a new phase of it's development. Now that the basic feature set is complete we will be pursuing more incremental updates (keeping up with OpenStudio releases, new Python Versions, etc). We are also planning on implementing more features requested by the community using Alfalfa, where time and resources allow.

What's Changed

  • Adopted new python energyplus API for runtime interaction by @TShapinsky in #541
  • GoAWS has been replaced by a Redis Queue
  • Replace BCVTB/ExternalInterface/MLEP with Energy Plus Python API for model interaction and remove MLEP Alfalfa codebase. by @TShapinsky in #541
  • Remove Alfalfa Ruby gem from Alfalfa codebase and utilize OpenStudio Alfalfa metadata parsing released with OpenStudio v3.9.0. See Documentation
  • Create test suite for different failure modes of pyeneregyplus to make sure cases are handled.
  • LOGLEVEL environment variable determines which logs are seen via stdout.
  • Remove Haystack dependency from modelica.
  • Add Framework for created stepped simulation jobs which have external processes which want to control the main thread.
  • Upgrade dependencies (excluding influxdb package).
  • Changes to docker environment to work better with kubernetes deployment by @TShapinsky in #546

Full Changelog: v0.7.1...v1.0.0

v0.7.1

12 Aug 19:47
ecb0fa2
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.7.0...v0.7.1

v0.7.0

28 Jun 23:19
0797a71
Compare
Choose a tag to compare

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

08 Aug 21:31
99540f3
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v0.5.1...v0.6.0

v0.5.1

03 Apr 16:48
82559bf
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.5.0...v0.5.1

v0.5.0

29 Mar 17:42
c91f054
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.4.1...v0.5.0

v0.4.1

15 Nov 18:52
055e493
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.4.0...v0.4.1

v0.4.0

30 Sep 18:30
c90d064
Compare
Choose a tag to compare

Worker Updates

  • Substantial upgrades to database interaction:
    • Move read/write operations of write arrays, curVal, and curStatus 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
  • 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 and writeVal.

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

Full Changelog: v0.3.0...v0.4.0

v0.3.0

30 Jun 20:37
f940fd5
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v0.2.0...v0.3.0

v0.2.0

31 Mar 22:14
6db8d2e
Compare
Choose a tag to compare

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:

What's Changed

New Contributors