chore: migrate repository to standard knowledge base layout

This commit is contained in:
tukuaiai
2026-05-02 03:29:06 +08:00
parent 40a721c24d
commit 628a3bc832
565 changed files with 687 additions and 711 deletions
@@ -0,0 +1,12 @@
# These are supported funding model platforms
github: aristocratos
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: aristocratos
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: https://paypal.me/aristocratos
@@ -0,0 +1,59 @@
---
name: Bug report
about: Create a report to help us improve
labels: bug
---
**Read the README.md and search for similar issues before posting a bug report!**
<!-- Any bug that can be solved by just reading the [prerequisites](https://github.com/aristocratos/btop#prerequisites) section of the README will likely be ignored. -->
**Describe the bug**
<!-- A clear and concise description of what the bug is. -->
**To Reproduce**
<!-- Steps to reproduce the behavior. ->
**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->
**Info (please complete the following information):**
- btop++ version: `btop --version`
- If using snap: `snap info btop`
- Binary: [self compiled or static binary from release]
- Architecture: [x86_64, aarch64, etc.] `uname -m`
- Platform: [Linux, FreeBSD, OsX]
- (Linux) Kernel: `uname -r`
- (OSX/FreeBSD) Os release version:
- Terminal used:
- Font used:
**Additional context**
<!-- Contents of `~/.local/state/btop.log` -->
<!-- Note: The snap uses: `~/snap/btop/current/.local/state/btop.log` -->
<!-- (try running btop with `--debug` flag if btop.log is empty) -->
**GDB Backtrace**
<!-- If btop++ is crashing at start the following steps could be helpful: -->
<!-- (Extra helpful if compiled with `make OPTFLAGS="-O0 -g"`) -->
<!-- 1. run (linux): `gdb btop` (macos): `lldb btop` -->
<!-- 2. `r` to run, wait for crash and press enter if prompted, CTRL+L to clear screen if needed. -->
<!-- 3. (gdb): `thread apply all bt` (lldb): `bt all` to get backtrace for all threads -->
<!-- 4. Copy and paste the backtrace here: -->
@@ -0,0 +1,22 @@
---
name: Feature request
about: Suggest an idea for this project
labels: feature
---
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
@@ -0,0 +1,48 @@
name: FreeBSD CMake
on:
push:
branches: main
tags-ignore: '*.*'
paths:
- '.github/workflows/cmake-freebsd.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/freebsd/*pp'
pull_request:
branches: main
paths:
- '.github/workflows/cmake-freebsd.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/freebsd/*pp'
jobs:
build:
name: freebsd-${{ matrix.version}}-${{ matrix.arch}}
runs-on: ubuntu-24.04
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ matrix.arch }}-${{ matrix.version }}
cancel-in-progress: true
strategy:
matrix:
arch: ['aarch64', 'x86_64']
version: ['14.3', '15.0']
steps:
- uses: actions/checkout@v6
- name: Compile
uses: vmactions/freebsd-vm@v1
with:
arch: ${{ matrix.arch }}
release: ${{ matrix.version }}
usesh: true
prepare: pkg install -y cmake git ninja
run: |
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build --verbose
ctest --test-dir build
@@ -0,0 +1,66 @@
name: Linux CMake
on:
push:
branches: main
tags-ignore: '*.*'
paths:
- '.github/workflows/cmake-linux.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/linux/*pp'
pull_request:
branches: main
paths:
- '.github/workflows/cmake-linux.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/linux/*pp'
jobs:
build:
name: ${{ matrix.compiler }}-${{ matrix.version }}
runs-on: ubuntu-24.04
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ matrix.compiler }}-${{ matrix.version }}
cancel-in-progress: true
strategy:
matrix:
include:
- compiler: clang
version: 19
- compiler: clang
version: 20
- compiler: clang
version: 21
- compiler: gcc
version: 14
steps:
- uses: actions/checkout@v6
- name: Install clang ${{ matrix.version }}
if: ${{ matrix.compiler == 'clang' }}
run: wget -qO - https://apt.llvm.org/llvm.sh | sudo bash -s -- ${{ matrix.version }} all
- name: Configure
run: |
if [[ "${{ matrix.compiler }}" == "clang" ]]; then
export CC=clang-${{ matrix.version }}
export CXX=clang++-${{ matrix.version }}
export CXXFLAGS="-stdlib=libc++"
export LDFLAGS="-fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind"
else
export CC=gcc-${{ matrix.version }}
export CXX=g++-${{ matrix.version }}
fi
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
- name: Compile
run: cmake --build build --verbose
- name: Test
run: ctest --test-dir build
@@ -0,0 +1,52 @@
name: macOS CMake
on:
push:
branches: main
tags-ignore: '*.*'
paths:
- '.github/workflows/cmake-macos.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/osx/*pp'
pull_request:
branches: main
paths:
- '.github/workflows/cmake-macos.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/osx/*pp'
jobs:
cmake_build_on_macos:
runs-on: macos-15
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v6
- name: Install build tools
run: |
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew update --quiet
brew install --force --overwrite cmake llvm lld ninja
- name: Configure
run: |
export LLVM_PREFIX="$(brew --prefix llvm)"
export LLD_PREFIX="$(brew --prefix lld)"
export CXX="$LLVM_PREFIX/bin/clang++"
export CPPFLAGS="-I$LLVM_PREFIX/include"
export LDFLAGS="-L$LLVM_PREFIX/lib -L$LLVM_PREFIX/lib/c++ -Wl,-rpath,$LLVM_PREFIX/lib/c++ -fuse-ld=$LLD_PREFIX/bin/ld64.lld"
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
- name: Compile
run: cmake --build build --verbose
- name: Test
run: ctest --test-dir build
@@ -0,0 +1,53 @@
name: NetBSD CMake
on:
push:
branches: main
tags-ignore: '*.*'
paths:
- '.github/workflows/cmake-netbsd.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/netbsd/*pp'
pull_request:
branches: main
paths:
- '.github/workflows/cmake-netbsd.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/netbsd/*pp'
jobs:
build:
name: netbsd-${{ matrix.version }}-${{ matrix.arch }}
runs-on: ubuntu-24.04
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ matrix.arch }}-${{ matrix.version }}
cancel-in-progress: true
strategy:
matrix:
arch: ['aarch64', 'amd64']
version: ['10.1']
steps:
- uses: actions/checkout@v6
- name: Compile
uses: vmactions/netbsd-vm@v1
with:
arch: ${{ matrix.arch }}
release: ${{ matrix.version }}
usesh: true
prepare: |
export PATH="/usr/pkg/sbin:/usr/pkg/bin:$PATH"
export PKG_PATH="https://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/${{ matrix.arch }}/${{ matrix.version }}/All/"
/usr/sbin/pkg_add pkgin
pkgin -y install cmake gcc14 git ninja-build
run: |
export CXX="/usr/pkg/gcc14/bin/g++"
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build --verbose
ctest --test-dir build
@@ -0,0 +1,48 @@
name: OpenBSD CMake
on:
push:
branches: main
tags-ignore: '*.*'
paths:
- '.github/workflows/cmake-openbsd.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/openbsd/*pp'
pull_request:
branches: main
paths:
- '.github/workflows/cmake-openbsd.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/**'
- 'src/*pp'
- 'src/openbsd/*pp'
jobs:
build:
name: openbsd-${{ matrix.version}}-${{ matrix.arch}}
runs-on: ubuntu-24.04
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ matrix.arch }}-${{ matrix.version }}
cancel-in-progress: true
strategy:
matrix:
arch: ['aarch64', 'x86_64']
version: ['7.8']
steps:
- uses: actions/checkout@v6
- name: Compile
uses: vmactions/openbsd-vm@v1
with:
arch: ${{ matrix.arch }}
release: ${{ matrix.version }}
usesh: true
prepare: pkg_add cmake git ninja
run: |
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build --verbose
ctest --test-dir build
@@ -0,0 +1,67 @@
name: Continuous Build FreeBSD
on:
workflow_dispatch:
push:
branches:
- main
tags-ignore:
- '*.*'
paths:
- 'src/**'
- '!src/linux/**'
- '!src/osx/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-freebsd.yml'
pull_request:
branches:
- main
paths:
- 'src/**'
- '!src/linux/**'
- '!src/osx/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-freebsd.yml'
jobs:
build-freebsd:
runs-on: ubuntu-24.04
timeout-minutes: 20
strategy:
matrix:
compiler: ["clang++", "g++"]
steps:
- uses: actions/checkout@v6
- name: Compile
uses: vmactions/freebsd-vm@v1
with:
release: '14.3'
usesh: true
prepare: |
pkg install -y gmake gcc15 coreutils git lowdown
git config --global --add safe.directory /home/runner/work/btop/btop
run: |
if [ "${{ matrix.compiler }}" == "g++" ]; then
CXX=g++15
COMPILER=gcc
else
CXX=clang++
COMPILER=llvm
fi
gmake STATIC=true STRIP=true
GIT_HASH=$(git rev-parse --short "$GITHUB_SHA")
mv bin/btop bin/btop-"$COMPILER"-"$GIT_HASH"
ls -alh bin
- uses: actions/upload-artifact@v5
with:
name: btop-x86_64-freebsd-14-${{ matrix.compiler }}
path: 'bin/*'
if-no-files-found: error
@@ -0,0 +1,47 @@
name: Continuous Build Gpu
on:
workflow_dispatch:
push:
branches:
- main
tags-ignore:
- '*.*'
paths:
- 'src/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-gpu.yml'
pull_request:
branches:
- main
paths:
- 'src/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-gpu.yml'
jobs:
gpu_build_linux:
runs-on: ubuntu-24.04
container: alpine:edge
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v6
- name: Install build tools
run: apk add --no-cache --update gcc g++ make linux-headers
- name: Compile
run: make CXX=g++ GPU_SUPPORT=true
@@ -0,0 +1,87 @@
name: Continuous Build Linux
on:
workflow_dispatch:
push:
branches: main
tags-ignore: '*.*'
paths:
- 'src/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-linux.yml'
pull_request:
branches: main
paths:
- 'src/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-linux.yml'
jobs:
build:
runs-on: ubuntu-24.04
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ matrix.toolchain }}
cancel-in-progress: true
continue-on-error: true
strategy:
matrix:
toolchain:
- aarch64-unknown-linux-musl
- arm-unknown-linux-musleabi
- arm-unknown-linux-musleabihf
- armv7-unknown-linux-musleabi
- armv7-unknown-linux-musleabihf
- i586-unknown-linux-musl
- i686-unknown-linux-musl
- m68k-unknown-linux-musl
- mips-unknown-linux-musl
- mips-unknown-linux-muslsf
- mips64-unknown-linux-musl
- mips64el-unknown-linux-musl
- mipsel-unknown-linux-musl
- mipsel-unknown-linux-muslsf
- powerpc-unknown-linux-musl
- powerpc64-unknown-linux-musl
- powerpc64le-unknown-linux-musl
- powerpcle-unknown-linux-musl
- riscv32-unknown-linux-musl
- riscv64-unknown-linux-musl
- s390x-ibm-linux-musl
- x86_64-unknown-linux-musl
steps:
- uses: actions/checkout@v6
- name: Install cross toolchain
run: |
wget -q -P /tmp https://github.com/cross-tools/musl-cross/releases/download/20250929/${{ matrix.toolchain }}.tar.xz
wget -q -P /tmp https://github.com/cross-tools/musl-cross/releases/download/20250929/${{ matrix.toolchain }}.tar.xz.sha256
echo "$(cat /tmp/${{ matrix.toolchain }}.tar.xz.sha256) /tmp/${{ matrix.toolchain }}.tar.xz" | sha256sum --check --status
mkdir -p /opt/x-tools/
tar -xf /tmp/${{ matrix.toolchain }}.tar.xz -C /opt/x-tools
- name: Compile
run: CXX=/opt/x-tools/${{ matrix.toolchain }}/bin/${{ matrix.toolchain }}-g++ make STATIC=true STRIP=true
- name: Create binary artifacts
run: |
TOOLCHAIN=${{ matrix.toolchain }}
GIT_HASH=$(git rev-parse --short "${{ github.sha }}")
FILENAME=btop-${TOOLCHAIN/linux-musl/}-$GIT_HASH
mv bin/btop bin/$FILENAME
- name: Upload artifacts
uses: actions/upload-artifact@v5
with:
name: btop-${{ matrix.toolchain }}
path: '${{ github.workspace }}/bin/*'
@@ -0,0 +1,64 @@
name: Continuous Build MacOS
on:
workflow_dispatch:
push:
branches:
- main
tags-ignore:
- '*.*'
paths:
- 'src/**'
- '!src/linux/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-macos.yml'
pull_request:
branches:
- main
paths:
- 'src/**'
- '!src/linux/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-macos.yml'
jobs:
build-macos:
strategy:
matrix:
os:
# - {runner: 'macos-13', version: 'Ventura'}
- {runner: 'macos-14', version: 'Sonoma'}
- {runner: 'macos-15', version: 'Sequoia'}
runs-on: ${{ matrix.os.runner }}
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- uses: actions/checkout@v6
- name: Install build tools
run: |
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew update --quiet
brew install --force --overwrite gcc@15 lowdown
- name: Compile
run: |
make CXX=$(brew --prefix)/bin/g++-15
GIT_HASH=$(git rev-parse --short "$GITHUB_SHA")
mv bin/btop bin/btop-arm64-${{ matrix.os.runner }}-${{ matrix.os.version }}-$GIT_HASH
ls -alh bin
- uses: actions/upload-artifact@v5
with:
name: btop-arm64-${{ matrix.os.runner }}-${{ matrix.os.version }}
path: 'bin/*'
@@ -0,0 +1,63 @@
name: Continuous Build NetBSD
on:
workflow_dispatch:
push:
branches:
- main
tags-ignore:
- '*.*'
paths:
- 'src/**'
- '!src/linux/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-netbsd.yml'
pull_request:
branches:
- main
paths:
- 'src/**'
- '!src/linux/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-netbsd.yml'
jobs:
build-netbsd:
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
- name: Compile
uses: vmactions/netbsd-vm@v1
with:
release: '10.1'
usesh: true
prepare: |
PATH="/usr/pkg/sbin:/usr/pkg/bin:$PATH"
PKG_PATH="https://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/10.1/All/"
export PATH PKG_PATH
/usr/sbin/pkg_add pkgin
pkgin -y install gmake gcc14 coreutils git
git config --global --add safe.directory /home/runner/work/btop/btop
run: |
gmake CXX=/usr/pkg/gcc14/bin/g++ CXXFLAGS='-DNDEBUG -I/usr/pkg/gcc10/include -I/usr/include -I/usr/pkg/include' STATIC=true STRIP=true
GIT_HASH=$(git rev-parse --short "$GITHUB_SHA")
mv bin/btop bin/btop-GCC10-"$GIT_HASH"
ls -alh bin
- uses: actions/upload-artifact@v5
with:
name: btop-x86_64-netbsd-9.3
path: 'bin/*'
if-no-files-found: error
@@ -0,0 +1,56 @@
name: Continuous Build OpenBSD
on:
workflow_dispatch:
push:
branches:
- main
tags-ignore:
- '*.*'
paths:
- 'src/**'
- '!src/linux/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-openbsd.yml'
pull_request:
branches:
- main
paths:
- 'src/**'
- '!src/linux/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/continuous-build-openbsd.yml'
jobs:
build-openbsd:
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
- name: Compile
uses: vmactions/openbsd-vm@v1
with:
release: '7.8'
usesh: true
prepare: |
pkg_add gmake coreutils git lowdown
git config --global --add safe.directory /home/runner/work/btop/btop
run: |
gmake STATIC=true STRIP=true
GIT_HASH=$(git rev-parse --short "$GITHUB_SHA")
mv bin/btop bin/btop-"$GIT_HASH"
- uses: actions/upload-artifact@v5
with:
name: btop-x86_64-openbsd-7.8
path: 'bin/*'
if-no-files-found: error
@@ -0,0 +1,47 @@
name: 🧪 Test snap can be built on x86_64
on:
workflow_dispatch:
push:
branches: [ main ]
tags-ignore:
- '*.*'
paths:
- 'src/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/test-snap-can-build.yml'
- 'snap/snapcraft.yaml'
pull_request:
branches: [ main ]
paths:
- 'src/**'
- '!src/osx/**'
- '!src/freebsd/**'
- '!src/netbsd/**'
- '!src/openbsd/**'
- 'include/**'
- 'Makefile'
- '.github/workflows/test-snap-can-build.yml'
- 'snap/snapcraft.yaml'
jobs:
build:
runs-on: ubuntu-24.04
strategy:
matrix:
node-version: [20.x]
steps:
- uses: actions/checkout@v6
- uses: snapcore/action-build@v1
id: build
- uses: diddlesnaps/snapcraft-review-action@v1
with:
snap: ${{ steps.build.outputs.snap }}
isClassic: 'false'