v4.0 Carbon Simulation, Grid Intensity Dynamic, Simple Compare, Measurement Phase Padding Improvements and Cluster Improvements
Another major release this year :)
This mid-summer release brings some totally new features, but also big QoL, Cluster and Analytics improvements.
Highlights at a glance
- Carbon Simulation / Elephant
- GMT now includes it's own carbon intensity backend called Elephant
- It builds a full carbon simulation frontend on top of it
- Different providers for ElectricityMaps, Static, SMARD etc. are now included as metrics providers to make runs with dynamic carbon intensity
- Grid Intensity is now displayed as a key metric in the frontend
- GMT Development is now Agentic AI ready
- #1520
- Simple Compare Table View to even compare different scenarios on different machines or multiple runs quickly in table view
- Multiple Detail Names now aggregate in key metrics if possible
- Phase Padding is now more exact and not MAX of all sample rates anymore but only the next tick of the sample of the individual metric provider
- This provides sightly more accurate results for very heterogenous sampling rates with differences of 50 ms or more. An edge case, but if you have it this is a BIG feature :)
Cluster Features:
- Added System logs to DB and frontend - No more email errors
- Settings watcher
- Docker login encryption
- HTTP Auth encryption and frontend pruning
What's Changed
- Updating AGENTS.md for all subdirectories to allow agentic AI development by @ArneTR in #1660
- (feat): DEV switch to turn off resource limits adding for containers by @ArneTR in #1663
- Bump cryptography from 46.0.5 to 47.0.0 by @dependabot[bot] in #1662
- Changing import of optimzations to happen earlier for efficiency reasons by @ArneTR in #1659
- Decrypt only on request by @ArneTR in #1658
- wrong value was saved by @ribalba in #1664
- Makes the get_private_key return a secure variable per default. by @ribalba in #1665
- Adds the first version of the yearly view by @ribalba in #1666
- Bump psycopg-pool from 3.3.0 to 3.3.1 by @dependabot[bot] in #1669
- Bump cachetools from 7.0.6 to 7.1.1 by @dependabot[bot] in #1668
- Bump psycopg from 3.3.3 to 3.3.4 by @dependabot[bot] in #1667
- Bump cryptography from 47.0.0 to 48.0.0 by @dependabot[bot] in #1670
- Cpu frequency MSR provider by @ArneTR in #1674
- Bump pydantic from 2.13.3 to 2.13.4 by @dependabot[bot] in #1672
- Bump orjson from 3.11.8 to 3.11.9 by @dependabot[bot] in #1673
- Bump gunicorn from 25.3.0 to 26.0.0 by @dependabot[bot] in #1671
- makes the GMT run under windows without WSL by @ribalba in #1648
- Bump requests from 2.33.1 to 2.34.0 by @dependabot[bot] in #1675
- Bump pandas from 3.0.2 to 3.0.3 by @dependabot[bot] in #1676
- Playwright headful by @ArneTR in #1679
- Compare Dropdown will not reflow when being shown by @ArneTR in #1682
- Bump uvicorn from 0.46.0 to 0.47.0 by @dependabot[bot] in #1680
- Bump requests from 2.34.0 to 2.34.2 by @dependabot[bot] in #1681
- (feat): Reboot machine after certain intervals by @ArneTR in #1684
- Adds more features to the windows part and fixes tmp path by @ribalba in #1688
- Bump deepdiff from 9.0.0 to 9.1.0 by @dependabot[bot] in #1687
- Elephant by @ArneTR in #1520
- Bump cachetools from 7.1.1 to 7.1.2 by @dependabot[bot] in #1686
- (feat): Grid Intensity is now a key metric by @ArneTR in #1696
- (feat): Git API does not flake anymore on 403 Rate Limiting, but only sends warning to admin by @ArneTR in #1698
- (feat): Introducing warnings for dynamic undersampling. by @ArneTR in #1699
- Fixing tests by @ribalba in #1697
- Update starlette requirement from >=1.0.0 to >=1.1.0 by @dependabot[bot] in #1694
- Bump fastapi from 0.136.1 to 0.136.3 by @dependabot[bot] in #1693
- Bump python from 3.14.3-slim-bookworm to 3.14.5-slim-bookworm in /docker by @dependabot[bot] in #1700
- Bump cachetools from 7.1.2 to 7.1.4 by @dependabot[bot] in #1690
- Bump uvicorn from 0.47.0 to 0.48.0 by @dependabot[bot] in #1695
- Bump redis from 7.4.0 to 8.0.0 by @dependabot[bot] in #1703
- simple compare table by @ribalba in #1702
- Fixes the colouring when rounded values are displayed in compare by @ribalba in #1706
- Update starlette requirement from >=1.1.0 to >=1.2.1 by @dependabot[bot] in #1707
- Fixes tests under Mac by @ribalba in #1701
- Bump aiohttp from 3.13.5 to 3.14.0 by @dependabot[bot] in #1708
- Bump owenthereal/action-upterm from 1.14.0 to 1.15.0 in /.github/actions/gmt-pytest by @dependabot[bot] in #1712
- Bump uvicorn from 0.48.0 to 0.49.0 by @dependabot[bot] in #1710
- Image Pruning Fix by @ArneTR in #1705
- Tries to fix the random ip issue under MacOs by @ribalba in #1714
- Bump hiredis from 3.3.1 to 3.4.0 by @dependabot[bot] in #1711
- Bump tqdm from 4.67.3 to 4.68.1 by @dependabot[bot] in #1715
- Bump aiohttp from 3.14.0 to 3.14.1 by @dependabot[bot] in #1716
- Bump cryptography from 48.0.0 to 48.0.1 by @dependabot[bot] in #1718
- Bump tqdm from 4.68.1 to 4.68.2 by @dependabot[bot] in #1719
- (feat): Shell sub-calls in GMT now error out by @ArneTR in #1720
- (feat): Allowing to deeplink compare table by @ArneTR in #1722
- (feat): Custom metrics can be any unit by @ArneTR in #1728
- (feat): Reboot happens now always on package update by @ArneTR in #1729
- Bump fastapi from 0.136.3 to 0.137.0 by @dependabot[bot] in #1724
- Bump cryptography from 48.0.1 to 49.0.0 by @dependabot[bot] in #1725
- Bump pytest from 9.0.3 to 9.1.0 by @dependabot[bot] in #1727
- Bump fastapi from 0.137.0 to 0.137.1 by @dependabot[bot] in #1730
- Bump pylint from 4.0.5 to 4.0.6 by @dependabot[bot] in #1726
- Update starlette requirement from >=1.2.1 to >=1.3.1 by @dependabot[bot] in #1723
- Bump tqdm from 4.68.2 to 4.68.3 by @dependabot[bot] in #1735
- Bump fastapi from 0.137.1 to 0.137.2 by @dependabot[bot] in #1736
- Added Carbon Simulation call also to test function loop by @ArneTR in #1731
- Bump python from 3.14.5-slim-bookworm to 3.14.6-slim-bookworm in /docker by @dependabot[bot] in #1733
- Allow users to update their ssh private keys (migration script) by @davidkopp in #1734
- Bump fastapi from 0.137.2 to 0.138.0 by @dependabot[bot] in #1737
- Bump pytest from 9.1.0 to 9.1.1 by @dependabot[bot] in #1738
- (fix): Creating carbon values for all componnents by @ArneTR in #1717
- Bump redis from 8.0.0 to 8.0.1 by @dependabot[bot] in #1742
- Software endpoint by @ArneTR in #1709
- (feat): Added System logs to DB and frontend and error handling by @ArneTR in #1746
- Submit software and keep values by @ribalba in #1745
- Bump actions/cache from 5 to 6 in /.github/actions/gmt-pytest by @dependabot[bot] in #1743
- Bump actions/checkout from 6 to 7 in /.github/workflows by @dependabot[bot] in #1741
- (improvement): No need to iterate over cards by @ArneTR in #1747
- Bump fastapi from 0.138.0 to 0.138.1 by @dependabot[bot] in #1748
- Bump pandas from 3.0.3 to 3.0.4 by @dependabot[bot] in #1750
- Adds a simple dropdown to filter job status by @ribalba in #1751
- Bump fastapi from 0.138.1 to 0.138.2 by @dependabot[bot] in #1752
- Giving more precise warning if private repository is supplied but no … by @ArneTR in #1753
- Bump fastapi from 0.138.2 to 0.139.0 by @dependabot[bot] in #1754
- (feat): Masked authentication token on input by @ArneTR in #1758
- Bump uvicorn from 0.49.0 to 0.50.0 by @dependabot[bot] in #1760
- Drawing Changelog Markline at actual point in time - Between data measurements by @ArneTR in #1761
- Deleting cancelled jobs by @ArneTR in #1744
- (feat): ErrorLog and Email Stream filter to redact HTTP-AUTH and PRivate Keys by @ArneTR in #1759
- (feat): Multiple Detail Names now aggregate in key metrics if possible by @ArneTR in #1749
- (fix): Overflow when computing weighted average. Swapping to early cast for anyway used Double Precision by @ArneTR in #1762
- Bump uvicorn from 0.50.0 to 0.50.2 by @dependabot[bot] in #1763
- Bump tqdm from 4.68.3 to 4.68.4 by @dependabot[bot] in #1765
- Bringing Kaniko to latest branch again by @ArneTR in #1766
- Bump uvicorn from 0.50.2 to 0.51.0 by @dependabot[bot] in #1767
- Settings watcher by @ArneTR in #1755
- Adds the phase to the url of the simple compare by @ribalba in #1768
- Docker login encryption and submitted jobs URI encryption by @ArneTR in #1756
- (feat): Reworked phase padding by @ArneTR in #1764
- (feat): CPU undersampling gated by not allowing more than 10ms sampling rate by @ArneTR in #1769
- (fix): Test path used unstable regex by @ArneTR in #1772
- Enable co2 config by @ribalba in #1773
- Upgrading postgres memory parameters to 8 GB reasonable machine by @ArneTR in #1775
- (rework): CarbonDB worker jobs now use 60 day window; Optimized backfill queries by @ArneTR in #1776
- (fix): Phase padding will only happen if phase had at least one sampl… by @ArneTR in #1777
- Bump docker from 7.1.0 to 7.2.0 by @dependabot[bot] in #1771
Full Changelog: v3.0...v3.1