Skip to content

Commit

Permalink
[MERGE] Merge branch 'release/1.5.0' into 'master'
Browse files Browse the repository at this point in the history
Release 1.5.0

See merge request devel/gamspy!564
  • Loading branch information
mbussieck committed Jan 14, 2025
2 parents f7e87bd + f161ad9 commit fec6682
Show file tree
Hide file tree
Showing 60 changed files with 4,316 additions and 1,395 deletions.
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,26 @@
GAMSPy CHANGELOG
================

GAMSPy 1.5.0
------------
- General
- Fix implicit parameter validation bug.
- Allow the usage of Container as a context manager.
- Allow propagating bounds to the output variable in `flatten_dims` method.
- Add piecewise linear function formulations.
- Migrate GAMSPy CLI to Typer.
- Threads can now create a container since we register the signal only to the main thread.
- Fix solver options bug in frozen solve.
- Synchronize after read.
- Upgrade gamspy_base and gamsapi dependencies.
- Add `--checkout-duration` and `--renew` options to `gamspy install license`.
- Testing
- Lower the number of dices in the interrupt test and put a time limit to the solve.
- Add tests for piecewise linear functions.
- Documentation
- Install dependencies in the first cell of the example transportation notebook.
- Add Formulations page to list piecewise linear functions and nn formulations.

GAMSPy 1.4.0
------------
- General
Expand All @@ -17,6 +37,7 @@ GAMSPy 1.4.0
- Remove non-negative variable type from the docs.
- Add plausible.js for analytics.
- Minor update in embedding nn documentation.
- Add descriptions and example code to formulations documentation.


GAMSPy 1.3.1
Expand Down
98 changes: 1 addition & 97 deletions docs/_static/switcher.json
Original file line number Diff line number Diff line change
@@ -1,97 +1 @@
[
{
"name": "latest",
"version": "latest",
"url": "https://gamspy.readthedocs.io/en/latest/"
},
{
"name": "1.4.0 (stable)",
"version": "v1.4.0",
"url": "https://gamspy.readthedocs.io/en/v1.4.0/"
},
{
"name": "1.3.1",
"version": "v1.3.1",
"url": "https://gamspy.readthedocs.io/en/v1.3.1/"
},
{
"name": "1.3.0",
"version": "v1.3.0",
"url": "https://gamspy.readthedocs.io/en/v1.3.0/"
},
{
"name": "1.2.0",
"version": "v1.2.0",
"url": "https://gamspy.readthedocs.io/en/v1.2.0/"
},
{
"name": "1.1.0",
"version": "v1.1.0",
"url": "https://gamspy.readthedocs.io/en/v1.1.0/"
},
{
"name": "1.0.4",
"version": "v1.0.4",
"url": "https://gamspy.readthedocs.io/en/v1.0.4/"
},
{
"name": "1.0.3",
"version": "v1.0.3",
"url": "https://gamspy.readthedocs.io/en/v1.0.3/"
},
{
"name": "1.0.2",
"version": "v1.0.2",
"url": "https://gamspy.readthedocs.io/en/v1.0.2/"
},
{
"name": "1.0.1",
"version": "v1.0.1",
"url": "https://gamspy.readthedocs.io/en/v1.0.1/"
},
{
"name": "1.0.0",
"version": "v1.0.0",
"url": "https://gamspy.readthedocs.io/en/v1.0.0/"
},
{
"name": "0.14.7",
"version": "v0.14.7",
"url": "https://gamspy.readthedocs.io/en/v0.14.7/"
},
{
"name": "0.14.6",
"version": "v0.14.6",
"url": "https://gamspy.readthedocs.io/en/v0.14.6/"
},
{
"name": "0.14.5",
"version": "v0.14.5",
"url": "https://gamspy.readthedocs.io/en/v0.14.5/"
},
{
"name": "0.14.4",
"version": "v0.14.4",
"url": "https://gamspy.readthedocs.io/en/v0.14.4/"
},
{
"name": "0.14.3",
"version": "v0.14.3",
"url": "https://gamspy.readthedocs.io/en/v0.14.3/"
},
{
"name": "0.14.2",
"version": "v0.14.2",
"url": "https://gamspy.readthedocs.io/en/v0.14.2/"
},
{
"name": "0.14.1",
"version": "v0.14.1",
"url": "https://gamspy.readthedocs.io/en/v0.14.1/"
},
{
"name": "0.14.0",
"version": "v0.14.0",
"url": "https://gamspy.readthedocs.io/en/v0.14.0/"
}
]
[{"name": "latest", "version": "latest", "url": "https://gamspy.readthedocs.io/en/latest/"}, {"name": "1.5.0 (stable)", "version": "v1.5.0", "url": "https://gamspy.readthedocs.io/en/v1.5.0/"}, {"name": "1.4.0", "version": "v1.4.0", "url": "https://gamspy.readthedocs.io/en/v1.4.0/"}, {"name": "1.3.1", "version": "v1.3.1", "url": "https://gamspy.readthedocs.io/en/v1.3.1/"}, {"name": "1.3.0", "version": "v1.3.0", "url": "https://gamspy.readthedocs.io/en/v1.3.0/"}, {"name": "1.2.0", "version": "v1.2.0", "url": "https://gamspy.readthedocs.io/en/v1.2.0/"}, {"name": "1.1.0", "version": "v1.1.0", "url": "https://gamspy.readthedocs.io/en/v1.1.0/"}, {"name": "1.0.4", "version": "v1.0.4", "url": "https://gamspy.readthedocs.io/en/v1.0.4/"}, {"name": "1.0.3", "version": "v1.0.3", "url": "https://gamspy.readthedocs.io/en/v1.0.3/"}, {"name": "1.0.2", "version": "v1.0.2", "url": "https://gamspy.readthedocs.io/en/v1.0.2/"}, {"name": "1.0.1", "version": "v1.0.1", "url": "https://gamspy.readthedocs.io/en/v1.0.1/"}, {"name": "1.0.0", "version": "v1.0.0", "url": "https://gamspy.readthedocs.io/en/v1.0.0/"}, {"name": "0.14.7", "version": "v0.14.7", "url": "https://gamspy.readthedocs.io/en/v0.14.7/"}, {"name": "0.14.6", "version": "v0.14.6", "url": "https://gamspy.readthedocs.io/en/v0.14.6/"}, {"name": "0.14.5", "version": "v0.14.5", "url": "https://gamspy.readthedocs.io/en/v0.14.5/"}, {"name": "0.14.4", "version": "v0.14.4", "url": "https://gamspy.readthedocs.io/en/v0.14.4/"}, {"name": "0.14.3", "version": "v0.14.3", "url": "https://gamspy.readthedocs.io/en/v0.14.3/"}, {"name": "0.14.2", "version": "v0.14.2", "url": "https://gamspy.readthedocs.io/en/v0.14.2/"}, {"name": "0.14.1", "version": "v0.14.1", "url": "https://gamspy.readthedocs.io/en/v0.14.1/"}, {"name": "0.14.0", "version": "v0.14.0", "url": "https://gamspy.readthedocs.io/en/v0.14.0/"}]
99 changes: 30 additions & 69 deletions docs/cli/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ gamspy
======

