Release Notes - GENeSYS-MOD.jl
v4.4.1
Released on 2026-06-25 - GitHub
Changes
🐛 Bug Fixes
v4.4.0
Released on 2026-06-19 - GitHub
Changes
Major update of the Julia version that brings both GAMS parity for a few features (errorchecking, rounding of non-crossover results) as well as some nice improvements, e.g. duckdb support. 🚀
- Feature: added the option to not only write, but also read a reduced timeseries file (e.g. for bugfixing the timeseries reduction script)
- Performance: faster dataload due to more efficient operations
- Feature: added errorchecks (as in GAMS version, but with even more checks 👍 ). User-determined switch to either disable them completely, have them force-quit as in GAMS, or just log to a .txt file (logging when errors occur always happens, as with the IIS file)
- Feature: rounding of processed results to 4 digits after the comma (equal to how GAMS does it) - this de-clutters results when crossover is disabled
- Feature [and a big one]: adding DuckDB support (https://duckdb.org/), which can be called with the switch_results_db switch. Off by default, but if enabled, all input data and results can be written into a single database (currently split into one for inputs, one for results) that can contain multiple runs, separated by extr_str_results. Essentially tries to replicate .gdx file behavior. DuckDB can be directly integrated in Tableau and has data compression (advantage to csv files that tend to get pretty big).
- Feature: add a user choice for SpecifiedDemand forecasting. This had been added as a default in GAMS and ported over to Julia, but forces the user to define growth rates for demand instead of just plugging SpecifiedAnnualDemand numbers for each year (those would get overwritten). So now, there is simply a switch for that to choose between endogenous forecasting or exogenous data.
- Fix: related to the DuckDB commit - there was a double use of the "Scenario" name in columns, so that was changed
- Fix: The test data Excel actually had some missing TradeRoutes etc. which caused it to fail with the new errorchecks enabled, so this has been updated accordingly. Only changes the optimal value by 0.006%.
- Two more fixes due to failing tests with the dispatch runs: a) do not run errorchecks on these, as the timeseries are not meant to sum up to one here; b) read in investments properly (did not fully read in the investment run capacities)
🚀 Features
v4.3.0
Released on 2026-06-13 - GitHub
GENeSYSMOD v4.3.0
Closed issues:
- [FEATURE] register v4.2.0 for performance improvements and GAMS alignment (#44)
v4.2.1: v4.3.0
Released on 2026-06-13 - GitHub
Changes
v4.2.0
Released on 2026-05-27 - GitHub
Changes
v4.1.1
Released on 2026-05-11 - GitHub
Changes
v4.1.0
Released on 2026-03-23 - GitHub
This release includes the code at the point of the JOSS paper release (openjournals/joss-reviews#9571).
Changes
v4.0.0
Released on 2026-01-17 - GitHub
GENeSYSMOD v4.0.0
Merged pull requests:
- Update datastructures.jl with concrete types for Sets (#2) (@mariok90)
- Update README.md (#5) (@dqpinel)
- Feature/results processing (#6) (@dqpinel)
- Dev dana (#8) (@danareu)
- missing change to previous commit (#9) (@dqpinel)
- small changes to certain function to speed up the runtime of the results processing (#10) (@dqpinel)
- Dev dana (#12) (@danareu)
- New Dispatch formulations (#13) (@dqpinel)
- Dev danar (#15) (@danareu)
- added issue templates to keep this in a uniform structure; also added release drafter workflow for release management :) (#19) (@loeffko)
- Implement Man0euvre data refresh changes from GAMS in Julia version (#21) (@dqpinel)
- Implement changes from MR #15 in the GAMS version to the Julia version (#24) (@dqpinel)
- Improvements to memory usage and minor improvements to runtime (#25) (@dqpinel)
- Fix peaking equations (#26) (@dqpinel)
- Julia implementation of changes brought by PR#22 in GAMS version (#28) (@dqpinel)
- run tests in CI and remove files after run (#29) (@dqpinel)
Closed issues:
- Minimum peaking capacity leads to infeasible results (#4)
- Implement missing sheets in dataread (#7)
- Handling of Negative Emission Technologies (e.g., P_Biomass_CCS) Incorrectly Constrained (#17)
- Update scenario_timeseries_reduction to handle new heat fuels (#18)
- [BUG] (#27)
- [FEATURE] [JOSS review] License is missing copyright holder (#30)
v4.0
Released on 2026-01-15 - GitHub
GENeSYS-MOD.jl v4.0
This marks the first official release of GENeSYS-MOD in Julia. 🎉 🚀 🥳
We are happy to now formally bring the Julia version for the Global Energy System Model (GENeSYS-MOD), in version 4.
All model functionality will be harmonized across the GAMS and Julia implementations (assuming similar major and minor versions - so 4.0.X of GENeSYS-MOD will be similar across both implementations, sub-versions might differ due to different publishing cycles).
The data will also be fully compatible across both GAMS and Julia, a system to ensure proper cross-referencing of data versions vs. model versions is currently in development.
Thanks for the interest in our model and we hope that you enjoy using it! 😄
With love,
the GENeSYS-MOD development team
Changes
- run tests in CI and remove files after run @dqpinel (#29)
- Julia implementation of changes brought by PR#22 in GAMS version @dqpinel (#28)
- Fix peaking equations @dqpinel (#26)
- Improvements to memory usage and minor improvements to runtime @dqpinel (#25)
- Implement changes from MR #15 in the GAMS version to the Julia version @dqpinel (#24)
- Dev danar @danareu (#15)
- Dev dana @danareu (#12)
- small changes to certain function to speed up the runtime of the results processing @dqpinel (#10)
- missing change to previous commit @dqpinel (#9)
- Dev dana @danareu (#8)
- Feature/results processing @dqpinel (#6)
- Update README.md @dqpinel (#5)
- Update datastructures.jl with concrete types for Sets @mariok90 (#2)
🚀 Features
- Implement Man0euvre data refresh changes from GAMS in Julia version @dqpinel (#21)
- added issue templates to keep this in a uniform structure; also added release drafter workflow for release management :) @loeffko (#19)
- New Dispatch formulations @dqpinel (#13)