Skip to content

Commit

Permalink
Merge pull request #25 from scipopt/prep-release-120
Browse files Browse the repository at this point in the history
Update dependencies & release v1.2.0
  • Loading branch information
hedtke authored May 21, 2024
2 parents 540f7f0 + 25a9b7f commit bb9f30d
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 11 deletions.
23 changes: 16 additions & 7 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
conan profile detect
conan profile detect --name debug
echo "&:build_type=Debug" >> $(conan profile path debug)
pushd ~/.conan2/profiles
sed -i 's/gnu17/17/g' *
popd
conan install -of . -pr debug -o with_tests=True .
- name: Run CMake
run: cmake --preset conan-debug -DUSE_COVERAGE=ON .
Expand Down Expand Up @@ -56,18 +59,18 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Install parallelism library for C++
run: sudo apt update && sudo apt install libtbb2
run: sudo apt update && sudo apt install libtbb12
- uses: MarkusJx/[email protected]
with:
boost_version: 1.81.0
boost_version: 1.84.0
- name: Install SCIP
run: |
wget https://github.com/scipopt/scip/releases/download/v803/SCIPOptSuite-8.0.3-Linux-ubuntu.sh
chmod +x SCIPOptSuite-8.0.3-Linux-ubuntu.sh
./SCIPOptSuite-8.0.3-Linux-ubuntu.sh --skip-license
wget https://github.com/scipopt/scip/releases/download/v901/SCIPOptSuite-9.0.1-Linux-ubuntu22.sh
chmod +x SCIPOptSuite-9.0.1-Linux-ubuntu22.sh
./SCIPOptSuite-9.0.1-Linux-ubuntu22.sh --skip-license
- name: Build SCIP++
run: |
CMAKE_PREFIX_PATH=./lib/cmake/scip:./boost/boost/lib/cmake/Boost-1.81.0 cmake -DBUILD_TESTS=ON .
CMAKE_PREFIX_PATH=./lib/cmake/scip:./boost/boost/lib/cmake/Boost-1.84.0 cmake -DBUILD_TESTS=ON .
make -j tests
- name: Run tests
run: ./test/tests
Expand All @@ -82,6 +85,9 @@ jobs:
- name: Run Conan Install
run: |
conan profile detect
pushd ~/.conan2/profiles
sed -i'' -e 's/gnu17/17/g' *
popd
conan install -of . -o with_tests=True .
- name: Run CMake
run: cmake --preset conan-release .
Expand All @@ -97,6 +103,9 @@ jobs:
- name: Run Conan Install
run: |
conan profile detect
pushd ~/.conan2/profiles
sed -i 's/gnu17/17/g' *
popd
conan install -of . .
- name: Create CMake Compilation Database
run: cmake --preset conan-release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
Expand All @@ -117,7 +126,7 @@ jobs:
- uses: actions/checkout@v3
- uses: ssciwr/doxygen-install@v1
with:
version: "1.9.6"
version: "1.10.0"
- uses: ts-graphviz/setup-graphviz@v1
- name: Prepare Doxygen Config
run: echo "PROJECT_NUMBER = ${GITHUB_REF}" >> Doxyfile
Expand Down
5 changes: 4 additions & 1 deletion changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased] - [Doc:Unreleased]

## [1.2.0] - 2024-05-21

### Changed

- [PR20](https://github.com/scipopt/SCIPpp/pull/20) `LinExpr` can be constructed from any arithmetic type without
Expand Down Expand Up @@ -61,7 +63,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
Initial release

[Doc:Unreleased]: https://scipopt.github.io/SCIPpp/
[Unreleased]: https://github.com/scipopt/SCIPpp/compare/1.1.0...main
[Unreleased]: https://github.com/scipopt/SCIPpp/compare/1.2.0...main
[1.2.0]: https://github.com/scipopt/SCIPpp/releases/tag/1.2.0
[1.1.0]: https://github.com/scipopt/SCIPpp/releases/tag/1.1.0
[1.0.2]: https://github.com/scipopt/SCIPpp/releases/tag/1.0.2
[1.0.1]: https://github.com/scipopt/SCIPpp/releases/tag/1.0.1
Expand Down
6 changes: 3 additions & 3 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,15 +67,15 @@ def set_version(self):
try:
self.version = git.run("describe --tags --dirty=-d").strip()
except:
self.version = "1.1.0"
self.version = "1.2.0"

def layout(self):
cmake_layout(self)

def requirements(self):
self.requires("scip/8.0.4", transitive_headers=True)
self.requires("scip/9.0.1", transitive_headers=True)
if self.options.with_tests:
self.requires("boost/[>=1.81.0 <2]") # required only for tests
self.requires("boost/[>=1.84.0 <2]") # required only for tests

def generate(self):
tc = CMakeToolchain(self)
Expand Down
4 changes: 4 additions & 0 deletions include/scippp/solving_statistics.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -172,9 +172,13 @@ static const Statistic<SCIP_Real> AVG_INFERENCE_SCORE_CURRENT_RUN { &SCIPgetAvgI
static const Statistic<SCIP_Real> AVG_CUTOFF_SCORE { &SCIPgetAvgCutoffScore };
//! average cutoff score value over all variables, only using the cutoff information of the current run
static const Statistic<SCIP_Real> AVG_CUTOFF_SCORE_CURRENT_RUN { &SCIPgetAvgCutoffScoreCurrentRun };
//! average normalized efficacy of a GMI cut over all variables
static const Statistic<SCIP_Real> AVG_G_M_IEFF { &SCIPgetAvgGMIeff };
//! total number of LPs solved so far
static const Statistic<SCIP_Real> DETERMINISTIC_TIME { &SCIPgetDeterministicTime };
//! total number of implications between variables that are stored in the implication graph
static const Statistic<int> N_IMPLICATIONS { &SCIPgetNImplications };
//! recomputes and returns the primal dual gap stored in the stats
static const Statistic<SCIP_Real> PRIMAL_DUAL_INTEGRAL { &SCIPgetPrimalDualIntegral };

}
14 changes: 14 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,17 @@ The model exposes
* `SCIPround` via `round(double)`, and
* `SCIPisZero` via `isZero(double)`

### Access Solving Statistics

Use the `Statistics<T>` objects from the header [solving_statistics.hpp](include/scippp/solving_statistics.hpp) to
access solving statistics in a type-safe way:

```cpp
...
model.solve();
auto pb { model.getSolvingStatistic(statistics::PRIMALBOUND) };
```
### Features Not Yet Supported
For features not yet supported by SCIP++, one can access the underlying raw SCIP object via
Expand Down Expand Up @@ -240,6 +251,9 @@ make tests
Use `gen_constexpr_parameters` to transform all SCIP parameters into constexpr `scippp::params::Param<T>` objects which
can be added to the `parameters.hpp` header.

Use `extract_solvingstats` to transform all SCIP methods that access solving statistics into static const
`scippp::statistics::Statistic<T>` objects which can be added to the `solving_statistics.hpp` header.

## Maintainer

This project is maintained by Ivo Hedtke `ivo (dot) hedtke (at) dbschenker (dot) com`.
Expand Down

0 comments on commit bb9f30d

Please sign in to comment.