Releases: green-coding-solutions/eco-ci-energy-estimation
v4 Release
Important: First of all thanks to our many contributors for this new version ❤️
New features
-
Eco-CI is now greatly reduced in overhead. Most of the changes we describe in the pre-release notes.
- The footrpint is greatly reduced from > 200 MB to < 1 MB
- The overhead is reduced from ~ 20 seconds to almost zero due to pre-calculation of the power profiles
-
Eco-CI is now compatible with the new GMT endpoint format
/v2/ci/measurement/add
- This is mostly an internal change, but allows you to use CarbonDB 2.0
What's Changed
- Update to cache@v4 by @jan-kiszka in #71
- Changes the ip resolver from ip-api.com to ipapi.com because of https by @ribalba in #78
- Pre calculated Machine energy profiles by @ArneTR in #76
- Better overhead and api by @ArneTR in #83
- api-base is now github.api_url by default by @ArneTR in #82
- Bump actions/checkout from 3 to 4 in /.github/workflows by @dependabot in #93
- Bump actions/setup-node from 3 to 4 in /.github/workflows by @dependabot in #94
- Update overhead_test.yml by @ribalba in #90
- Fix indentation of display-results task by @ceddlyburge in #98
- Testing CarbonDB 2.0 by @ArneTR in #100
- Microseconds microgramm by @ArneTR in #101
- Electricitymaps unified by @ArneTR in #102
- Alpine requires coreutils to get timestamp in microseconds by @davidkopp in #104
New Contributors
- @jan-kiszka made their first contribution in #71
- @dependabot made their first contribution in #93
- @ceddlyburge made their first contribution in #98
- @davidkopp made their first contribution in #104
Full Changelog: v3.1...v4.0.0
Minor bug fixing release
v4.0-rc3 Pre-Calculated, low dependency & SCI Embodied Carbon
The functionality of Eco-CI has been rewritten down to it's core.
Although the general concept is still the same (we use Cloud Energy to generate power data based in CPU utilization) we dropped a humongous amount of dependencies and shaved off almost 100x in terms of overhead.
It looks pretty stable in our initial tests on different GitHub machines, still we are releasing this as a release candidate for now
Key facts and architectural changes:
- Cloud Energy power curves are now pre-calculated in bash variable file instead of dynamically inferenced
python3
dependecy dropped. We are using pure bash nowbc
dependency dropped. We are usingawk
now, which was a depency beforehand alreadygo
dependency dropped. The graph functionality has simply been removed. It was a nice gimmick but provided very few actionable insights- Caching dropped. There is simply nothing anymore to cache :)
- Support of ARM runners added implicitly
- Support for Ubuntu 20.04 added implicitly
- Overhead reduced from 23s for initial download and ML training step to 200ms for bash inferencing on pre-calculated files
- Embodied carbon has been added to truly output an SCI score. Before it was using a fixed constant
We also changed the API with the intent to simplify it. Please note that these changes might be breaking changes, depending on the complexity of your integration.
GitHub breaking Changes
json-output
in stepdisplay-results
must be actively set to 'true' to enable creating the JSON filesbranch
must only be submitted one instart-measurement
and not in every call toget-measurement
send-data
must only be submitted one instart-measurement
and not in every call toget-measurement
show-carbon
has been renamed tocalculate-co2
to better reflect that actual compute work is doneapi-base
has been renamed togh-api-base
to not confuse with the dashboard api base if you want to host a data drain yourselfmachine-uuid
is now a MUST to be specified. It will not be auto generated anymoremachine-uuid
,company-uuid
andproject-uuid
must only be submitted one instart-measurement
and not in every call toget-measurement
GitLab changes
ECO_CI_JSON_OUTPUT
environment variable must be exported with value 'true' to enable creating JSON filesinitialize_energy_estimator
is not existent anymore. The functionality has been merged intostart_measurement
to simplify the APIECO_CI_MACHINE_UUID
is now a MUST to be specified. It will not be auto generated anymore
What's Changed
- Update to cache@v4 by @jan-kiszka in #71
- Changes the ip resolver from ip-api.com to ipapi.com because of https by @ribalba in #78
- Pre calculated Machine energy profiles by @ArneTR in #76
- Better overhead and api by @ArneTR in #83
- api-base is now github.api_url by default by @ArneTR in #82
New Contributors
- @jan-kiszka made their first contribution in #71
Full Changelog: v3.1...v4.0-rc1
v3.1 SCI remarks and styling
No new functionality. Just the CO2eq output is now marked as SCI.
Also links to https://greensoftware.foundation/articles/use-case-automated-sci-measurements-with-green-metrics-tool and to electricitymaps for clarification that we use location based grid intensity
v3.0 - CO2 and grid location intensity data
v2.10
What's Changed
- Adding time to total-data.json and lap-data.json by @nstruharova in #60
Full Changelog: v2...v2.10
Gitlab Integration
Eco-CI is now available for Gitlab pipelines. Instructions on how to use with Gitlab projects can be found in the readme.
Improved front end here: https://metrics.green-coding.berlin/ci-index.html
Bugfixes:
- Corrected RAM values for the XGBoost Model (they did not account for vhost ratio). If you notice different (likely higher) energy values from your pipelines than what you had before, this is likely the reason why. They should be more accurate now.
- Correctly reset venv for python projects in pipelines when running XGBoost model, if such a virtual environment was present.
v2.9
New Features
- added support for Intel Core i9-9880H (thanks @nstruharova !)
Tweaks
- if vhost-ratio is not set, model will run without this input parameter
- changed references from green-coding-berlin -> green-coding-solutions
Updated references from green-coding.berlin to green-coding.io
All references and endpoints have been updated from .berlin -> .io
Configurable github api + better PR formatting
-
you can now set a custom api url, for all github enterprise users. By default, this is set to 'api.github.com', but you can set it to something different for github api calls
-
cleaner looking formatting in minimized comments in PR's