Releases: GAMS-dev/gamspy
Releases · GAMS-dev/gamspy
v1.23.0
GAMSPy 1.23.0 (2026-04-27)
New features
- #795: Add support for RNN for TorchSequential.
- #796: Add Gated Recurrent Units (GRU) formulation.
Add support for GRU for TorchSequential. - #797: Support GAMS for statements via a context manager. The syntax is as follows: with gp.For(index, start, end, step, direction): ...
- #799: Implement projection and aggregation functions in gamspy.math module.
Improvements in existing functionality
- #722: Reset symbol records to its default values in case symbol.setRecords(None) is called.
- #796: Add dunder str method for all Neural network formulations.
Improved documentation
- #798: Add a note in the documentation about the requirement of CMU serif font to generate a pdf file with model.toLatex function.
CI/CD changes
- #791: Replace pip-audit with uv audit.
- #801: Use uv trixie slim images to avoid pulling bigger images than necessary.
Miscellaneous internal changes
- #795: Add tests for RNN in TorchSequential formulations.
- #796: Add new tests for GRU.
Add tests for GRU in TorchSequential formulations.
v1.22.0
GAMSPy 1.22.0 (2026-04-09)
New features
- #770: Add Recurrent Neural Networks (RNN) formulations.
- #787: Support "if" control structure of GAMS via gp.If context manager. Support "Break" and "Continue" via functions in gp.Loop.
Improvements in existing functionality
- #782: Import pandas and numpy lazily.
Bug fixes
- #792: UniverseAlias.records call now returns all previously registered elements in the universe instead of the labels of all the data in the container.
Improved documentation
- #789: Update the installation page for on-prem license server license installation.
Miscellaneous internal changes
- #770: Restructured neural network tests.
v1.21.0
GAMSPy 1.21.0 (2026-03-06)
New features
- #778: Support len operation on all symbols, and operations.
- #786: Support "loop" control structure of GAMS via gp.Loop context manager.
Improvements in existing functionality
- #773: Allow renaming the output of model.convert function.
- #775: Provide load_symbols explicitly when it's known in synch_with_gams calls.
- #779: Only unload the GDX library when the GAMS system directory changes.
- #783: Get rid of all suffixes if the input file to 'gamspy mps2gms' is a zip file (e.g. indus89.mps.gz). The output python file will be named indus89.py instead of indus89.mps.py.
- #785: Use model attributes to return the summary of the solve instead of parsing the trace file.
Bug fixes
- #784: Mitigate the issue of one environment affecting another on the same machine with package managers that keep a global cache (e.g. pixi).
v1.20.0
GAMSPy 1.20.0 (2026-02-18)
Improvements in existing functionality
- #765: Return FormulationResult instance for Neural Network formulations (pooling, convolution, and linear layers).
- #772: Allow specifying gdx and python files as an option in 'gamspy mps2gms' command. Add '--compress' option to 'gamspy mps2gms'.
Bug fixes
- #777: Fix model attribute updates for frozen models.
Improved documentation
- #764: Sync tabs in embed neural networks docs.
- #771: Add a FAQ entry about running model instances in MPS or LP format.
Dependencies
- #774: Upgrade gamspy_base and gamsapi dependency ranges.
Miscellaneous internal changes
- #768: Use pytest's tmp_path for tests instead of creating temp directories manually.
v1.19.3
GAMSPy 1.19.3 (2026-02-06)
Bug fixes
- #769: Revert the commit that causes a breaking change in the behaviour of container.loadRecordsFromGdx. If a symbol in the gdx file does not already exist in the container, create it automatically.
v1.19.2
GAMSPy 1.19.2 (2026-01-29)
Bug fixes
- #766: Fix the bug in literal validation where the domain set does not have any records.
v1.19.1
GAMSPy 1.19.1 (2026-01-28)
Bug fixes
- #763: Reverts breaking change in loadRecordsFromGdx that was released in 1.19.0.
v1.19.0
GAMSPy 1.19.0 (2026-01-27)
Improvements in existing functionality
- #763: Accept Path-like load_from argument in container.loadRecordsFromGdx function.
Bug fixes
- #763: Make loadRecordsFromGdx respect .synchronize attribute of symbols.
Improved documentation
- #752: Add more examples in API reference.
CI/CD changes
- #757: Replace pre-commit with prek.
Miscellaneous internal changes
- #725: Add a new example showing the usage of solution pools.
- #751: Add AGENTS.md file to guide coding agents.
- #756: Move dev, test and doc dependencies to depedency groups instead of optional dependencies.
- #758: Update the validation error message that is raised in case debugging_level is not set.
v1.18.4
GAMSPy 1.18.4 (2026-01-10)
Improvements in existing functionality
- #747: Remove DE, GAMSCHK, LOGMIP, and ODHCPLEX from the list of licensed solvers when running gamspy show license.
Improved documentation
- #755: Rewrite model and container user guides and improve api reference files across the board.
CI/CD changes
- #748: Automate releases on Github using GitHub Actions.
- #754: Cache uv and python downloads in the setup phase for subsequent jobs.
Miscellaneous internal changes
- #750: Add mcp12.py to the test models.
1.18.3
GAMSPy 1.18.3 (2025-12-19)
New features
- #712: Integrate mps2gms to gamspy cli.
Improvements in existing functionality
- #730: Read the values of most model attributes from the trace file. Lazily read others if requested.
- #740: Improve the alignment of constraints in the result of model.toLatex call.
Bug fixes
- #742: Do not perform definition valiation on MPSGE equations since they are generated on the GAMS side.
- #743: Use gp.Number instead of a Python variable in nonbinding equations of MCP models.
- #745: Retrieve universe alias name from stack in case it's not provided instead of autogenerating a name.