diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 52a9b01..0d16cab 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -1,7 +1,6 @@ name: CD # Continuous Deployment permissions: contents: write - on: push: tags: @@ -12,7 +11,6 @@ on: description: "Tag to deploy" required: true default: "0.0.0" - jobs: create-release: name: Create a release @@ -24,7 +22,6 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Generate a changelog uses: orhun/git-cliff-action@v4 with: @@ -32,17 +29,14 @@ jobs: args: --latest --strip header env: OUTPUT: BODY.md - - name: Publish on GitHub uses: ncipollo/release-action@v1 with: prerelease: false bodyFile: BODY.md - publish-release: name: Publishing for ${{ matrix.os }} runs-on: ${{ matrix.os }} - strategy: fail-fast: false matrix: @@ -89,7 +83,6 @@ jobs: architecture: i686 binary-postfix: "" use-cross: true - steps: - name: Checkout repository uses: actions/checkout@v4 @@ -97,35 +90,26 @@ jobs: uses: actions-rs/toolchain@v1 with: toolchain: stable - target: ${{ matrix.target }} - profile: minimal override: true - - name: Install musl for musl target if: matrix.target == 'x86_64-unknown-linux-musl' shell: bash run: | sudo apt update sudo apt-get install -y musl musl-tools - - uses: Swatinem/rust-cache@v2 - name: Cargo build uses: actions-rs/cargo@v1 with: command: build - use-cross: ${{ matrix.use-cross }} - toolchain: stable - args: --release --target ${{ matrix.target }} - - name: install strip command shell: bash - run: | - + run: |2 if [[ ${{ matrix.target }} == aarch64-unknown-linux-gnu ]]; then sudo apt update @@ -133,8 +117,7 @@ jobs: fi - name: Packaging final binary shell: bash - run: | - + run: |2 ####### reduce binary size by removing debug symbols ####### BIN=target/${{ matrix.target }}/release/tv${{ matrix.binary-postfix }} @@ -156,7 +139,7 @@ jobs: mkdir -p "$RELEASE_NAME"/doc cp $BIN "$RELEASE_NAME"/ cp {README.md,LICENSE} "$RELEASE_NAME"/ - cp {CHANGELOG.md,docs/*,man/*} "$RELEASE_NAME"/doc/ + cp -r {CHANGELOG.md,docs/*,man/*} "$RELEASE_NAME"/doc/ tar czvf "$RELEASE_NAME".tar.gz "$RELEASE_NAME" @@ -173,23 +156,18 @@ jobs: run: | Compress-Archive -Path "$env:BIN" -Destination "$($env:RELEASE_NAME).zip" (Get-FileHash "$($env:RELEASE_NAME).zip" -Algorithm SHA256).Hash.ToLower() > "$($env:RELEASE_NAME).zip.sha256" - - name: Releasing assets uses: softprops/action-gh-release@v2 with: - files: | - + files: |2 tv-*.tar.gz tv-*.zip tv-*.sha256 - env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - publish-release-deb: name: publish-release-deb runs-on: ubuntu-latest - strategy: fail-fast: false matrix: @@ -203,18 +181,15 @@ jobs: - target: aarch64-unknown-linux-gnu os: linux arch: arm64 - env: # Emit backtraces on panics. RUST_BACKTRACE: 1 # Since we're distributing the dpkg, we don't know whether the user will # have PCRE2 installed, so just do a static build. PCRE2_SYS_STATIC: 1 - steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Install packages (Ubuntu) shell: bash run: | @@ -225,36 +200,30 @@ jobs: sudo apt-get update sudo apt-get install -y --no-install-recommends \ zsh xz-utils liblz4-tool musl-tools brotli zstd - - name: Install Rust uses: dtolnay/rust-toolchain@master with: toolchain: nightly target: ${{ matrix.target }} - # for some reason, the above action doesn't seem to set the target correctly - name: Add rustup target shell: bash run: | rustup target add ${{ matrix.target }} - - name: Install cargo-deb and cross shell: bash run: | cargo install cargo-deb cross - - name: Create deployment directory shell: bash run: | dir=deployment/deb mkdir -p "$dir" echo "DEPLOY_DIR=$dir" >> $GITHUB_ENV - - name: Copy man page shell: bash run: | cp man/tv.1 "$DEPLOY_DIR/" - - name: Build release binary shell: bash run: | @@ -276,7 +245,6 @@ jobs: echo "DEB_DIR=$DEB_DIR" >> $GITHUB_ENV echo "DEB_NAME=$DEB_NAME" >> $GITHUB_ENV - - name: Create sha256 sum of deb file shell: bash run: | @@ -284,7 +252,6 @@ jobs: sum="$DEB_NAME.sha256" shasum -a 256 "$DEB_NAME" > "$sum" echo "SUM=$sum" >> $GITHUB_ENV - - name: Upload release archive env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -293,22 +260,18 @@ jobs: cd "$DEB_DIR" version="${{ github.ref_name }}" gh release upload "$version" "$DEB_NAME" "$SUM" - packaging: name: Packaging runs-on: ubuntu-latest needs: [create-release, publish-release, publish-release-deb] - steps: - name: Checkout uses: actions/checkout@v4 - - name: Import GPG key uses: crazy-max/ghaction-import-gpg@v6 with: gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} passphrase: ${{ secrets.GPG_PASSPHRASE }} - - name: Run repository update run: | sudo apt-get update diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 71731d3..938c926 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -28,7 +28,7 @@ jobs: GITHUB_REPO: ${{ github.repository }} - name: Copy changelog to docs run: | - cp CHANGELOG.md 'docs/02-Developers/03-patch-notes.md + cp CHANGELOG.md 'docs/02-Developers/03-patch-notes.md' - name: Extract branch name shell: bash run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT diff --git a/.gitignore b/.gitignore index 105179d..9800ba6 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ Cargo.lock # Visual Studio Code .vscode/ +**/node_modules/ diff --git a/Cargo.lock b/Cargo.lock index 3004f96..cb32930 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -224,9 +224,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.27" +version = "1.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" +checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" dependencies = [ "shlex", ] @@ -939,6 +939,17 @@ dependencies = [ "syn", ] +[[package]] +name = "io-uring" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "is-terminal" version = "0.4.16" @@ -1326,9 +1337,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "plist" -version = "1.7.2" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d77244ce2d584cd84f6a15f86195b8c9b2a0dfbfd817c09e0464244091a58ed" +checksum = "546b279bf0638ee811d9e47de2ca5b66575a543035d79fdf83959dd2f5c3b4c3" dependencies = [ "base64", "indexmap 2.10.0", @@ -1692,6 +1703,18 @@ dependencies = [ "serde_json", ] +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -1741,16 +1764,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf65a400f8f66fb7b0552869ad70157166676db75ed8181f8104ea91cf9d0b42" +checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", "indexmap 2.10.0", - "schemars", + "schemars 0.9.0", + "schemars 1.0.4", "serde", "serde_derive", "serde_json", @@ -1760,9 +1784,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81679d9ed988d5e9a5e6531dc3f2c28efbd639cbd1dfb628df08edea6004da77" +checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ "darling", "proc-macro2", @@ -1859,6 +1883,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" +[[package]] +name = "slab" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" + [[package]] name = "smallvec" version = "1.15.1" @@ -1952,7 +1982,7 @@ dependencies = [ [[package]] name = "television" -version = "0.11.9" +version = "0.12.0" dependencies = [ "ansi-to-tui", "anyhow", @@ -2096,17 +2126,19 @@ dependencies = [ [[package]] name = "tokio" -version = "1.45.1" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", + "slab", "socket2", "tokio-macros", "windows-sys 0.52.0", diff --git a/Cargo.toml b/Cargo.toml index a417b65..eac2209 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "television" -version = "0.11.9" +version = "0.12.0" edition = "2024" description = "Cross-platform, fast and extensible general purpose fuzzy finder TUI." license = "MIT" @@ -14,16 +14,7 @@ categories = [ "concurrency", "development-tools", ] -include = [ - "LICENSE", - "README.md", - "themes/**/*.toml", - "television/**", - ".config/config.toml", - "cable", - "build.rs", - "man", -] +exclude = ["website", ".github", "apt", "website"] rust-version = "1.87" build = "build.rs" @@ -146,6 +137,10 @@ section = "utils" priority = "optional" depends = "$auto" assets = [ - ["target/release/tv", "usr/bin/", "755"], - { source = "man/tv.1", dest = "usr/share/man/man1/", mode = "644"}, + [ + "target/release/tv", + "usr/bin/", + "755", + ], + { source = "man/tv.1", dest = "usr/share/man/man1/", mode = "644" }, ] diff --git a/website/.gitignore b/website/.gitignore index b2d6de3..50b2292 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -1,8 +1,8 @@ # Dependencies -/node_modules +node_modules # Production -/build +build # Generated files .docusaurus