From 02db912cde58b23b11100b1ecd8dcc12eb723898 Mon Sep 17 00:00:00 2001 From: Ted Ralphs Date: Mon, 19 Oct 2026 13:15:32 -0400 Subject: [PATCH 1/2] README: regenerate with the fixed generate_readme of coinbrew#109 List only the binary packages that exist (now set in generate_readme instead of being derived from the project name), the Homebrew tap with brew trust (needed since Homebrew 6.0), and fix the Docker Hub, Doxygen, and other links and typos. See coin-or/coinbrew#109. Co-Authored-By: Claude Opus 5.5 --- .coin-or/generate_readme | 20 ++++++++++---------- README.md | 38 ++++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/.coin-or/generate_readme b/.coin-or/generate_readme index ce0f80b..342e30e 100755 --- a/.coin-or/generate_readme +++ b/.coin-or/generate_readme @@ -18,6 +18,15 @@ popd > /dev/null create_variables $SCRIPT_DIR/config.yml +# Binary packages of this project that make_build_info lists (see +# make_binary_packages in coinbrew's scripts/generate_readme) +Package_Repology="coinmp" +Package_Arch="coin-or-mp" +Package_Debian="coinor-libcoinmp-dev" +Package_FreeBSD="math/coinmp" +Package_MSYS2="mingw-w64-ucrt-x86_64-coin-or-mp" +Package_Conda="coinmp" + make_header echo "CoinMP is a C-API interface library that supports most of the @@ -27,16 +36,7 @@ or \`CoinMP.dll\` on Windows) that can be used from other C/C++ projects and applications. The header file \`CoinMP/src/CoinMP.h\` contains the prototypes of all functions of the library." -# Arch's package is called coin-or-mp, Debian's only coinor-libcoinmp-dev, and -# conda-forge's coinmp. There are no current Fedora, linuxbrew, or Homebrew -# packages of CoinMP. -make_build_info | awk ' - /^ \* Fedora\/Redhat\/CentOS:/ || /^ \* linuxbrew:/ || /^ \* \*Mac OS X\*:/ { skip = 1; fences = 0; next } - skip { if (/```/ && ++fences == 2) skip = 0; next } - { print }' | sed -e 's/pacman -S coin-or-coinmp/pacman -S coin-or-mp/' \ - -e 's/coinor-coinmp coinor-libcoinmp-dev/coinor-libcoinmp-dev/' \ - -e 's/conda install coin-or-coinmp/conda install -c conda-forge coinmp/' \ - -e 's|repology.org/project/coin-or-coinmp/|repology.org/project/coinmp/|' +make_build_info echo "### Example diff --git a/README.md b/README.md index 1aebc62..c110b8b 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ available [here](https://coin-or.github.io/user_introduction.html). There is a Docker image that provides CoinMP, as well as other projects in the [COIN-OR Optimization -Suite](https://github.com/coin-or/COIN-OR-OptimizationSuite) [here](https://hub.docker.com/repository/docker/coinor/coin-or-optimization-suite) +Suite](https://github.com/coin-or/COIN-OR-OptimizationSuite) [here](https://hub.docker.com/r/coinor/coin-or-optimization-suite). ### Binaries @@ -53,25 +53,28 @@ releases in Github are archived as part of CoinMP [here](https://www.coin-or.org/download/binary/CoinMP). - * *Linux* (see https://repology.org/project/coinmp/versions for a complete listing): - * arch: + * *Linux* (see https://repology.org/project/coinmp/versions for a complete listing): + * Arch Linux: ``` - $ sudo pacman -S coin-or-mp + sudo pacman -S coin-or-mp ``` - * Debian/Ubuntu: + * Debian and Ubuntu: ``` - $ sudo apt-get install coinor-libcoinmp-dev - ``` - * freebsd: - ``` - $ sudo pkg install math/coinmp + sudo apt install coinor-libcoinmp-dev ``` + * *FreeBSD*: + ``` + sudo pkg install math/coinmp + ``` * *Windows*: The easiest way to get CoinMP on Windows is to download an archive as described above. - -* *conda* (cross-platform): - ``` - $ conda install -c conda-forge coinmp - ``` + With [MSYS2](https://www.msys2.org), in the UCRT64 environment, do + ``` + pacman -S mingw-w64-ucrt-x86_64-coin-or-mp + ``` + * *conda* (cross-platform): + ``` + conda install -c conda-forge coinmp + ``` Due to license incompatibilities, pre-compiled binaries lack some functionality. If binaries are not available for your platform for the latest @@ -94,7 +97,7 @@ CoinMP has a number of dependencies, which are detailed in automatically downloaded when obtaining the source with `coinbrew`. For some of the remaining third-party dependencies, automatic download scripts and build wrappers are provided (and will also be automatically run for required -and recommended dependencies), while other libraries that are aeasy to obtain +and recommended dependencies), while other libraries that are easy to obtain must be installed using an appropriate package manager (or may come with your OS by default). @@ -119,7 +122,7 @@ The `coinbrew` script will fetch the additional projects specified in the Depend * Download the source code, e.g., by cloning the git repo https://github.com/coin-or/CoinMP * Download and install the source code for the dependencies listed in [config.yml](.coin-or/config.yml) - * Build the code as follows (make sure to set PKG_CONFIG_PTH to install directory for dependencies). + * Build the code as follows (make sure to set `PKG_CONFIG_PATH` to the `lib/pkgconfig` directory of the installation of the dependencies). ``` ./configure -C @@ -147,5 +150,4 @@ make * [COIN-OR general discussion forum](https://github.com/orgs/coin-or/discussions) * [CoinMP Discussion forum](https://github.com/coin-or/CoinMP/discussions) * [Report a bug](https://github.com/coin-or/CoinMP/issues/new) - * [Doxygen generated documentation](http://coin-or.github.io/CoinMP/Doxygen) From d19dda9f1709d6de622b35803b098f441b9f991c Mon Sep 17 00:00:00 2001 From: Ted Ralphs Date: Mon, 19 Oct 2026 14:25:25 -0400 Subject: [PATCH 2/2] CI: regenerate README.md automatically, skip builds for README changes 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 --- .github/workflows/linux-ci.yml | 8 ++++++++ .github/workflows/readme.yml | 29 +++++++++++++++++++++++++++++ .github/workflows/windows-ci.yml | 8 ++++++++ 3 files changed, 45 insertions(+) create mode 100644 .github/workflows/readme.yml diff --git a/.github/workflows/linux-ci.yml b/.github/workflows/linux-ci.yml index 3306026..0ff71b3 100644 --- a/.github/workflows/linux-ci.yml +++ b/.github/workflows/linux-ci.yml @@ -6,9 +6,17 @@ on: branches: - 'master' - 'stable/*' + paths-ignore: + - 'README.md' + - '.coin-or/generate_readme' + - '.github/workflows/readme.yml' pull_request: branches: - '**' + paths-ignore: + - 'README.md' + - '.coin-or/generate_readme' + - '.github/workflows/readme.yml' release: types: - created diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml new file mode 100644 index 0000000..4252a99 --- /dev/null +++ b/.github/workflows/readme.yml @@ -0,0 +1,29 @@ +--- +# Regenerates README.md with .coin-or/generate_readme when it or +# .coin-or/config.yml changes, and checks that pull requests changing +# README.md don't edit it directly. The weekly run (which runs on master only) +# regenerates the README of master and the latest stable branch, to pick up +# changes of coinbrew's scripts/generate_readme. See +# https://github.com/coin-or/coinbrew/blob/master/.github/workflows/generate-readme.yml +name: README +on: + push: + branches: + - 'master' + - 'stable/*' + paths: + - '.coin-or/config.yml' + - '.coin-or/generate_readme' + pull_request: + paths: + - 'README.md' + schedule: + - cron: '0 6 * * 1' + workflow_dispatch: + +permissions: + contents: write + +jobs: + readme: + uses: coin-or/coinbrew/.github/workflows/generate-readme.yml@master diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 97898dd..9518d64 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -6,9 +6,17 @@ on: branches: - 'master' - 'stable/*' + paths-ignore: + - 'README.md' + - '.coin-or/generate_readme' + - '.github/workflows/readme.yml' pull_request: branches: - '**' + paths-ignore: + - 'README.md' + - '.coin-or/generate_readme' + - '.github/workflows/readme.yml' release: types: - created