diff --git a/.bcr/presubmit.yml b/.bcr/presubmit.yml index 658def63..632e975d 100644 --- a/.bcr/presubmit.yml +++ b/.bcr/presubmit.yml @@ -1,6 +1,3 @@ -# Copyright 2025 Arthur Sonzogni. All rights reserved. -# Use of this source code is governed by the MIT license that can be found in -# the LICENSE file. matrix: platform: - centos7 diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index cc5bf336..0da4ce5d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,10 +1,12 @@ name: Build on: - create: + # On new commits to main: push: branches: - main + + # On pull requests: pull_request: branches: - main diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml new file mode 100644 index 00000000..ecc6848e --- /dev/null +++ b/.github/workflows/documentation.yaml @@ -0,0 +1,60 @@ +name: Documentation + +on: + # On new commits to main: + push: + branches: + - main + +jobs: + documentation: + runs-on: ubuntu-latest + steps: + - name: "Checkout repository" + uses: actions/checkout@v3 + + - name: "Install cmake" + uses: lukka/get-cmake@latest + + - name: "Install emsdk" + uses: mymindstorm/setup-emsdk@v7 + + - name: "Install Doxygen/Graphviz" + run: > + sudo apt-get update; + sudo apt-get install doxygen graphviz; + + - name: "Build documentation" + run: > + mkdir build; + cd build; + emcmake cmake .. + -DCMAKE_BUILD_TYPE=Release + -DFTXUI_BUILD_DOCS=ON + -DFTXUI_BUILD_EXAMPLES=ON + -DFTXUI_BUILD_TESTS=OFF + -DFTXUI_BUILD_TESTS_FUZZER=OFF + -DFTXUI_ENABLE_INSTALL=OFF + -DFTXUI_DEV_WARNINGS=ON ; + cmake --build . --target doc; + cmake --build . ; + rsync -amv + --include='*/' + --include='*.html' + --include='*.css' + --include='*.mjs' + --include='*.js' + --include='*.wasm' + --exclude='*' + examples + doc/doxygen/html; + + - name: "Deploy" + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: build/doc/doxygen/html/ + enable_jekyll: false + allow_empty_commit: false + force_orphan: true + publish_branch: gh-pages diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 502cb6c5..004c5939 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,20 +1,24 @@ +name: "Publish to Bazel Central Registry" + on: - # On manual trigger: + # Manual kick-off (you type the tag) workflow_dispatch: inputs: tag_name: + description: "Tag to publish" required: true type: string -jobs: +permissions: + contents: write + +jobs: publish: uses: bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml@v0.0.4 with: - tag_name: ${{ inputs.tag_name }} + tag_name: ${{ github.event.inputs.tag_name }} registry_fork: ArthurSonzogni/bazel-central-registry - permissions: - attestations: write - contents: write - id-token: write + attest: false + secrets: publish_token: ${{ secrets.PUBLISH_TOKEN }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..cde39cec --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,100 @@ +name: Release + +on: + # On push to a tag: + push: + tags: + - 'v*' + + # On manual trigger: + workflow_dispatch: + +permissions: + # Needed to mint attestations + id-token: write + attestations: write + # Needed to upload release assets + contents: write + +jobs: + release: + name: "Create release" + runs-on: ubuntu-latest + outputs: + upload_url: ${{ steps.create_release.outputs.upload_url }} + steps: + - name: "Create release" + uses: softprops/action-gh-release@v1 + id: create_release + with: + draft: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Build artifact for the release + package_compiled: + name: "Build packages" + needs: release + strategy: + matrix: + include: + - os: ubuntu-latest + asset_path: build/ftxui*Linux* + - os: macos-latest + asset_path: build/ftxui*Darwin* + - os: windows-latest + asset_path: build/ftxui*Win64* + runs-on: ${{ matrix.os }} + steps: + - name: Get number of CPU cores + uses: SimenB/github-actions-cpu-cores@v1 + id: cpu-cores + + - name: "Checkout repository" + uses: actions/checkout@v3 + + - name: "Install cmake" + uses: lukka/get-cmake@latest + + - name: "Build packages" + run: > + mkdir build; + cd build; + cmake .. + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_BUILD_PARALLEL_LEVEL=${{ steps.cpu-cores.outputs.count }} + -DFTXUI_BUILD_DOCS=OFF + -DFTXUI_BUILD_EXAMPLES=OFF + -DFTXUI_BUILD_TESTS=OFF + -DFTXUI_BUILD_TESTS_FUZZER=OFF + -DFTXUI_ENABLE_INSTALL=ON + -DFTXUI_DEV_WARNINGS=ON ; + cmake --build . --target package; + + - uses: shogo82148/actions-upload-release-asset@v1 + with: + upload_url: ${{ needs.release.outputs.upload_url }} + asset_path: ${{ matrix.asset_path }} + overwrite: true + + # Build "source" artifact for the release. This is the same as the github + # "source" archive, but with a stable URL. This is useful for the Bazel + # Central Repository. + package_source: + name: "Build source package" + needs: release + runs-on: ubuntu-latest + steps: + - name: "Checkout repository" + uses: actions/checkout@v3 + + - name: "Create source package" + run: > + git archive --format=tar.gz -o source.tar.gz HEAD + + - name: "Upload source package" + uses: shogo82148/actions-upload-release-asset@v1 + with: + upload_url: ${{ needs.release.outputs.upload_url }} + asset_path: source.tar.gz + overwrite: true diff --git a/CHANGELOG.md b/CHANGELOG.md index c51ad752..f074775d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,8 +23,8 @@ Development Future release ------------ -6.1.1 (2025-04-30) ------------------ +6.1.8 (2025-05-01) +------------------ ### Build - Feature: Support `bazel` build system. See #1032. @@ -34,7 +34,7 @@ Future release **MODULE.bazel** ```bazel - bazel_dep(name = "ftxui", version = "6.1.1") + bazel_dep(name = "ftxui", version = "6.1.8") ``` **BUILD.bazel** diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e8bfcc9..5d05d70b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ endif() project(ftxui LANGUAGES CXX - VERSION 6.1.1 + VERSION 6.1.8 DESCRIPTION "C++ Functional Terminal User Interface." ) diff --git a/MODULE.bazel b/MODULE.bazel index a62b403d..e625075b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,9 +1,5 @@ -# Copyright 2025 Arthur Sonzogni. All rights reserved. -# Use of this source code is governed by the MIT license that can be found in -# the LICENSE file. - # FTXUI Module. -module(name = "ftxui", version = "6.1.1") +module(name = "ftxui", version = "6.1.8", compatibility_level = 6) # Build deps. bazel_dep(name = "rules_cc", version = "0.1.1") diff --git a/README.md b/README.md index c4d76914..191024d3 100644 --- a/README.md +++ b/README.md @@ -374,7 +374,7 @@ include(FetchContent) FetchContent_Declare(ftxui GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui - GIT_TAG v6.1.1 + GIT_TAG v6.1.8 ) FetchContent_GetProperties(ftxui)