GAMSPy comes with a command-line interface (CLI) to allow users to
easily install solvers, licenses and much more.
easily install solvers, licenses and much more. Autocompletion can be
installed for the current shell with `--install-completion`.

.. list-table::
:widths: 20 20 20 40
Expand All @@ -24,84 +25,44 @@ easily install solvers, licenses and much more.
- -v
-
- Shows the version of GAMSPy, GAMS and gamspy_base
* - -\-install-completion
-
-
- Install completion for the current shell.
* - -\-show-completion
-
-
- Show completion for the current shell, to copy it or customize the installation.

Example
-------

Example: ::
Show help message::

$ gamspy --help
usage: gamspy [-h] [-v]
gamspy install license <access_code> or <path/to/license/file> [--uses-port <port>]
gamspy uninstall license
gamspy install solver <solver_name> [--skip-pip-install] [--existing-solvers] [--install-all-solvers]
gamspy uninstall solver <solver_name> [--skip-pip-uninstall] [--uninstall-all-solvers]
gamspy list solvers [--all]
gamspy show license
gamspy show base
gamspy probe [-j <json_output_path>]
gamspy retrieve license <access_code> [-i <json_file_path>] [-o <output_path>]
gamspy run miro [--path <path_to_miro>] [--model <path_to_model>]
Usage: gamspy [OPTIONS] COMMAND [ARGS]...

GAMSPy CLI

options:
-h, --help show this help message and exit
-v, --version Shows the version of GAMSPy, GAMS and gamspy_base

gamspy install license <access_code> or <path/to/license/file>:
Options for installing a license.

--uses-port USES_PORT
Interprocess communication starting port.

gamspy uninstall license:
Command to uninstall user license.

gamspy install solver <solver_name>:
Options for installing solvers

--skip-pip-install, -s
If you already have the solver installed, skip pip install and update gamspy installed solver list.

