Repository navigation
Move master to the new build system (BuildTools master, no CoinMP/ subdirectory, exports), add GitHub Actions CI, relicense under EPL 2.0 - #29
Merged
Conversation
…ove root directory - configure.ac is based on BuildTools master. CoinUtils, Osi, Clp, Osi's Clp interface, Cgl, and Cbc are required, as CoinMP uses all of them directly (one .pc file per check). - The Makefile.am files use the new variables, install the headers into include/coin-or, and the top-level one includes BuildTools/Makemain.inc. coinmp.pc.in uses the standard template, and coinmp-uninstalled.pc.in is removed. The example's makefile gets its flags from coinmp.pc and links with the C++ compiler (CoinMP is a C++ library). - CoinMPConfig.h and its config_* headers follow Clp's ClpConfig.h and define COINMPLIB_EXPORT. - The root-level build files are removed, along with the root AUTHORS, INSTALL, LICENSE, and README, which pointed to the copies in CoinMP/, and the SVN Externals file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Move the contents of CoinMP/ to the root of the repository (pure renames), and remove the CoinMP/ prefix from the paths in .gitattributes and .gitignore. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The functions of CoinMP's C API (CoinMP.h) are declared with SOLVAPI, which is now COINMPLIB_EXPORT unless it is set otherwise (as for MSVC without configure). CoinMP.cpp includes CoinMPConfig.h instead of config_coinmp_default.h, so that the build gets config.h. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
In Cbc master, CbcSolverUsefulData is CbcParameters, whose noPrinting_ is not public; use disablePrinting() instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er EPL 2.0 As for the other projects of the COIN-OR Optimization Suite: - .github/workflows: Linux/macOS and Windows (MSYS2 and MSVC) builds and tests, and release builds. The Linux builds use -fvisibility=hidden to check that the needed symbols are exported. - .coin-or/config.yml describes the project and its dependencies (CoinUtils, Osi, Clp, Cgl, and Cbc master); Dependencies is moved to .coin-or/ and matches config.yml. - README.md is generated by .coin-or/generate_readme; the old README is removed. - License: CoinMP is relicensed from the Common Public License 1.0 to the Eclipse Public License 2.0, like the other projects of the Suite, and the comments that mentioned the Common Public License are updated. - The Travis and AppVeyor setup (.travis.yml, appveyor.yml, .ci) is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Set the binary packages of CoinMP in generate_readme instead of patching the output of make_build_info with awk and sed, and add the MSYS2 package. Also picks up the Homebrew, Docker Hub, and Doxygen fixes of coin-or/coinbrew#109. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add .github/workflows/readme.yml, which calls the reusable workflow of coin-or/coinbrew#110: it regenerates README.md when .coin-or/config.yml or .coin-or/generate_readme change (and weekly, to pick up changes of coinbrew's scripts/generate_readme), and checks that pull requests changing README.md do not edit it by hand. The build workflows ignore changes of only README.md, .coin-or/generate_readme, and readme.yml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This moves CoinMP master to the build setup of the other converted projects (Clp, Cbc, Dip, ...).
configure.acis based on BuildTools master, theCoinMP/subdirectory is gone, and the C API is exported throughCOINMPLIB_EXPORT. It also adapts CoinMP to Cbc master, adds the GitHub Actions CI,.coin-or/config.ymlandgenerate_readme, and relicenses CoinMP from the CPL 1.0 to the EPL 2.0. The stable branch gets the CI andconfig.ymlin a separate PR.Commits
configure.acusesAC_COIN_CHK_PKGandAC_COIN_FINALIZE_FLAGS([CoinMPLib]). CoinUtils, Osi, Clp, Osi's Clp interface, Cgl and Cbc are all required, because CoinMP uses each of them directly. There is one.pcfile per check.include/coin-or, andcoinmp.pc.inuses the standard template.coinmp.pcand links with the C++ compiler.CoinMPConfig.hand itsconfig_*headers follow Clp'sClpConfig.hand defineCOINMPLIB_EXPORT.Externalsfile are removed, along with the rootAUTHORS,INSTALL,LICENSEandREADME, which pointed to the copies inCoinMP/.CoinMP/*to the root, plus theCoinMP/prefix removed from.gitignore.CoinMP.hare declared withSOLVAPI. That is nowCOINMPLIB_EXPORTunless it is set otherwise; the hand-written MSVC branch at the top ofCoinMP.his unchanged.CoinMP.cppincludesCoinMPConfig.hinstead ofconfig_coinmp_default.h, so that the build getsconfig.h.CbcSolverUsefulDatais nowCbcParameters, whosenoPrinting_isn't public, so CoinMP callsdisablePrinting()instead.-fvisibility=hidden.config.ymllists CoinUtils, Osi, Clp, Cgl and Cbc master.Dependenciesmoves to.coin-or/.README.mdis generated. The package section is adjusted to the real packages:coin-or-mp, Debian/Ubuntucoinor-libcoinmp-dev, FreeBSDmath/coinmp, and conda-forgecoinmp;projDesc.xml.generate_readmeinstead of filtering the output ofmake_build_infowith awk and sed, and the MSYS2 package is added. The README also picks up the Homebrew, Docker Hub and Doxygen fixes of generate_readme: list only binary packages that exist; Homebrew tap trust coinbrew#109, as README: regenerate with the fixed generate_readme (binary packages, Homebrew trust, links) #31 does onstable/1.8..github/workflows/readme.yml, which calls the reusable workflow of Add a reusable workflow that regenerates and checks project READMEs coinbrew#110 to regenerateREADME.mdand check pull requests that change it. The CI workflows skip builds when only README files change. This is the same as in README: regenerate with the fixed generate_readme (binary packages, Homebrew trust, links) #31 onstable/1.8.Testing (Linux, gcc, against the master stack)
-fvisibility=hiddenbuild:make testpasses; all 8 problems of the unit test solve.libCoinMPexports all 82SOLVAPIfunctions.make install, the C example builds against the installed headers andcoinmp.pcand runs.Merge order
The unit test crashes with current Cbc master: Cbc segfaults at the end of the search when the event handler is a user's (CoinMP's). coin-or/Cbc#813 fixes that by porting Haroldo's fix from
next. Until it is merged, this PR's CI fails in the unit test.🤖 Generated with Claude Code