Code contributions are very welcome and should comply to a few rules:
For general reference, we suggest:
If you find this contributing guide unclear, please open an issue! :)
CHANGELOG
src/pyscipopt/__init__.py
according to semantic versioninggit tag vX.Y.Z
git push
&& git push --tags
A new PyPI package is automatically created by the Travis build job when pushing a new tag onto the master and the version has been increased. Also the documentation is autmatically created in the process.
PySCIPOpt is meant to be a fast-prototyping interface of the pure SCIP C API. By design, we distinguish different functions in PySCIPOPT:
PySCIPOpt wrappers of SCIP functions should act:
Ideally speaking, we want every SCIP function to be wrapped in PySCIPOpt.
Convenience functions are additional, non-detrimental features meant to help prototyping the Python way. Since these functions are not in SCIP, we wish to limit them to prevent difference in features between SCIP and PySCIPOPT, which are always difficult to maintain. A few convenience functions survive in PySCIPOpt when keeping them is doubtless beneficial.
Admittedly, there is a middle ground where functions are not completely wrappers or just convenient. That is the case, for instance, of fundamental Model
{.sourceCode} methods like addCons
{.sourceCode} or writeProblem
{.sourceCode}. We want to leave their development to negotiation.