Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to disable all non-root presolve #2195

Merged
merged 245 commits into from
Feb 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
245 commits
Select commit Hold shift + click to select a range
2130896
fix compiler warnings
svigerske Dec 21, 2024
18c62a8
Merge pull request #2092 from ERGO-Code/fix-warnings
svigerske Dec 22, 2024
2c56144
submit changes necessary for cran
FlorianSchwendinger Dec 25, 2024
afce155
Update FEATURES.md
jajhall Jan 1, 2025
f7e3f15
Merge branch 'master' into latest
jajhall Jan 1, 2025
a2114b0
explicit c++11 in cmake
galabovaa Jan 2, 2025
ca1b739
explicit c++11 in cmake
galabovaa Jan 2, 2025
fc0d251
Merge pull request #2098 from ERGO-Code/cmake-cxx11
galabovaa Jan 2, 2025
67f4b7b
Now passing HighsLp::offset_ into IPX::Model::offset_
jajhall Jan 5, 2025
8ba0572
IPX now uses the LP offset
jajhall Jan 5, 2025
c16e22d
Given a basis, now performing presolve unless solver is simplex or ch…
jajhall Jan 5, 2025
ba539e0
Added getBasicVariables to highspy
jajhall Jan 5, 2025
6889c0d
Merge pull request #2100 from ERGO-Code/fix-2087
jajhall Jan 5, 2025
bafb26d
Added getBasisSolve and getBasisTransposeSolve (with sparse variants)…
jajhall Jan 5, 2025
72ce723
Added getBasisInverseCol and getBasisInverseRow plus sparse variants …
jajhall Jan 5, 2025
89821af
Added getReducedRow and getReducedColumn and sparse variants to highspy
jajhall Jan 5, 2025
901def0
Updated FEATURES.md and comments in Highs.h relating to forming rays
jajhall Jan 5, 2025
36f4f5d
Added getDualRay, getDualUnboundednessDirection and getPrimalRay to h…
jajhall Jan 5, 2025
3fa558e
Added methods to get primal/dual ray and dual unboundedness direction…
jajhall Jan 5, 2025
bb35caf
Merge pull request #2101 from ERGO-Code/fix-2065
jajhall Jan 5, 2025
39d63f7
Merge pull request #2102 from ERGO-Code/fix-2083
jajhall Jan 6, 2025
6b4b273
remove noenable_bazelmod
galabovaa Jan 6, 2025
6096f35
enable bazelmod don't specify explicitly in workflow
galabovaa Jan 6, 2025
fc35b44
Merge pull request #2103 from ERGO-Code/bazel-update
galabovaa Jan 6, 2025
af27bc3
Do not iterate over a HighsMatrixSlice while modifying the matrix (vi…
fwesselm Jan 7, 2025
7e9a146
Add test
fwesselm Jan 7, 2025
2dfbec1
Merge pull request #2094 from FlorianSchwendinger/changes-for-cran
jajhall Jan 7, 2025
a1d4c07
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into fix-…
fwesselm Jan 8, 2025
01361bc
cov
galabovaa Jan 8, 2025
dcf7f0a
clean up
galabovaa Jan 8, 2025
2c83d42
atomic flag for gcov
galabovaa Jan 8, 2025
379b0cc
clean up report
galabovaa Jan 8, 2025
d98756c
python workflow runner version downgrade, test new on another branch.…
galabovaa Jan 8, 2025
8cb0334
typo python linux wheel update'
galabovaa Jan 8, 2025
3d413c6
python version:
galabovaa Jan 8, 2025
780cd34
coverage fix duplicate tag
galabovaa Jan 8, 2025
6157752
try secret again
galabovaa Jan 8, 2025
f3290df
Coverage locally for now.
galabovaa Jan 8, 2025
df7ca0a
publish wheels to pypi on release re-enable
galabovaa Jan 8, 2025
dee9dc1
update condition for legacy coverage
galabovaa Jan 8, 2025
6867d71
Now running postsolve after presolved LP solution is unknown
jajhall Jan 8, 2025
fb28b3e
Now running postsolve (with warning) when model status of presolved L…
jajhall Jan 8, 2025
73ff159
ekk_instance_.clear() and setHighsModelStatusAndClearSolutionAndBasis…
jajhall Jan 8, 2025
820fd54
Formatted
jajhall Jan 8, 2025
b6a528e
Merge pull request #2107 from fwesselm/fix-2095
jajhall Jan 9, 2025
f1d72f3
Updated FEATURES.md and docs/src/options/definitions.md
jajhall Jan 9, 2025
b7f6831
Set up unit tests for get row from row-wise structure: row-wise-get-r…
jajhall Jan 9, 2025
7108b92
row-wise-get-row-time now uses interval, set and mask
jajhall Jan 9, 2025
c687984
Write generic code to get vectors of data from LPs
jajhall Jan 9, 2025
d865e6a
BUG: Localize everything to prevent highspy errors
HaoZeke Jan 7, 2025
b559b82
MAINT: Localize HighsLinearObjective
HaoZeke Jan 9, 2025
649b87b
Unit test is correct!
jajhall Jan 9, 2025
13179a2
bin/unit_tests passes
jajhall Jan 9, 2025
c462546
missing flag for atomic
galabovaa Jan 9, 2025
5d6197a
genhtml
galabovaa Jan 9, 2025
87591df
New Highs::getColsInterface and Highs::getRowsInterface calling getSu…
jajhall Jan 9, 2025
8dc347f
Now to start using getSubVectorsTranspose
jajhall Jan 9, 2025
c931bd4
Using getSubVectorsTranspose in getRowsInterface
jajhall Jan 9, 2025
b66d2cf
Now to delete getColsInterfaceArch and getRowsInterfaceArch
jajhall Jan 9, 2025
fdbf1ff
Formatted
jajhall Jan 9, 2025
2148176
Merge pull request #2112 from ERGO-Code/cov
galabovaa Jan 9, 2025
e47af56
Merge pull request #2116 from HaoZeke/upstreamLocBindings
galabovaa Jan 9, 2025
f7a4ce4
About to extend Avgas class
jajhall Jan 9, 2025
9c75eeb
Modified Avgas class
jajhall Jan 9, 2025
914359e
Refactored Avgas class and unit tests pass
jajhall Jan 9, 2025
7e2013c
Merge branch 'latest' into fix-2114
jajhall Jan 9, 2025
98ccd38
Merge branch 'latest' into fix-2109
jajhall Jan 9, 2025
4d28a3e
Formatted
jajhall Jan 9, 2025
78026df
Merge pull request #2113 from ERGO-Code/fix-2109
jajhall Jan 10, 2025
6f9dc92
Remove usage of std::vector::at from HEkkPrimal.cpp
fwesselm Jan 10, 2025
0213b8c
Added extensive unit test for getRows/Cols with row-wise and col-wise…
jajhall Jan 10, 2025
ff51691
Added ensureColwise/Rowwise to C API and highspy
jajhall Jan 10, 2025
9fb2cc0
Updated FEATURES.md and example-py.md
jajhall Jan 10, 2025
8787beb
Stripped out timing tests from TestLpModificaiton.cpp
jajhall Jan 10, 2025
a5f01ca
Now passing HighsSparseMatrix matrix to getSubVectors and getSubVecto…
jajhall Jan 10, 2025
5886353
Merge pull request #2119 from ERGO-Code/fix-2114
jajhall Jan 11, 2025
750452a
Commeted out highs.writeOptions(Options.md) in RunHighs.cpp
jajhall Jan 12, 2025
f5ae1f9
build demo again
galabovaa Jan 12, 2025
8ed3743
shared lib with warnings
galabovaa Jan 12, 2025
0fea435
fast_build with demo
galabovaa Jan 12, 2025
817d8aa
Added Highs::clearModelNames() to anonymise proprietory models when s…
jajhall Jan 12, 2025
d4cc69a
Removed total_time as it's default value in Timer calls
jajhall Jan 12, 2025
c5ab309
Eliminated RunHighsClock methods from HighsTimer
jajhall Jan 12, 2025
097fe20
Removed ch3 name from HighsTimer
jajhall Jan 12, 2025
1a6a674
Merge pull request #2124 from ERGO-Code/refactor-timer
jajhall Jan 12, 2025
f465a53
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into remo…
fwesselm Jan 13, 2025
7d43ee4
mpopcnt is not used on apple M
galabovaa Jan 13, 2025
9e19d1f
Now bailing out of deleteColsInterface and deleteRowsInterface if no …
jajhall Jan 13, 2025
bdabadf
Introduce HighsBasis::useful
jajhall Jan 13, 2025
07faec2
Introduced HighsBasis::useful and all unt tests pass
jajhall Jan 13, 2025
b03608c
All unit tests pass
jajhall Jan 13, 2025
4f21f0a
No longer necessarily invalidating basis in deleteCols; all unit test…
jajhall Jan 13, 2025
20fb52d
No longer necessarily invalidating basis in deleteRows; all unit test…
jajhall Jan 13, 2025
78793f9
Now taking 1 iteration in bin/unit_tests hot-start-after-delete for n…
jajhall Jan 13, 2025
4238871
Now calling appendNonbasicColsToBasisInterface when basis is useful, …
jajhall Jan 13, 2025
4079794
Added testing with set and mask; formatted
jajhall Jan 13, 2025
f3664d9
Updated FEATURES.md
jajhall Jan 13, 2025
fa71fe5
Merge pull request #2123 from ERGO-Code/webdemo
jajhall Jan 13, 2025
460f645
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into remo…
fwesselm Jan 14, 2025
9f46c0f
Initialize indicators in HighsCutGeneration
fwesselm Jan 14, 2025
42d8fb1
Merge pull request #2127 from fwesselm/removeAtFromPrimal
jajhall Jan 14, 2025
41ebd29
Fix warnings along the way
fwesselm Jan 14, 2025
fb50e2d
try to link with codecov again
galabovaa Jan 14, 2025
bf27ca6
Merge pull request #2126 from ERGO-Code/fix-2125
jajhall Jan 15, 2025
b9fbc22
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into cutG…
fwesselm Jan 15, 2025
c5649c1
Eliminated unused parameters in undoUntil of HighsPostsolveStack.h
jajhall Jan 15, 2025
de8aacb
Like Gurobi, HiGHS now reports option values that differ from their d…
jajhall Jan 15, 2025
584cea0
Merge pull request #2133 from ERGO-Code/fix-2132
jajhall Jan 15, 2025
120ad1c
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into cutG…
fwesselm Jan 15, 2025
4c07e5d
Merge pull request #2134 from ERGO-Code/write-option-changes
jajhall Jan 15, 2025
4ab2bec
codecov secret visibility updated
galabovaa Jan 15, 2025
ad2633a
rename cov.info back to its default coverage.info"
galabovaa Jan 15, 2025
16d7c6b
Merge pull request #2137 from ERGO-Code/add-clear-names
jajhall Jan 16, 2025
96d358f
Merge branch 'latest' into codecov
galabovaa Jan 16, 2025
72d6b68
codecov on PR
galabovaa Jan 16, 2025
876c828
Merge pull request #2130 from fwesselm/cutGenInit
jajhall Jan 17, 2025
e68fa31
Reset bounds when a non-zero is added by HPpresolve::addToMatrix
fwesselm Jan 17, 2025
264a875
Fix assertion
fwesselm Jan 17, 2025
a78ec87
Simplify a little
fwesselm Jan 17, 2025
fe2c983
Fix comments and move code around
fwesselm Jan 17, 2025
1d36028
Fixed error in analyseVectorValues and now analysing spectrum of time…
jajhall Jan 17, 2025
4f102c8
Merge pull request #2139 from ERGO-Code/parallel-MIP
jajhall Jan 17, 2025
b09de18
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into fix-…
fwesselm Jan 20, 2025
d81623f
New utility methods
fwesselm Jan 20, 2025
ce14be0
Ooops, called wrong methods
fwesselm Jan 20, 2025
caf7ec0
One more
fwesselm Jan 20, 2025
c958d0a
Fix typo
fwesselm Jan 20, 2025
49ea69d
Assessing undo_mods on mods made in assessSemiVariables, not size of …
jajhall Jan 20, 2025
821d73c
renamed num_modified_upper to num_tightened_upper for consistency wit…
jajhall Jan 20, 2025
4546f1b
Merge pull request #2143 from ERGO-Code/fix-2142
jajhall Jan 20, 2025
32a203e
Update HConfig.h.bazel.in
noajshu Jan 21, 2025
6552600
Boolean indicators are uninitialized when cover finding fails (- this…
fwesselm Jan 21, 2025
cbc99e5
Merge pull request #2145 from fwesselm/fix-2141-uninit
jajhall Jan 22, 2025
956855b
Merge pull request #2144 from noajshu/master
galabovaa Jan 22, 2025
785ba6f
Merge pull request #2138 from ERGO-Code/codecov
galabovaa Jan 23, 2025
1cb7c67
Merge pull request #2131 from ERGO-Code/macos-warning
galabovaa Jan 23, 2025
d6c6195
Introduced timeless_log option so logging is deterministic
jajhall Jan 24, 2025
51ac785
Formatted
jajhall Jan 24, 2025
50efb41
Omitted time from symmetry announcement when timelss_log is true
jajhall Jan 25, 2025
5b4f9c0
Formatted
jajhall Jan 25, 2025
5eb7867
Set correct default for timelss_log
jajhall Jan 25, 2025
30e2311
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into fix-…
fwesselm Jan 27, 2025
c13d1a0
Clean up
fwesselm Jan 27, 2025
caee88f
Merge pull request #2151 from fwesselm/fix-1960-new
jajhall Jan 27, 2025
7c0620a
Merge branch 'latest' into no-time-reporting
jajhall Jan 27, 2025
77858a1
fix format of log message
svigerske Jan 27, 2025
5d41154
Merge pull request #2153 from ERGO-Code/fix-iis-log-message
svigerske Jan 28, 2025
f5cc7bb
Added MI BOUND statement for [-inf, u] integer variable
jajhall Jan 28, 2025
4a2849a
Silenced write-MI-bound-model unit test and removed temp.mps
jajhall Jan 28, 2025
bb09f23
Merge pull request #2156 from ERGO-Code/fix-2152
jajhall Jan 29, 2025
8591ad4
Use && for logical and
fwesselm Jan 29, 2025
ec29330
Moving linux/aarch64 wheel build to native Github runner
merschformann Jan 30, 2025
e84fc50
Re-add checkout
merschformann Jan 30, 2025
6fb8f36
Now only recording written_log_header_ = true if output_flag is true …
jajhall Jan 30, 2025
aa53030
Merge pull request #2157 from fwesselm/logicalAnd
jajhall Jan 30, 2025
4d6de51
Fix github runner
merschformann Jan 30, 2025
9eec70c
Check if same row / column is source for implied bounds
fwesselm Jan 30, 2025
52af45f
Merge pull request #2161 from ERGO-Code/fix-log-header
jajhall Jan 30, 2025
38bc501
Merge pull request #2147 from ERGO-Code/no-time-reporting
jajhall Jan 30, 2025
f760172
Testing python wheels on linux/aarch64 as well, fixing python test ve…
merschformann Jan 30, 2025
477a9a6
Merge branch 'latest' into master
merschformann Jan 30, 2025
fb910f0
Harmonizing ubuntu versions, aligning inactive wheels push workflow
merschformann Jan 30, 2025
4b7b234
Merge pull request #2162 from merschformann/master
galabovaa Jan 30, 2025
ed7323b
Rejected potential fix for #1144, but modified the assert that was tr…
jajhall Feb 3, 2025
cd68efd
Merge pull request #2163 from ERGO-Code/fix-1144-alt
jajhall Feb 3, 2025
c9b3ec1
Make sure implied bounds are up-to-date when transforming rows
fwesselm Feb 6, 2025
0d70423
Minor change
fwesselm Feb 6, 2025
616ac49
Fix error: extra qualification 'HighsImplications::' on member 'clean…
fwesselm Feb 6, 2025
ae6b9a3
Simplify
fwesselm Feb 7, 2025
e305422
Do not check variable bounds if they are OK
fwesselm Feb 7, 2025
db7483a
Clean up a little more
fwesselm Feb 7, 2025
4354f89
Add test
fwesselm Feb 7, 2025
ef7deac
Use const
fwesselm Feb 7, 2025
0f1693f
Fix typo
fwesselm Feb 7, 2025
e515dca
Gurobi reads MPS keywords in mixed case, so convert to upper case in …
jajhall Feb 7, 2025
6e1f916
Merge pull request #2167 from ERGO-Code/fix-2166
jajhall Feb 7, 2025
78a567a
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into fix-…
fwesselm Feb 7, 2025
a047acd
Merge branch 'identicalBndSource' of https://github.com/fwesselm/HiGH…
fwesselm Feb 7, 2025
3ff15e4
Try to improve comment
fwesselm Feb 8, 2025
eee9e39
Merge pull request #2168 from fwesselm/fix-2122-nexttry
jajhall Feb 8, 2025
60df046
Added kImplicitInteger to definition of HighsVarType for highspy
jajhall Feb 8, 2025
9456074
Merge pull request #2170 from ERGO-Code/fix-2169
jajhall Feb 8, 2025
67084bb
Remove assertion and set bound type
fwesselm Feb 11, 2025
7f90d45
Vectors for uplocks and downlocks are not initialized back to zero af…
fwesselm Feb 11, 2025
28ed9f7
Merge pull request #2177 from fwesselm/fix-2175
jajhall Feb 12, 2025
5750d3b
Merge pull request #2176 from fwesselm/initNumLocks
jajhall Feb 12, 2025
86e0cb4
Skip redundant constraints in HPresolve::strengthenInequalities
fwesselm Feb 12, 2025
f5f697f
Add test
fwesselm Feb 12, 2025
d2e1edb
Simplify a little more
fwesselm Feb 13, 2025
f3b7952
Use row presolve
fwesselm Feb 13, 2025
e2957b6
Minor changes to HPresolve::transformColumn
fwesselm Feb 13, 2025
4c783d9
Corrected integer values for PAMI and SIP in documentation
jajhall Feb 13, 2025
176a962
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into fix-…
fwesselm Feb 14, 2025
e501a30
Fix some typos along the way
fwesselm Feb 14, 2025
84c0e18
Merge branch 'transformColChange' of https://github.com/fwesselm/HiGH…
fwesselm Feb 14, 2025
a8edba9
Check if variable is integer
fwesselm Feb 14, 2025
c90a228
Fix comment
fwesselm Feb 17, 2025
3a782e7
Skip part of HPresolve::transformColumn() when constant is zero
fwesselm Feb 17, 2025
9975061
Simplify a little more
fwesselm Feb 17, 2025
1293a1d
Avoid rounding twice (before and in HPresolve::changeColLower or HPre…
fwesselm Feb 18, 2025
fd23bcb
Add lambda
fwesselm Feb 18, 2025
d0b95f4
Now use lambda
fwesselm Feb 18, 2025
623ea98
Simplify
fwesselm Feb 18, 2025
be38930
Add a helper boolean
fwesselm Feb 18, 2025
5b28794
Fix rounding
fwesselm Feb 19, 2025
20cdba5
Minor updates
fwesselm Feb 19, 2025
0f8b03d
Some renaming
fwesselm Feb 19, 2025
3b71d81
Fix issue caused by renaming
fwesselm Feb 19, 2025
1fd953d
Merge pull request #2183 from fwesselm/fix-2171-2
jajhall Feb 19, 2025
510ec7f
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into simp…
fwesselm Feb 19, 2025
54c74fa
Now to extend use of HighsMipSolverData::setCallbackDataOut
jajhall Feb 19, 2025
234b4cc
User passing optimal solution via MIP user solultion callback
jajhall Feb 19, 2025
336a183
Now to refactor HighsMipSolverData::transformNewIntegerFeasibleSolution
jajhall Feb 19, 2025
e8080ec
Now to use HighsMipSolver::solutionFeasible
jajhall Feb 19, 2025
19ead6b
HighsMipSolver constructor now uses solutionFeasible; now to use this…
jajhall Feb 19, 2025
18c6ac5
Added call to mipsolver.solutionFeasible in transformNewIntegerFeasib…
jajhall Feb 19, 2025
3d9d7b7
HighsMipSolver::solutionFeasible now returning HighsCDouble obj, and…
jajhall Feb 19, 2025
9a5244c
Now using solutionFeasible in HighsMipSolverData::callbackUserSolution
jajhall Feb 19, 2025
d637c5f
Unfortunately we need to presolve the solution! Formatted
jajhall Feb 19, 2025
089579c
Now to add random number generator for user solution callback
jajhall Feb 20, 2025
f0dd257
All 8 unit tests pass for call kUserMipSolutionCallbackOriginAfterSetup
jajhall Feb 20, 2025
9ac2d41
Added user MIP solution callback, and tested
jajhall Feb 20, 2025
c6f8251
Updated FEATURES.md
jajhall Feb 20, 2025
c91ddcc
Merge pull request #2187 from ERGO-Code/fix-2172
jajhall Feb 20, 2025
05db5c2
Corrected option message for log_dev_level
jajhall Feb 23, 2025
e0537c0
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into simp…
fwesselm Feb 25, 2025
8a1cbfa
Some renaming
fwesselm Feb 25, 2025
51a72a9
Merge pull request #2190 from fwesselm/simplifyRowPresolve
jajhall Feb 25, 2025
a48557a
Use static_cast in presolve
fwesselm Feb 26, 2025
db2ae7b
Add option to disable presolve
fwesselm Feb 26, 2025
7b060f0
Minor changes
fwesselm Feb 26, 2025
9e4b168
Fix issue
fwesselm Feb 26, 2025
15a54e2
Work in progress
fwesselm Feb 26, 2025
0b762da
Revert some changes
fwesselm Feb 26, 2025
1cfab1b
Fix options setting
fwesselm Feb 27, 2025
d165315
Add comments
fwesselm Feb 27, 2025
d6d20af
Remove some more C-style casts
fwesselm Feb 27, 2025
cd1181c
Fix typo
fwesselm Feb 27, 2025
0a09493
Make sure that basis is set when presolve is not used
fwesselm Feb 27, 2025
aa97bfd
Merge pull request #2192 from fwesselm/staticCastPresolve
jajhall Feb 27, 2025
2c21f07
Add test
fwesselm Feb 27, 2025
5ab8b80
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into only…
fwesselm Feb 27, 2025
7fd94e2
Fix typo
fwesselm Feb 27, 2025
ff67687
Fix warning in check/Avgas.cpp
fwesselm Feb 27, 2025
ea2d487
Fix another typo
fwesselm Feb 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .bazelrc
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
common --noenable_bzlmod
4 changes: 2 additions & 2 deletions .github/workflows/build-bazel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:
run: bazel clean

- name: build bazel
run: bazel build --enable_bzlmod //...
run: bazel build //...

- name: test all
run: bazel test --enable_bzlmod //...
run: bazel test //...

- name: test example
run: ./bazel-bin/call-highs-example
48 changes: 37 additions & 11 deletions .github/workflows/build-python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,26 +75,23 @@ jobs:
python -m pytest

build_wheel_linux:
# ubuntu 22 has a latest version of cmake, but setup-python
# does not seem to provide all necessary modules to find python
# from cmake. works on my machine, test the wheels manually
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
strategy:
matrix:
python: [3.11]
steps:
- uses: actions/checkout@v4
# strategy:
# matrix:
# python: [3.12]

- name: Install correct python version
uses: actions/setup-python@v5
# with:
# python-version: ${{ matrix.python }}
with:
python-version: ${{ matrix.python }}

- name: Build wheel
run: |
python3 --version
python3 -m pip install cibuildwheel
python3 -m cibuildwheel --only cp310-manylinux_x86_64 $GITHUB_WORKSPACE
python3 -m cibuildwheel --only cp311-manylinux_x86_64 $GITHUB_WORKSPACE

- name: Install wheel
run: |
Expand All @@ -105,7 +102,36 @@ jobs:
run: |
python3 -m pip install pytest
python3 -m pytest $GITHUB_WORKSPACE


build_wheel_linux_arm:
runs-on: ubuntu-24.04-arm
strategy:
matrix:
python: [3.11]
steps:
- uses: actions/checkout@v4

- name: Install python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}

- name: Build wheel
run: |
python3 --version
python3 -m pip install cibuildwheel
python3 -m cibuildwheel --only cp311-manylinux_aarch64 $GITHUB_WORKSPACE

- name: Install wheel
run: |
ls wheelhouse
python3 -m pip install wheelhouse/*.whl

- name: Test highspy
run: |
python3 -m pip install pytest
python3 -m pytest $GITHUB_WORKSPACE

# macos 13 is Intel
build_wheel_macos_13:
runs-on: macos-13
Expand Down
106 changes: 46 additions & 60 deletions .github/workflows/build-wheels-push.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name: build-wheels-push

on: []
# on: []
# on: push

# on:
# release:
# types:
# - published
on:
release:
types:
- published

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down Expand Up @@ -43,12 +43,12 @@ jobs:
# Github Actions doesn't support pairing matrix values together, let's improvise
# https://github.com/github/feedback/discussions/7835#discussioncomment-1769026
buildplat:
- [ubuntu-20.04, manylinux_x86_64]
- [ubuntu-20.04, manylinux_i686]
- [ubuntu-20.04, manylinux_aarch64]
- [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test
- [ubuntu-20.04, musllinux_i686]
- [ubuntu-20.04, musllinux_aarch64]
- [ubuntu-24.04, manylinux_x86_64]
- [ubuntu-24.04, manylinux_i686]
- [ubuntu-24.04-arm, manylinux_aarch64]
- [ubuntu-24.04, musllinux_x86_64] # No OpenBlas, no test
- [ubuntu-24.04, musllinux_i686]
- [ubuntu-24.04-arm, musllinux_aarch64]
- [macos-13, macosx_x86_64]
- [macos-14, macosx_arm64]
- [windows-2019, win_amd64]
Expand All @@ -58,21 +58,7 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up QEMU # Required for aarch64 builds
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
uses: docker/setup-qemu-action@v3
with:
platforms: all

- name: Build wheels (aarch64)
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
CIBW_ARCHS_LINUX: aarch64

- name: Build wheels (not aarch64)
if: ${{ !contains(matrix.buildplat[1], 'aarch64') }}
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
Expand All @@ -82,51 +68,22 @@ jobs:
name: cibw-wheels-${{ matrix.python }}-${{ matrix.buildplat[1] }}
path: wheelhouse/*.whl

upload_testpypi:
name: >-
Publish highspy to TestPyPI
runs-on: ubuntu-latest
needs: [build_wheels, build_sdist]
# needs: [build_sdist]

# upload to PyPI on every tag starting with 'v'
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')

environment:
name: testpypi
url: https://test.pypi.org/p/highspy

permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true

- name: Download all
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
verbose: true

# upload_pypi:
# upload_testpypi:
# name: >-
# Publish highspy to PyPI
# Publish highspy to TestPyPI
# runs-on: ubuntu-latest
# needs: [build_wheels, build_sdist]
# # needs: [build_sdist]

# # upload to PyPI on every tag starting with 'v'
# # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')

# environment:
# name: pypi
# url: https://pypi.org/p/highspy
# name: testpypi
# url: https://test.pypi.org/p/highspy

# permissions:
# id-token: write # IMPORTANT: mandatory for trusted publishing

# steps:
# - uses: actions/download-artifact@v4
# with:
Expand All @@ -136,3 +93,32 @@ jobs:

# - name: Download all
# uses: pypa/gh-action-pypi-publish@release/v1
# with:
# repository-url: https://test.pypi.org/legacy/
# verbose: true

upload_pypi:
name: >-
Publish highspy to PyPI
runs-on: ubuntu-latest
needs: [build_wheels, build_sdist]

# upload to PyPI on every tag starting with 'v'
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')

environment:
name: pypi
url: https://pypi.org/p/highspy

permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing

steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true

- name: Download all
uses: pypa/gh-action-pypi-publish@release/v1
28 changes: 7 additions & 21 deletions .github/workflows/build-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ jobs:
# Github Actions doesn't support pairing matrix values together, let's improvise
# https://github.com/github/feedback/discussions/7835#discussioncomment-1769026
buildplat:
- [ubuntu-20.04, manylinux_x86_64]
- [ubuntu-20.04, manylinux_i686]
- [ubuntu-20.04, manylinux_aarch64]
- [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test
- [ubuntu-20.04, musllinux_i686]
- [ubuntu-20.04, musllinux_aarch64]
- [ubuntu-24.04, manylinux_x86_64]
- [ubuntu-24.04, manylinux_i686]
- [ubuntu-24.04-arm, manylinux_aarch64]
- [ubuntu-24.04, musllinux_x86_64] # No OpenBlas, no test
- [ubuntu-24.04, musllinux_i686]
- [ubuntu-24.04-arm, musllinux_aarch64]
- [macos-13, macosx_x86_64]
- [macos-14, macosx_arm64]
- [windows-2019, win_amd64]
Expand All @@ -46,21 +46,7 @@ jobs:

steps:
- uses: actions/checkout@v4
- name: Set up QEMU # Required for aarch64 builds
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
uses: docker/setup-qemu-action@v3
with:
platforms: all

- name: Build wheels (aarch64)
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
CIBW_ARCHS_LINUX: aarch64

- name: Build wheels (not aarch64)
if: ${{ !contains(matrix.buildplat[1], 'aarch64') }}
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
68 changes: 68 additions & 0 deletions .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: code-coverage

on: [pull_request]

jobs:
debug:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]

steps:
- uses: actions/checkout@v4

- name: install
run: sudo apt-get update && sudo apt-get install lcov

- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build

- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Debug -DHIGHS_COVERAGE=ON -DALL_TESTS=ON -DBUILD_SHARED_LIBS=OFF -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++

- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
run: |
cmake --build . --parallel --config Debug

- name: Test
working-directory: ${{runner.workspace}}/build
shell: bash
run: ctest --parallel --timeout 300 --output-on-failure

- name: Generate Report
working-directory: ${{runner.workspace}}/build
shell: bash
run: |
lcov -d . -c -o cov.info --ignore-errors empty
lcov --remove cov.info "/usr/include/*" -o cov.info
lcov --remove cov.info "/usr/lib/*" -o cov.info
lcov --remove cov.info "extern/pdqsort/*" -o cov.info
lcov --remove cov.info "extern/zstr/*" -o cov.info
lcov --remove cov.info "extern/catch*" -o cov.info
lcov --remove cov.info "app/cxxopts*" -o cov.info
lcov --remove cov.info "src/test*" -o cov.info
lcov --list cov.info
mv cov.info coverage.info

- name: Genhtml Results Summary
working-directory: ${{runner.workspace}}/build
shell: bash
run: |
genhtml -o coverage coverage.info

# Made it past the first token issue.
# May need some more time to porpagate on the codecov side.
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: ERGO-Code/HiGHS
fail_ci_if_error: true # optional (default = false)
files: ${{runner.workspace}}/build/coverage.info # optional
# name: codecov-umbrella # optional
verbose: true # optional (default = false)
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ pip-log.txt

# Unit test / coverage reports
.coverage
cov.info
.tox

#Translations
Expand Down
Loading
Loading