Contribute to EnergyModelsFlex
Contributing to EnergyModelsFlex
can be achieved in several different ways.
File a bug report
An approach to contributing to EnergyModelsFlex
is through filing a bug report as an issue when unexpected behaviour is occuring.
When filing a bug report, please follow the following guidelines:
- Be certain that the bug is a bug and originating in
EnergyModelsFlex
:- If the problem is within the results of the optimization problem, please check first that the nodes are correctly linked with each other. Frequently, missing links (or wrongly defined links) restrict the transport of energy/mass. If you are certain that all links are set correctly, it is most likely a bug in
EnergyModelsFlex
and should be reported. - If the problem occurs in model construction, it is most likely a bug in either
EnergyModelsBase
orEnergyModelsFlex
and should be reported in the respective package. The error message of Julia should provide you with the failing function and whether the failing function is located inEnergyModelsBase
orEnergyModelsFlex
. It can occur, that the last shown failing function is withinJuMP
orMathOptInterface
. In this case, it is best to trace the error to the last calledEnergyModelsBase
orEnergyModelsFlex
function. - If the problem is only appearing for specific solvers, it is most likely not a bug in
EnergyModelsFlex
, but instead a problem of the solver wrapper forMathOptInterface
. In this case, please contact the developers of the corresponding solver wrapper.
- If the problem is within the results of the optimization problem, please check first that the nodes are correctly linked with each other. Frequently, missing links (or wrongly defined links) restrict the transport of energy/mass. If you are certain that all links are set correctly, it is most likely a bug in
- Label the issue as bug, and
- Provide a minimum working example of a case in which the bug occurs.
Feature requests
Feature requests for EnergyModelsFlex
should follow the guidelines developed for EnergyModelsBase
.
In general, new types or functionality are best tested by implementing them in a package in which they are required. In this case, if you believe that these new types or functionality may be relevant for several other packages, we ask you to create an issue with
- a link to the implementation,
- a description of its benefits, and
- ideas regarding the implementation.
It is crucial that provided tests work without having to load a different package. This can be achieved through types that are only introduced in the testsets.