diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a5f5bce6..f367c9eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -131,25 +131,98 @@ jobs: fail-fast: false matrix: include: - - { toolset: gcc-11, install: g++-11, os: ubuntu-22.04, cxxstd: '17', build-type: 'Debug', ldflags: '' } - - { toolset: gcc-11, install: g++-11, os: ubuntu-22.04, cxxstd: '20', build-type: 'Release', ldflags: '' } - - { toolset: clang-11, install: clang-11, os: ubuntu-22.04, cxxstd: '17', build-type: 'Debug', ldflags: '' } - - { toolset: clang-11, install: clang-11, os: ubuntu-22.04, cxxstd: '20', build-type: 'Debug', ldflags: '' } - - { toolset: clang-13, install: clang-13, os: ubuntu-22.04, cxxstd: '17', build-type: 'Release', ldflags: '' } - - { toolset: clang-13, install: clang-13, os: ubuntu-22.04, cxxstd: '20', build-type: 'Release', ldflags: '' } - - { toolset: clang-14, install: 'clang-14 libc++-14-dev libc++abi-14-dev', os: ubuntu-22.04, cxxstd: '17', build-type: 'Debug', cxxflags: '-stdlib=libc++', ldflags: '-lc++' } - - { toolset: clang-14, install: 'clang-14 libc++-14-dev libc++abi-14-dev', os: ubuntu-22.04, cxxstd: '20', build-type: 'Release', cxxflags: '-stdlib=libc++', ldflags: '-lc++' } + - toolset: gcc-11 + install: g++-11 + os: ubuntu-latest + container: ubuntu:22.04 + cxxstd: '17' + build-type: 'Debug' + ldflags: '' + + - toolset: gcc-11 + install: g++-11 + os: ubuntu-latest + container: ubuntu:22.04 + cxxstd: '20' + build-type: 'Release' + ldflags: '' + + - toolset: clang-11 + install: clang-11 + os: ubuntu-latest + container: ubuntu:22.04 + cxxstd: '17' + build-type: 'Debug' + ldflags: '' + + - toolset: clang-11 + install: clang-11 + os: ubuntu-latest + container: ubuntu:22.04 + cxxstd: '20' + build-type: 'Debug' + ldflags: '' + + - toolset: clang-13 + install: clang-13 + os: ubuntu-latest + container: ubuntu:22.04 + cxxstd: '17' + build-type: 'Release' + ldflags: '' + + - toolset: clang-13 + install: clang-13 + os: ubuntu-latest + container: ubuntu:22.04 + cxxstd: '20' + build-type: 'Release' + ldflags: '' + + - toolset: clang-14 + install: 'clang-14 libc++-14-dev libc++abi-14-dev' + os: ubuntu-latest + container: ubuntu:22.04 + cxxstd: '17' + build-type: 'Debug' + cxxflags: '-stdlib=libc++' + ldflags: '-lc++' + + - toolset: clang-14 + install: 'clang-14 libc++-14-dev libc++abi-14-dev' + os: ubuntu-latest + container: ubuntu:22.04 + cxxstd: '20' + build-type: 'Release' + cxxflags: '-stdlib=libc++' + ldflags: '-lc++' + runs-on: ${{ matrix.os }} + container: ${{matrix.container}} env: CXXFLAGS: ${{matrix.cxxflags}} -Wall -Wextra LDFLAGS: ${{matrix.ldflags}} CMAKE_BUILD_PARALLEL_LEVEL: 4 + BOOST_REDIS_TEST_SERVER: redis + + services: + redis: + image: redis + steps: - name: Checkout uses: actions/checkout@v3 + - name: Setup container environment + if: matrix.container + run: | + apt-get update + apt-get -y install sudo python3 git g++ libssl-dev protobuf-compiler redis-server + - name: Install dependencies - run: sudo apt-get -y install cmake protobuf-compiler redis-server python3 ${{ matrix.install }} + run: | + sudo apt-get update + sudo apt-get -y install cmake protobuf-compiler redis-server python3 ${{ matrix.install }} - name: Setup Boost run: ./tools/ci.py setup-boost --source-dir=$(pwd) @@ -209,15 +282,32 @@ jobs: fail-fast: false matrix: include: - - { toolset: gcc-11, install: g++-11, cxxstd: "11,17,20" } # Having C++11 shouldn't break the build - - { toolset: clang-14, install: clang-14, cxxstd: "17,20" } - runs-on: ubuntu-22.04 + - toolset: gcc-11 + install: g++-11 + cxxstd: "11,17,20" # Having C++11 shouldn't break the build + os: ubuntu-latest + container: ubuntu:22.04 + - toolset: clang-14 + install: clang-14 + os: ubuntu-latest + container: ubuntu:22.04 + cxxstd: "17,20" + runs-on: ${{ matrix.os }} + container: ${{matrix.container}} steps: - name: Checkout uses: actions/checkout@v3 + - name: Setup container environment + if: matrix.container + run: | + apt-get update + apt-get -y install sudo python3 git g++ libssl-dev + - name: Install dependencies - run: sudo apt-get -y install python3 ${{ matrix.install }} + run: | + sudo apt-get update + sudo apt-get -y install python3 ${{ matrix.install }} - name: Setup Boost run: ./tools/ci.py setup-boost --source-dir=$(pwd) diff --git a/README.md b/README.md index 16c4a7b5..69335443 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ examples and tests cmake is supported, for example ```cpp # Linux -$ BOOST_ROOT=/opt/boost_1_81_0 cmake --preset g++-11 +$ BOOST_ROOT=/opt/boost_1_84_0 cmake --preset g++-11 # Windows $ cmake -G "Visual Studio 17 2022" -A x64 -B bin64 -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake @@ -676,7 +676,7 @@ https://lists.boost.org/Archives/boost/2023/01/253944.php. ## Changelog -### develop +### Boost 1.84 (First release in Boost) * Deprecates the `async_receive` overload that takes a response. Users should now first call `set_receive_response` to avoid constantly and diff --git a/doc/Jamfile b/doc/Jamfile index ca9602dc..81212ec0 100644 --- a/doc/Jamfile +++ b/doc/Jamfile @@ -12,6 +12,8 @@ path-constant include_dir : ../include ; path-constant examples_dir : ../example ; path-constant readme : ../README.md ; path-constant layout_file : DoxygenLayout.xml ; +path-constant header : header.html ; +path-constant footer : footer.html ; local stylesheet_files = [ path.glob $(this_dir) : *.css ] ; local includes = [ path.glob-tree $(include_dir) : *.hpp *.cpp ] ; @@ -27,7 +29,7 @@ doxygen doc.html $(includes) $(examples) $(readme) : "PROJECT_NAME=Boost.Redis" - PROJECT_NUMBER="1.4.2" + PROJECT_NUMBER="1.84.0" PROJECT_BRIEF="A redis client library" "STRIP_FROM_PATH=\"$(redis_root_dir)\"" "STRIP_FROM_INC_PATH=\"$(include_dir)\"" @@ -46,10 +48,13 @@ doxygen doc.html EXCLUDE_SYMBOLS=std "USE_MDFILE_AS_MAINPAGE=\"$(readme)\"" SOURCE_BROWSER=YES + "HTML_HEADER=\"$(header)\"" + "HTML_FOOTER=\"$(footer)\"" "HTML_EXTRA_STYLESHEET=$(stylesheet_arg)" HTML_TIMESTAMP=YES GENERATE_TREEVIEW=YES - FULL_SIDEBAR=NO + FULL_SIDEBAR=YES + DISABLE_INDEX=YES ENUM_VALUES_PER_LINE=0 OBFUSCATE_EMAILS=YES USE_MATHJAX=YES diff --git a/doc/doxygen-awesome-sidebar-only.css b/doc/doxygen-awesome-sidebar-only.css index 656ebbf4..edc5c762 100644 --- a/doc/doxygen-awesome-sidebar-only.css +++ b/doc/doxygen-awesome-sidebar-only.css @@ -32,80 +32,104 @@ html { * Make sure it is wide enough to contain the page title (logo + title + version) */ --side-nav-fixed-width: 335px; - --menu-display: none; - - --top-height: 120px; - --toc-sticky-top: -25px; - --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 25px); } #projectname { white-space: nowrap; } +#page-wrapper { + height: calc(100vh - 100px); + display: flex; + flex-direction: column; +} + +#content-wrapper { + display: flex; + flex-direction: row; + min-height: 0; +} + +#doc-content { + overflow-y: scroll; + flex: 1; + height: auto !important; +} -@media screen and (min-width: 768px) { +@media (min-width: 768px) { html { --searchbar-background: var(--page-background-color); } - #side-nav { + #sidebar-wrapper { + display: flex; + flex-direction: column; min-width: var(--side-nav-fixed-width); - max-width: var(--side-nav-fixed-width); - top: var(--top-height); - overflow: visible; + max-width: var(--side-nav-fixed-width); + background-color: var(--side-nav-background); + border-right: 1px solid rgb(222, 222, 222); } - #nav-tree, #side-nav { - height: calc(100vh - var(--top-height)) !important; + #search-box-wrapper { + display: flex; + flex-direction: row; + padding-left: 1em; + padding-right: 1em; } - #nav-tree { - padding: 0; + #MSearchBox { + flex: 1; + display: flex; + padding-left: 1em; + padding-right: 1em; } - #top { - display: block; - border-bottom: none; - height: var(--top-height); - margin-bottom: calc(0px - var(--top-height)); - max-width: var(--side-nav-fixed-width); - overflow: hidden; - background: var(--side-nav-background); + + #MSearchBox .left { + display: flex; + flex: 1; + position: static; + align-items: center; + justify-content: flex-start; + width: auto; + height: auto; } - #main-nav { - float: left; - padding-right: 0; + + #MSearchBox .right { + display: none; } - .ui-resizable-handle { - cursor: default; - width: 1px !important; - box-shadow: 0 calc(-2 * var(--top-height)) 0 0 var(--separator-color); + #MSearchSelect { + padding-left: 0.75em; + left: auto; + background-repeat: no-repeat; } - #nav-path { - position: fixed; - right: 0; - left: var(--side-nav-fixed-width); - bottom: 0; + #MSearchField { + flex: 1; + position: static; width: auto; + height: auto; } - #doc-content { - height: calc(100vh - 31px) !important; - padding-bottom: calc(3 * var(--spacing-large)); - padding-top: calc(var(--top-height) - 80px); - box-sizing: border-box; - margin-left: var(--side-nav-fixed-width) !important; + #nav-tree { + height: auto !important; } - #MSearchBox { - width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium))); + #nav-sync { + display: none; } - #MSearchField { - width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 65px); + #top { + display: block; + border-bottom: none; + max-width: var(--side-nav-fixed-width); + background: var(--side-nav-background); + } + + .ui-resizable-handle { + cursor: default; + width: 1px !important; } #MSearchResultsWindow { @@ -113,3 +137,9 @@ html { right: auto; } } + +@media (max-width: 768px) { + #sidebar-wrapper { + display: none; + } +} diff --git a/doc/doxygen-awesome.css b/doc/doxygen-awesome.css index 3bb7a290..1a51ca84 100644 --- a/doc/doxygen-awesome.css +++ b/doc/doxygen-awesome.css @@ -552,25 +552,6 @@ a.anchor { margin-top: 0; } -/* until Doxygen 1.9.4 */ -.left img#MSearchSelect { - left: 0; - user-select: none; - padding-left: 8px; -} - -/* Doxygen 1.9.5 */ -.left span#MSearchSelect { - left: 0; - user-select: none; - margin-left: 8px; - padding: 0; -} - -.left #MSearchSelect[src$=".png"] { - padding-left: 0 -} - .SelectionMark { user-select: none; } @@ -614,9 +595,7 @@ a.anchor { #MSearchField { font-size: var(--navigation-font-size); - height: calc(var(--searchbar-height) - 2px); background: transparent; - width: calc(var(--searchbar-width) - 64px); } .MSearchBoxActive #MSearchField { diff --git a/doc/footer.html b/doc/footer.html new file mode 100644 index 00000000..499f9e2b --- /dev/null +++ b/doc/footer.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/doc/header.html b/doc/header.html new file mode 100644 index 00000000..7292889f --- /dev/null +++ b/doc/header.html @@ -0,0 +1,61 @@ + + + + + + + + +$projectname: $title +$title + + + +$treeview +$search +$mathjax + +$extrastylesheet + + +
+
+