Skip to content

test: merging develop on master for 1.93 prep - #605

Open
Becheler wants to merge 211 commits into
masterfrom
develop
Open

Becheler wants to merge 211 commits into
masterfrom
develop

Conversation

@Becheler

Copy link
Copy Markdown
Collaborator

Master branch closes for breaking changes in less than a month (October 21). This PR aims at testing a bit in advance.
Note: not sure I understand why commits from @jeremy-murphy in 2024/2025 show up in that PR ?

Jeremy Murphy and others added 30 commits October 31, 2024 11:58
doc: imitate unordered bundle to recover tocs
Split CMake identities: superproject and developer
This reverts commit 35e20c2, reversing
changes made to dde65fe.
doc: opt out of aggregated boostlook to solve toc issues
@Becheler Becheler self-assigned this Sep 25, 2026
@Becheler Becheler added the infra CI pipelines, build system (CMake/Jamfile), packaging and tooling. label Sep 25, 2026
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

Comment on lines +43 to +209
defaults:
run:
shell: bash

strategy:
fail-fast: false
matrix:
include:
- { name: Collect coverage, coverage: yes,
compiler: gcc-14, cxxstd: '23', os: ubuntu-24.04, install: 'g++-14', address-model: '64' }

timeout-minutes: 120
runs-on: ${{matrix.os}}
container: ${{matrix.container}}
env: {B2_USE_CCACHE: 1}

steps:
- name: Setup environment
run: |
if [ -f "/etc/debian_version" ]; then
echo "DEBIAN_FRONTEND=noninteractive" >> $GITHUB_ENV
export DEBIAN_FRONTEND=noninteractive
fi
if [ -n "${{matrix.container}}" ] && [ -f "/etc/debian_version" ]; then
apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y sudo software-properties-common curl
# Need (newer) git, and the older Ubuntu container may require requesting the key manually using port 80
curl -sSL --retry ${NET_RETRY_COUNT:-5} 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xE1DD270288B4E6030699E45FA1715D88E1DF1F24' | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/git-core_ubuntu_ppa.gpg
for i in {1..${NET_RETRY_COUNT:-3}}; do sudo -E add-apt-repository -y ppa:git-core/ppa && break || sleep 10; done
apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
osver=$(lsb_release -sr | cut -f1 -d.)
pkgs="g++ git"
# Ubuntu 22+ has only Python 3 in the repos
if [ -n "$osver" ] && [ "$osver" -ge "22" ]; then
pkgs+=" python-is-python3 libpython3-dev"
else
pkgs+=" python libpython-dev"
fi
apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y $pkgs
fi
# For jobs not compatible with ccache, use "ccache: no" in the matrix
if [[ "${{ matrix.ccache }}" == "no" ]]; then
echo "B2_USE_CCACHE=0" >> $GITHUB_ENV
fi
git config --global pack.threads 0

- uses: actions/checkout@v4
with:
# For coverage builds fetch the whole history, else only 1 commit using a 'fake ternary'
fetch-depth: ${{ matrix.coverage && '0' || '1' }}

- name: Cache ccache
uses: actions/cache@v4
if: env.B2_USE_CCACHE
with:
path: ~/.ccache
key: ${{matrix.os}}-${{matrix.container}}-${{matrix.compiler}}-${{github.sha}}
restore-keys: ${{matrix.os}}-${{matrix.container}}-${{matrix.compiler}}-

- name: Fetch Boost.CI
uses: actions/checkout@v4
with:
repository: boostorg/boost-ci
ref: master
path: boost-ci-cloned

- name: Get CI scripts folder
run: |
# Copy ci folder if not testing Boost.CI
[[ "$GITHUB_REPOSITORY" =~ "boost-ci" ]] || cp -r boost-ci-cloned/ci .
rm -rf boost-ci-cloned

- name: Install packages
if: startsWith(matrix.os, 'ubuntu')
run: |
SOURCE_KEYS=(${{join(matrix.source_keys, ' ')}})
SOURCES=(${{join(matrix.sources, ' ')}})
# Add this by default
SOURCES+=(ppa:ubuntu-toolchain-r/test)
for key in "${SOURCE_KEYS[@]}"; do
for i in {1..$NET_RETRY_COUNT}; do
keyfilename=$(basename -s .key $key)
curl -sSL --retry ${NET_RETRY_COUNT:-5} "$key" | sudo gpg --dearmor > /etc/apt/trusted.gpg.d/${keyfilename} && break || sleep 10
done
done
for source in "${SOURCES[@]}"; do
for i in {1..$NET_RETRY_COUNT}; do
sudo add-apt-repository $source && break || sleep 10
done
done
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
if [[ -z "${{matrix.install}}" ]]; then
pkgs="${{matrix.compiler}}"
pkgs="${pkgs/gcc-/g++-}"
else
pkgs="${{matrix.install}}"
fi
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y $pkgs

