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/.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 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)