gamspy uninstall solver <solver_name>:
Options for uninstalling solvers

--skip-pip-uninstall, -u
If you don't want to uninstall the package of the solver, skip uninstall and update gamspy installed solver list.

gamspy list solvers:
`gamspy list solvers` options

-a, --all Shows all available solvers.

gamspy probe:
`gamspy probe` options

--json-out JSON_OUT, -j JSON_OUT
Output path for the json file.

gamspy retrieve license <access_code>:
`gamspy retrieve license` options

--output OUTPUT, -o OUTPUT
Output path for the license file.
--input INPUT, -i INPUT
json file path to retrieve a license based on node information.

gamspy run miro:
`gamspy run miro` options
Options:
-h, --help Show this message and exit.
-v, --version Shows the version of GAMSPy, GAMS and gamspy_base

-g MODEL, --model MODEL
Path to the gamspy model
-m {config,base,deploy}, --mode {config,base,deploy}
Execution mode of MIRO
-p PATH, --path PATH Path to the MIRO executable (.exe on Windows, .app on macOS or .AppImage on Linux)
--skip-execution Whether to skip model execution
Commands:
install To install licenses and solvers.
list To list solvers.
probe To probe node information for license retrieval.
retrieve To retrieve a license with another node's information.
run To run your model with GAMS MIRO.
show To show your license and gamspy_base directory.
uninstall To uninstall licenses and solvers.

::
Show version information::

$ gamspy --version
GAMSPy version: 0.14.6
GAMS version: 47.4.1
gamspy_base version: 47.4.1
GAMSPy version: 1.4.0
GAMS version: 48.5.0
gamspy_base version: 48.5.0

List of Commands
----------------
Expand Down
85 changes: 58 additions & 27 deletions docs/cli/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@ gamspy install

Installs add-on solvers or a license to the GAMSPy installation.

Install License
-------------

Installs a new license using either an access code or a license file.

Usage
-----
~~~~~

::

gamspy install solver <solver_name(s)> [OPTIONS]
gamspy install license <access_code>|<path/to/license/file> [OPTIONS]

.. list-table::
:widths: 20 20 20 40
Expand All @@ -20,33 +25,41 @@ Usage
- Short
- Default
- Description
* - -\-skip-pip-install
- -s
-
- Skips the pip install command in case the package was manually installed.
* - -\-install-all-solvers
-
-
- Installs all add-on solvers.
* - -\-existing-solvers
-
* - -\-uses-port
-
- Installs add-on solvers that were previously installed with an older version of gamspy.
- None
- Interprocess communication starting port. Only relevant for local licenses that restrict concurrent use of GAMSPy.
* - -\-renew
- -r
- None
- Specify a file path to a license file to extend a session.
* - -\-checkout-duration
- -c
- None
- Specify a duration in hours to checkout a session.

Example 1: ::
Examples
~~~~~~~~

$ gamspy install solver mosek conopt xpress
Install using access code::

Example 2: ::
$ gamspy install license 876e5812-1222-4aba-819d-e1e91b7e2f52

$ gamspy install solver --install-all-solvers
Install using license file::

$ gamspy install license /home/joe/gamslice.txt

Install Solver
-------------

Installs one or more solvers to the GAMSPy installation.

Usage
-----
~~~~~

::

gamspy install license <access_code>|<path/to/license/file> [OPTIONS]
gamspy install solver [solver_name(s)] [OPTIONS]

.. list-table::
:widths: 20 20 20 40
Expand All @@ -56,16 +69,34 @@ Usage
- Short
- Default
- Description
* - -\-uses-port
- -u
- 33333
- Interprocess communication starting port. Only relevant for local licenses that restrict concurrent use of GAMSPy.
* - -\-skip-pip-install
- -s
- False
- If you already have the solver installed, skip pip install and update gamspy installed solver list.
* - -\-install-all-solvers
-
- False
- Installs all available add-on solvers.
* - -\-existing-solvers
-
- False
- Reinstalls previously installed add-on solvers.

Examples
~~~~~~~~

Example: ::
Install specific solvers::

$ gamspy install license 876e5812-1222-4aba-819d-e1e91b7e2f52
$ gamspy install solver mosek conopt xpress

::
Install all available solvers::

$ gamspy install license /home/joe/gamslice.txt
$ gamspy install solver --install-all-solvers

Reinstall previously installed solvers::

$ gamspy install solver --existing-solvers

Skip pip installation::

$ gamspy install solver mosek -s
Loading

0 comments on commit fec6682

Please sign in to comment.