- name: Setup GCC Toolchain
if: matrix.gcc_toolchain
run: |
GCC_TOOLCHAIN_ROOT="$HOME/gcc-toolchain"
echo "GCC_TOOLCHAIN_ROOT=$GCC_TOOLCHAIN_ROOT" >> $GITHUB_ENV
if ! command -v dpkg-architecture; then
apt-get install -y dpkg-dev
fi
MULTIARCH_TRIPLET="$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
mkdir -p "$GCC_TOOLCHAIN_ROOT"
ln -s /usr/include "$GCC_TOOLCHAIN_ROOT/include"
ln -s /usr/bin "$GCC_TOOLCHAIN_ROOT/bin"
mkdir -p "$GCC_TOOLCHAIN_ROOT/lib/gcc/$MULTIARCH_TRIPLET"
ln -s "/usr/lib/gcc/$MULTIARCH_TRIPLET/${{matrix.gcc_toolchain}}" "$GCC_TOOLCHAIN_ROOT/lib/gcc/$MULTIARCH_TRIPLET/${{matrix.gcc_toolchain}}"

- name: Setup multiarch
if: matrix.multiarch
run: |
sudo apt-get install --no-install-recommends -y binfmt-support qemu-user-static
sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
git clone https://github.com/jeking3/bdde.git
echo "$(pwd)/bdde/bin/linux" >> ${GITHUB_PATH}
echo "BDDE_DISTRO=${{ matrix.distro }}" >> ${GITHUB_ENV}
echo "BDDE_EDITION=${{ matrix.edition }}" >> ${GITHUB_ENV}
echo "BDDE_ARCH=${{ matrix.arch }}" >> ${GITHUB_ENV}
echo "B2_WRAPPER=bdde" >> ${GITHUB_ENV}

- name: Setup Boost
env:
B2_ADDRESS_MODEL: ${{matrix.address-model}}
B2_COMPILER: ${{matrix.compiler}}
B2_CXXSTD: ${{matrix.cxxstd}}
B2_SANITIZE: ${{matrix.sanitize}}
B2_STDLIB: ${{matrix.stdlib}}
# More entries can be added in the same way, see the B2_ARGS assignment in ci/enforce.sh for the possible keys.
B2_DEFINES: ${{matrix.defines}}
# Variables set here (to non-empty) will override the top-level environment variables, e.g.
B2_VARIANT: ${{matrix.variant}}
# Set the (B2) target(s) to build, defaults to the test folder of the current library
# Can alternatively be done like this in the build step or in the build command of the build step, e.g. `run: B2_TARGETS=libs/$SELF/doc ci/build.sh`
# B2_TARGETS: libs/foo/test//bar
run: source ci/github/install.sh

- name: Setup coverage collection
if: matrix.coverage
run: ci/github/codecov.sh "setup"

- name: Run tests
if: '!matrix.coverity'
run: ci/build.sh

- name: Upload coverage
if: matrix.coverage
run: ci/codecov.sh "upload"
env:
BOOST_CI_CODECOV_IO_UPLOAD: skip

- name: Upload coverage
if: matrix.coverage
uses: codecov/codecov-action@v4
with:
disable_search: true
file: coverage.info
name: Github Actions
token: ${{secrets.CODECOV_TOKEN}}
verbose: true

windows:
Comment on lines +210 to +269
defaults:
run:
shell: cmd
strategy:
fail-fast: false
matrix:
include:
- { name: Collect MSVC coverage, coverage: yes,
toolset: msvc-14.3, cxxstd: 'latest', addrmd: '64', os: windows-2022 }

runs-on: ${{matrix.os}}

steps:
- uses: actions/checkout@v4

- name: Fetch Boost.CI
uses: actions/checkout@v4
with:
repository: boostorg/boost-ci
ref: master
path: boost-ci-cloned
- name: Get CI scripts folder
run: |
REM Copy ci folder if not testing Boost.CI
if "%GITHUB_REPOSITORY%" == "%GITHUB_REPOSITORY:boost-ci=%" xcopy /s /e /q /i /y boost-ci-cloned\ci .\ci
rmdir /s /q boost-ci-cloned
- name: Setup Boost
run: ci\github\install.bat

- name: Run tests
if: '!matrix.coverage'
run: ci\build.bat
env:
B2_TOOLSET: ${{matrix.toolset}}
B2_CXXSTD: ${{matrix.cxxstd}}
B2_ADDRESS_MODEL: ${{matrix.addrmd}}
B2_DEFINES: ${{matrix.defines}}
B2_VARIANT: ${{matrix.variant}}
B2_LINK: ${{matrix.link}}

- name: Collect coverage
shell: powershell
if: matrix.coverage
run: ci\opencppcoverage.ps1
env:
B2_TOOLSET: ${{matrix.toolset}}
B2_CXXSTD: ${{matrix.cxxstd}}
B2_ADDRESS_MODEL: ${{matrix.addrmd}}
B2_DEFINES: ${{matrix.defines}}
B2_VARIANT: ${{matrix.variant}}
B2_LINK: ${{matrix.link}}

- name: Upload
uses: codecov/codecov-action@v5
with:
disable_search: true
files: __out/cobertura.xml
name: ${{env.CODECOV_NAME}} (Windows)
token: ${{secrets.CODECOV_TOKEN}}
verbose: true No newline at end of file
Comment on lines +13 to +42
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Set up Boost tree and build boostdep
run: |
git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
cd ../boost-root
cp -r $GITHUB_WORKSPACE/* libs/graph
git submodule update --init tools/boostdep
# depinst pulls graph's deps; also ensure boostdep's own dep
# (Boost.Filesystem) is present since boostdep links against it.
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" graph
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" filesystem
./bootstrap.sh
./b2 headers
# boostdep #includes <boost/filesystem.hpp> and links the compiled
# library, so build it with b2 (a bare c++ compile can't resolve that).
./b2 tools/boostdep/build
- name: Boostdep dependency report
working-directory: ../boost-root
run: |
BOOSTDEP=$(find "$PWD" -type f -name boostdep -perm -u+x 2>/dev/null | grep -v '/src/' | head -1)
if [ -z "$BOOSTDEP" ]; then echo "boostdep executable not found after build" >&2; exit 1; fi
echo "using boostdep: $BOOSTDEP"
echo "===DEP-BRIEF-START==="
"$BOOSTDEP" --boost-root . --track-sources --no-track-tests --brief graph
echo "===DEP-BRIEF-END==="
echo "===DEP-PRIMARY-START==="
"$BOOSTDEP" --boost-root . --track-sources --no-track-tests graph
echo "===DEP-PRIMARY-END==="
@Becheler Becheler changed the title test: merging develop on master test: merging develop on master for 1.93 prep Sep 25, 2026
@cppalliance-bot

cppalliance-bot commented Sep 25, 2026 •

Copy link
Copy Markdown

An automated preview of the documentation is available at https://605.graph.prtest3.cppalliance.org/libs/graph/doc/html/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-09-27 07:44:41 UTC

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Boost dependency footprint vs develop (auto-generated).
PR run 36303850375 vs develop run 36303850375 (c92a562a1a).

Header-inclusion weights (graph files pulling each direct dependency in):

No header-inclusion-weight changes.

Transitive Boost modules: 47 → 47 (0)

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Compiler-warning counts vs develop (auto-generated).
PR run 36303850426 vs develop run 36303850426 (c92a562a1a).

Job Baseline After Delta
macos (clang, 14) 392 392 0
macos (clang, 17) 391 391 0
macos (clang, 20) 391 391 0
ubuntu (clang-19, 14) 392 392 0
ubuntu (clang-19, 17) 391 391 0
ubuntu (clang-19, 20) 391 391 0
ubuntu (clang-19, 23) 391 391 0
ubuntu (gcc-14, 14) 345 345 0
ubuntu (gcc-14, 17) 341 341 0
ubuntu (gcc-14, 20) 341 341 0
ubuntu (gcc-14, 23) 341 341 0
windows_msvc_14_3 (msvc-14.3) 931 931 0

Becheler and others added 16 commits September 25, 2026 15:37
  range-based for in example/incremental-components-eg.cpp
depinst only scans include/, src/ and test/ by default, so libraries used
only by examples (e.g. Boost.Foreach after #603/#604) were not installed
and those examples failed to compile. Match the GitHub Actions jobs,
which already pass -I example.
…ts-eg

Replace BOOST_FOREACH with range-based for in   example/incremental-components-eg.cpp
  range-based for in example/incremental_components.cpp
…from-csr

drop BOOST_STATIC_ASSERT in csr graph
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infra CI pipelines, build system (CMake/Jamfile), packaging and tooling.

Projects

None yet

Development

Successfully merging this pull request may close these issues.