Compare commits

..

32 Commits

Author SHA1 Message Date
release-plz-for-ac-qu-ai-nt[bot]
833cc52252 chore(ac-qu-ai-nt): release v0.0.14 2024-10-16 06:16:45 +00:00
J / Jacob Babich
f392562f81 style(multibinary): mark the Clippy lint against manually implementing Default for Command as allowed 2024-10-16 02:16:22 -04:00
J / Jacob Babich
3169ab4cda ci(daily): change the time it runs to 09:26 UTC 2024-10-16 02:11:37 -04:00
J / Jacob Babich
7480cdcf96 feat(multibinary): support running the binary without arguments (using a sensible user interface as the default), and improve error reporting by using snafu 2024-10-16 02:07:57 -04:00
J / Jacob Babich
aee2678638 chore(multibinary): add cfg-if and snafu as dependencies 2024-10-16 02:06:50 -04:00
J / Jacob Babich
aa0e7481d6 docs: explain the project breakdown and issue and pull request mechanics 2024-10-15 20:05:29 -04:00
J / Jacob Babich
4a31e2311e ci(compile-and-publish-binaries-to-release): specify the target to build for 2024-10-15 20:05:29 -04:00
J
3fd754fbd2 Merge pull request #20 from babichjacob/release-plz-2024-10-07T20-24-50Z
chore: release
2024-10-15 19:36:30 -04:00
release-plz-for-ac-qu-ai-nt[bot]
786949f79c chore: release 2024-10-15 23:27:22 +00:00
J / Jacob Babich
45e5c037ce ci(daily): change time for running to 23:41 so I can verify it works in a few minutes 2024-10-15 19:24:52 -04:00
J / Jacob Babich
09c42f0546 ci(check-and-build-and-test): in the msrv job, check x86_64-apple-darwin on macos-latest and x86_64-unknown-linux-musl on ubuntu-latest now that it's justifiable with the number of jobs spawning reduced from 1c436c8fb4 2024-10-15 19:15:15 -04:00
J / Jacob Babich
1c436c8fb4 ci(check-and-build-and-test): in the msrv job, remove the crate_directory dimension for a speed up (instead, I just copied and pasted the steps for it) 2024-10-15 19:12:37 -04:00
J / Jacob Babich
6717af965d ci(daily): change time for running to 23:04 so I can verify it works in a few minutes 2024-10-15 19:00:50 -04:00
J / Jacob Babich
4e6d56c044 style(cli-clap): ignore the Args argument because it doesn't get used yet (to satisfy Clippy) 2024-10-15 16:47:50 -04:00
J / Jacob Babich
844494b2ca ci(daily): fix the test job to reference the nightly cache channel 2024-10-15 16:42:51 -04:00
J / Jacob Babich
c60856c7d1 ci(check-and-build-and-test): add checking Clippy and rearrange the job so that the most important problems are detected first 2024-10-15 16:42:32 -04:00
J / Jacob Babich
22733f51e0 chore: build out the infrastructure for commands to be passed to the clap CLI 2024-10-15 16:15:33 -04:00
J / Jacob Babich
c1bab4d55e ci(check-and-build-and-test): fix the cargo-audit command arguments
Some checks are pending
Check, build, and test / Check formatting, cargo-deny, and cargo-audit (push) Waiting to run
Check, build, and test / Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) ${{ matrix.minimal_or_latest.job_name_suffix }} (map[build_command:cargo build --verbose cache_key:latest check_command:cargo check --verbose job_name_suffix:(with lat… (push) Waiting to run
Check, build, and test / Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) ${{ matrix.minimal_or_latest.job_name_suffix }} (map[build_command:cargo minimal-versions build --direct --verbose cache_key:minimal check_command:cargo minimal-versio… (push) Waiting to run
Check, build, and test / Test ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[install_prerequisite:sudo apt-get update && sudo apt-get install musl-dev musl-tools && sudo ln -s /bin/g++ /bin/musl-g++ runner:ubuntu-latest target:x86_64-unknown-linux-mu… (push) Waiting to run
Check, build, and test / Test ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[runner:macos-latest target:aarch64-apple-darwin]) (push) Waiting to run
Check, build, and test / Test ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[runner:macos-latest target:x86_64-apple-darwin]) (push) Waiting to run
Check, build, and test / Test ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[runner:ubuntu-latest target:x86_64-unknown-linux-gnu]) (push) Waiting to run
Check, build, and test / Test ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[runner:windows-latest target:x86_64-pc-windows-msvc]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./cli-clap, map[prerequisite_step:rm ~/.cargo/bin/cargo.exe; rm ~/.cargo/bin/rust-analyzer.exe; rm ~/.cargo/bin/rustfmt.exe; rustup u… (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./cli-clap, map[runner:macos-latest target:aarch64-apple-darwin]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./cli-clap, map[runner:ubuntu-latest target:x86_64-unknown-linux-gnu]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./core, map[prerequisite_step:rm ~/.cargo/bin/cargo.exe; rm ~/.cargo/bin/rust-analyzer.exe; rm ~/.cargo/bin/rustfmt.exe; rustup updat… (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./core, map[runner:macos-latest target:aarch64-apple-darwin]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./core, map[runner:ubuntu-latest target:x86_64-unknown-linux-gnu]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./gui-eframe, map[prerequisite_step:rm ~/.cargo/bin/cargo.exe; rm ~/.cargo/bin/rust-analyzer.exe; rm ~/.cargo/bin/rustfmt.exe; rustup… (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./gui-eframe, map[runner:macos-latest target:aarch64-apple-darwin]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./gui-eframe, map[runner:ubuntu-latest target:x86_64-unknown-linux-gnu]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./multibinary, map[prerequisite_step:rm ~/.cargo/bin/cargo.exe; rm ~/.cargo/bin/rust-analyzer.exe; rm ~/.cargo/bin/rustfmt.exe; rustu… (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./multibinary, map[runner:macos-latest target:aarch64-apple-darwin]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./multibinary, map[runner:ubuntu-latest target:x86_64-unknown-linux-gnu]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./tui-ratatui, map[prerequisite_step:rm ~/.cargo/bin/cargo.exe; rm ~/.cargo/bin/rust-analyzer.exe; rm ~/.cargo/bin/rustfmt.exe; rustu… (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./tui-ratatui, map[runner:macos-latest target:aarch64-apple-darwin]) (push) Waiting to run
Check, build, and test / Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (./tui-ratatui, map[runner:ubuntu-latest target:x86_64-unknown-linux-gnu]) (push) Waiting to run
Release-plz / Release-plz (push) Waiting to run
2024-10-15 15:59:07 -04:00
J / Jacob Babich
6036d40def ci(daily): use the correct specifier for rustsec/audit-check (v2.0.0 not v2) 2024-10-15 15:55:04 -04:00
J / Jacob Babich
0f7cd069bb ci(daily): add a workflow with jobs for checking, building, and testing on nightly Rust and for being alerted of issues from cargo-audit 2024-10-15 15:53:24 -04:00
J / Jacob Babich
dace2d531a ci(check-and-build-and-test): add cargo-audit to the formatting-and-deny job to upgrade it to formatting-and-deny-and-audit 2024-10-15 15:43:48 -04:00
J / Jacob Babich
402a6894e1 ci(check-and-build-and-test): increase the timeout of all jobs 2024-10-15 15:28:09 -04:00
J / Jacob Babich
93a8dc907b chore: update llama-cpp-2 and other packages 2024-10-11 15:03:17 -04:00
J / Jacob Babich
32aa88af49 chore: remove llama-cpp-2 patch 2024-10-11 15:02:29 -04:00
J / Jacob Babich
cddad34b0a ci(release-plz): add a Rust cache step hoping to speed up the job
Some checks failed
Release-plz / Release-plz (push) Has been cancelled
2024-10-11 13:36:03 -04:00
J / Jacob Babich
1e683ee2df ci(check-and-build-and-test): in the msrv job, only do the prerequisite step on Windows (the only place not doing it is a problem) 2024-10-11 13:34:33 -04:00
J / Jacob Babich
139548ffc7 ci(check-and-build-and-test): in the msrv job, try making deleting the existing Rust stuff work cross-platform 2024-10-11 13:27:55 -04:00
J / Jacob Babich
efa41c169c ci(check-and-build-and-test): in the msrv job, break up the deletion step so that it may work on Windows 2024-10-11 03:43:26 -04:00
J / Jacob Babich
4940e4a431 ci(check-and-build-and-test): in the msrv job, try removing some Rust toolchain binaries, then run rustup update 2024-10-11 03:37:10 -04:00
J / Jacob Babich
8b0b5d0839 ci(check-and-build-and-test): shuffle steps of the msrv job to try to fix it, and call cargo-msrv instead of cargo msrv 2024-10-11 03:27:13 -04:00
J / Jacob Babich
b7eb5330b5 ci(check-and-build-and-test): in the msrv job, remove existing Rust stuff that's making the Windows MSRV verification fail 2024-10-11 03:22:14 -04:00
J / Jacob Babich
ce1b66d516 ci(check-and-build-and-test): in the msrv job, remove the step to install a Rust toolchain because I expect cargo-msrv to be able to handle it 2024-10-11 03:03:33 -04:00
20 changed files with 442 additions and 75 deletions

View File

@@ -18,23 +18,35 @@ env:
CARGO_TERM_COLOR: always CARGO_TERM_COLOR: always
jobs: jobs:
formatting-and-deny: audit-and-deny-and-clippy-and-formatting:
name: Check formatting and cargo-deny name: Check cargo-audit, cargo-deny, clippy, and formatting
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 2 timeout-minutes: 4
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install stable Rust toolchain - name: Install stable Rust toolchain
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
- name: Install cargo-audit
uses: taiki-e/install-action@cargo-audit
- name: Formatting - uses: Swatinem/rust-cache@v2
run: cargo fmt --check --verbose
- name: cargo-audit
run: cargo-audit audit --deny warnings
- name: cargo-deny - name: cargo-deny
uses: EmbarkStudios/cargo-deny-action@v2 uses: EmbarkStudios/cargo-deny-action@v2
- name: Clippy
run: cargo clippy
env:
RUSTFLAGS: "--deny warnings"
- name: Formatting
run: cargo fmt --check --verbose
check-and-build: check-and-build:
strategy: strategy:
matrix: matrix:
@@ -88,7 +100,7 @@ jobs:
target: x86_64-pc-windows-msvc target: x86_64-pc-windows-msvc
name: Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) ${{ matrix.minimal_or_latest.job_name_suffix }} name: Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) ${{ matrix.minimal_or_latest.job_name_suffix }}
runs-on: ${{ matrix.supporteds.runner }} runs-on: ${{ matrix.supporteds.runner }}
timeout-minutes: 5 timeout-minutes: 8
env: env:
# https://github.com/rust-lang/stacker/issues/80#issuecomment-1547991131 # https://github.com/rust-lang/stacker/issues/80#issuecomment-1547991131
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
@@ -165,7 +177,7 @@ jobs:
target: x86_64-pc-windows-msvc target: x86_64-pc-windows-msvc
name: Test ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) name: Test ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }})
runs-on: ${{ matrix.supporteds.runner }} runs-on: ${{ matrix.supporteds.runner }}
timeout-minutes: 5 timeout-minutes: 8
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -193,42 +205,56 @@ jobs:
msrv: msrv:
strategy: strategy:
matrix: matrix:
crate_directory:
- ./core
- ./cli-clap
- ./gui-eframe
- ./tui-ratatui
- ./multibinary
supporteds: supporteds:
- runner: macos-latest - runner: macos-latest
target: aarch64-apple-darwin target: aarch64-apple-darwin
- runner: macos-latest
target: x86_64-apple-darwin
- runner: ubuntu-latest - runner: ubuntu-latest
target: x86_64-unknown-linux-gnu target: x86_64-unknown-linux-gnu
- runner: windows-latest - install_prerequisite: sudo apt-get update && sudo apt-get install musl-dev musl-tools && sudo ln -s /bin/g++ /bin/musl-g++
runner: ubuntu-latest
target: x86_64-unknown-linux-musl
- prerequisite_step: rm ~/.cargo/bin/cargo.exe; rm ~/.cargo/bin/rust-analyzer.exe; rm ~/.cargo/bin/rustfmt.exe; rustup update
runner: windows-latest
target: x86_64-pc-windows-msvc target: x86_64-pc-windows-msvc
name: Verify MSRV of ${{ matrix.crate_directory }} for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) name: Verify MSRV for ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }})
runs-on: ${{ matrix.supporteds.runner }} runs-on: ${{ matrix.supporteds.runner }}
timeout-minutes: 4 timeout-minutes: 8
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install stable Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install cargo-msrv
uses: taiki-e/install-action@v2
with:
tool: cargo-msrv
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
with: with:
shared-key: ${{ matrix.supporteds.target }}-latest-variable shared-key: ${{ matrix.supporteds.target }}-latest-variable
cache-on-failure: "true" cache-on-failure: "true"
- name: Verify declared MSRV (minimum supported Rust version) - name: Run prerequisite setup step
run: cargo msrv verify --output-format json if: matrix.supporteds.prerequisite_step
working-directory: ${{ matrix.crate_directory }} run: ${{ matrix.supporteds.prerequisite_step }}
- name: Install cargo-msrv
uses: taiki-e/install-action@v2
with:
tool: cargo-msrv
- name: Verify core's declared MSRV (minimum supported Rust version)
run: cargo-msrv verify --output-format json
working-directory: ./core
- name: Verify cli-clap's declared MSRV (minimum supported Rust version)
run: cargo-msrv verify --output-format json
working-directory: ./cli-clap
- name: Verify gui-eframe's declared MSRV (minimum supported Rust version)
run: cargo-msrv verify --output-format json
working-directory: ./gui-eframe
- name: Verify tui-ratatui's declared MSRV (minimum supported Rust version)
run: cargo-msrv verify --output-format json
working-directory: ./tui-ratatui
- name: Verify multibinary's declared MSRV (minimum supported Rust version)
run: cargo-msrv verify --output-format json
working-directory: ./multibinary

View File

@@ -72,7 +72,7 @@ jobs:
cache-on-failure: "true" cache-on-failure: "true"
- name: Build for release - name: Build for release
run: cargo build --release --verbose run: cargo build --release --verbose --target ${{ matrix.supporteds.target }}
# Have to do it like this because of https://github.com/actions/runner/issues/1985 # Have to do it like this because of https://github.com/actions/runner/issues/1985
- if: startsWith(github.event.release.tag_name, 'ac-qu-ai-nt-v') - if: startsWith(github.event.release.tag_name, 'ac-qu-ai-nt-v')

157
.github/workflows/daily.yml vendored Normal file
View File

@@ -0,0 +1,157 @@
name: Daily
on:
schedule:
- cron: "26 9 * * *"
jobs:
audit:
name: Use `cargo-audit` to create issues for vulnerabilities or other problems
runs-on: ubuntu-latest
timeout-minutes: 4
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: rustsec/audit-check@v2.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
check-and-build-with-nightly:
strategy:
matrix:
supporteds:
- runner: macos-latest
target: aarch64-apple-darwin
- runner: macos-latest
target: x86_64-apple-darwin
- install_prerequisite: sudo apt-get update && sudo apt-get install musl-dev musl-tools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu && sudo ln -s /bin/g++ /bin/musl-g++
runner: ubuntu-latest
target: aarch64-unknown-linux-gnu
- install_prerequisite: sudo apt-get update && sudo apt-get install musl-dev musl-tools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu && sudo ln -s /bin/g++ /bin/musl-g++
runner: ubuntu-latest
target: aarch64-unknown-linux-musl
- runner: ubuntu-latest
target: x86_64-unknown-linux-gnu
- install_prerequisite: sudo apt-get update && sudo apt-get install musl-dev musl-tools && sudo ln -s /bin/g++ /bin/musl-g++
runner: ubuntu-latest
target: x86_64-unknown-linux-musl
# I would like to support this but I don't know how to install the dependencies to be able to
# - runner: windows-latest
# target: aarch64-pc-windows-gnullvm
- runner: windows-latest
target: aarch64-pc-windows-msvc
# I don't think supporting this is up to me
# I forgot where I learned this, but
# I don't think I can use a non-Rust dependency (i.e. llama.cpp) here
# - runner: windows-latest
# target: x86_64-pc-windows-gnu
- runner: windows-latest
target: x86_64-pc-windows-msvc
name: Check and build ${{ matrix.supporteds.target }} with nightly Rust (on ${{ matrix.supporteds.runner }}) ${{ matrix.minimal_or_latest.job_name_suffix }}
runs-on: ${{ matrix.supporteds.runner }}
timeout-minutes: 8
env:
# https://github.com/rust-lang/stacker/issues/80#issuecomment-1547991131
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc # TODO: shouldn't this be something to do with musl, not gcc?
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install prerequisite build chain
if: matrix.supporteds.install_prerequisite
run: ${{ matrix.supporteds.install_prerequisite }}
- name: Install nightly Rust toolchain
uses: dtolnay/rust-toolchain@nightly
with:
targets: ${{ matrix.supporteds.target }}
- uses: Swatinem/rust-cache@v2
with:
shared-key: ${{ matrix.supporteds.target }}-latest-nightly
cache-on-failure: "true"
- name: Check
run: cargo check --verbose
- name: Build
run: cargo build --verbose
test-with-nightly:
strategy:
matrix:
supporteds:
- runner: macos-latest
target: aarch64-apple-darwin
- runner: macos-latest
target: x86_64-apple-darwin
# Not able to be tested in GitHub Actions (without emulation, at least)
# - runner: ubuntu-latest
# target: aarch64-unknown-linux-gnu
# Not able to be tested in GitHub Actions (without emulation, at least)
# - runner: ubuntu-latest
# target: aarch64-unknown-linux-musl
- runner: ubuntu-latest
target: x86_64-unknown-linux-gnu
- install_prerequisite: sudo apt-get update && sudo apt-get install musl-dev musl-tools && sudo ln -s /bin/g++ /bin/musl-g++
runner: ubuntu-latest
target: x86_64-unknown-linux-musl
# Not able to be tested in GitHub Actions (without emulation, at least)
# - runner: windows-latest
# target: aarch64-pc-windows-gnullvm
# Not able to be tested in GitHub Actions (without emulation, at least)
# - runner: windows-latest
# target: aarch64-pc-windows-msvc
# I don't think supporting this is up to me
# I forgot where I learned this, but
# I don't think I can use a non-Rust dependency (i.e. llama.cpp) here
# - runner: windows-latest
# target: x86_64-pc-windows-gnu
- runner: windows-latest
target: x86_64-pc-windows-msvc
name: Test ${{ matrix.supporteds.target }} with nightly Rust (on ${{ matrix.supporteds.runner }})
runs-on: ${{ matrix.supporteds.runner }}
timeout-minutes: 8
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install prerequisite build chain
if: matrix.supporteds.install_prerequisite
run: ${{ matrix.supporteds.install_prerequisite }}
- name: Install nightly Rust toolchain
uses: dtolnay/rust-toolchain@nightly
with:
targets: ${{ matrix.supporteds.target }}
- name: Install Nextest
uses: taiki-e/install-action@cargo-nextest
- uses: Swatinem/rust-cache@v2
with:
shared-key: ${{ matrix.supporteds.target }}-latest-nightly
cache-on-failure: "true"
- name: Test
run: cargo nextest run --target ${{ matrix.supporteds.target }}

View File

@@ -20,13 +20,18 @@ jobs:
with: with:
app-id: ${{ secrets.RELEASE_PLZ_GITHUB_APP_ID }} app-id: ${{ secrets.RELEASE_PLZ_GITHUB_APP_ID }}
private-key: ${{ secrets.RELEASE_PLZ_GITHUB_APP_SECRET }} private-key: ${{ secrets.RELEASE_PLZ_GITHUB_APP_SECRET }}
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
token: ${{ steps.generate-token.outputs.token }} token: ${{ steps.generate-token.outputs.token }}
- name: Install Rust toolchain - name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Run release-plz - name: Run release-plz
uses: MarcoIeni/release-plz-action@v0.5 uses: MarcoIeni/release-plz-action@v0.5
env: env:

22
Cargo.lock generated
View File

@@ -4,19 +4,21 @@ version = 3
[[package]] [[package]]
name = "ac-qu-ai-nt" name = "ac-qu-ai-nt"
version = "0.0.12" version = "0.0.14"
dependencies = [ dependencies = [
"ac-qu-ai-nt-cli-clap", "ac-qu-ai-nt-cli-clap",
"ac-qu-ai-nt-gui-eframe", "ac-qu-ai-nt-gui-eframe",
"ac-qu-ai-nt-tui-ratatui", "ac-qu-ai-nt-tui-ratatui",
"cfg-if",
"clap", "clap",
"dirs-next", "dirs-next",
"snafu",
"tracing-subscriber", "tracing-subscriber",
] ]
[[package]] [[package]]
name = "ac-qu-ai-nt-cli-clap" name = "ac-qu-ai-nt-cli-clap"
version = "0.0.8" version = "0.0.9"
dependencies = [ dependencies = [
"clap", "clap",
"tracing", "tracing",
@@ -24,7 +26,7 @@ dependencies = [
[[package]] [[package]]
name = "ac-qu-ai-nt-core" name = "ac-qu-ai-nt-core"
version = "0.0.3" version = "0.0.4"
dependencies = [ dependencies = [
"llama-cpp-2", "llama-cpp-2",
"snafu", "snafu",
@@ -33,14 +35,14 @@ dependencies = [
[[package]] [[package]]
name = "ac-qu-ai-nt-gui-eframe" name = "ac-qu-ai-nt-gui-eframe"
version = "0.0.5" version = "0.0.6"
dependencies = [ dependencies = [
"tracing", "tracing",
] ]
[[package]] [[package]]
name = "ac-qu-ai-nt-tui-ratatui" name = "ac-qu-ai-nt-tui-ratatui"
version = "0.0.5" version = "0.0.6"
dependencies = [ dependencies = [
"tracing", "tracing",
] ]
@@ -134,9 +136,9 @@ checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.1.28" version = "1.1.29"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e80e3b6a3ab07840e1cae9b0666a63970dc28e8ed5ffbcdacbfc760c281bfc1" checksum = "58e804ac3194a48bb129643eb1d62fcc20d18c6b8c181704489353d13120bcd1"
dependencies = [ dependencies = [
"jobserver", "jobserver",
"libc", "libc",
@@ -384,7 +386,8 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]] [[package]]
name = "llama-cpp-2" name = "llama-cpp-2"
version = "0.1.82" version = "0.1.82"
source = "git+https://github.com/babichjacob/llama-cpp-rs?branch=fix-use-c-char-instead-of-i8#92bef3a7d2dbd49af9e22cf44a30b33bb0af9202" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e40528912f1212003f65912c0ad1d2d2d0302e53557e0ea3cd12b5706a9223ca"
dependencies = [ dependencies = [
"enumflags2", "enumflags2",
"llama-cpp-sys-2", "llama-cpp-sys-2",
@@ -395,7 +398,8 @@ dependencies = [
[[package]] [[package]]
name = "llama-cpp-sys-2" name = "llama-cpp-sys-2"
version = "0.1.82" version = "0.1.82"
source = "git+https://github.com/babichjacob/llama-cpp-rs?branch=fix-use-c-char-instead-of-i8#92bef3a7d2dbd49af9e22cf44a30b33bb0af9202" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccfde3214b7b8bcc25448198df1add0630695c7a2773a60400572bf5156b9335"
dependencies = [ dependencies = [
"bindgen", "bindgen",
"cc", "cc",

View File

@@ -11,6 +11,3 @@ repository = "https://github.com/babichjacob/ac-qu-ai-nt"
clap = "4" clap = "4"
snafu = "0.8" snafu = "0.8"
tracing = "0.1.23" tracing = "0.1.23"
[patch.crates-io]
llama-cpp-2 = { version = "0.1.81", git = "https://github.com/babichjacob/llama-cpp-rs", branch = "fix-use-c-char-instead-of-i8" }

View File

@@ -5,6 +5,7 @@ This is a placeholder while I take small steps to build out the project.
# Installation # Installation
## Automatically Updatable ## Automatically Updatable
You won't find it very useful yet, because it doesn't really do much of anything, but you can install the multibinary with [Binstall](https://github.com/cargo-bins/cargo-binstall). This means you don't need to have the same development environment (which will require the Vulkan SDK and CUDA Toolkit in the future) in order to use the program, because you'll just download a precompiled executable. You won't find it very useful yet, because it doesn't really do much of anything, but you can install the multibinary with [Binstall](https://github.com/cargo-bins/cargo-binstall). This means you don't need to have the same development environment (which will require the Vulkan SDK and CUDA Toolkit in the future) in order to use the program, because you'll just download a precompiled executable.
```sh ```sh
@@ -12,28 +13,35 @@ cargo-binstall -y ac-qu-ai-nt
``` ```
Install [`cargo-update`](https://github.com/nabijaczleweli/cargo-update) and periodically run Install [`cargo-update`](https://github.com/nabijaczleweli/cargo-update) and periodically run
```sh ```sh
cargo install-update --all cargo install-update --all
``` ```
in order to keep this program up to date. in order to keep this program up to date.
I'm not sure if you need a Rust compiler installed for either or if they can work standalone. I'm not sure if you need a Rust compiler installed for either or if they can work standalone.
## Just the Executable ## Just the Executable
Head to [the Releases page](https://github.com/babichjacob/ac-qu-ai-nt/releases) and download the asset corresponding to your computer architecture and operating system. Head to [the Releases page](https://github.com/babichjacob/ac-qu-ai-nt/releases) and download the asset corresponding to your computer architecture and operating system.
Decompress the archive and place the executable contained within it somewhere useful to you (e.g. in a directory in [your `PATH` variable](https://superuser.com/a/284351)). Decompress the archive and place the executable contained within it somewhere useful to you (e.g. in a directory in [your `PATH` variable](https://superuser.com/a/284351)).
# Usage # Usage
If it's your preference, you should be able to double click the executable in the folder to be able to run it (defaulting to launching a graphical interface (once I actually make one lol)). If it's your preference, you should be able to double click the executable in the folder to be able to run it (defaulting to launching a graphical interface (once I actually make one lol)).
You could also type You could also type
```sh ```sh
ac-qu-ai-nt ac-qu-ai-nt
``` ```
on the command line to run it. This is also a way to launch a GUI (once there actually is one) for the application. on the command line to run it. This is also a way to launch a GUI (once there actually is one) for the application.
## Command Line Interface ## Command Line Interface
It's going to be a goal of this project for there to be feature parity between the GUI, CLI, and TUI. It's going to be a goal of this project for there to be feature parity between the GUI, CLI, and TUI.
If you want to use its command line interface, start with If you want to use its command line interface, start with
@@ -41,13 +49,22 @@ If you want to use its command line interface, start with
```sh ```sh
ac-qu-ai-nt cli ac-qu-ai-nt cli
``` ```
to see what capabilities are available. to see what capabilities are available.
(This is an alias for `ac-qu-ai-nt cli-clap` to allow the possibility of experimenting with different implementations of the same type of interface.) (This is an alias for `ac-qu-ai-nt cli-clap` to allow the possibility of experimenting with different implementations of the same type of interface.)
# Contributing # Contributing
This is a summary of the crates I expect to be in this project and how they are used: ## Issues and Pull Requests
Please create an issue before working on a pull request. It's helpful for you to know if the idea you have in mind will for sure be incorporated into the project, and won't require you to _acquaint_ yourself with the project internals. It even opens the floor for someone else to do the work implementing it for you.
Some [existing issues are labeled `straightforward`](https://github.com/babichjacob/ac-qu-ai-nt/issues?q=is%3Aissue+is%3Aopen+label%3Astraightforward) and expected to be the easiest to work on, if you'd like to try.
## Project Breakdown
This is a summary of the crates in this project and how they are used:
```mermaid ```mermaid
flowchart TD flowchart TD
@@ -59,6 +76,28 @@ gui-eframe --> multibinary
tui-ratatui --> multibinary tui-ratatui --> multibinary
``` ```
### `core`
The core of the project, where code for large language model and embedding model inference using [`llama-cpp-2`](https://crates.io/crates/llama-cpp-2) will be (because it's not started yet at the time of writing), where ingesting data will be done, and where public APIs that the other crates (`cli-clap`, `gui-eframe`, and `tui-ratatui`) use will be.
Each of the interface crates are expected to have feature parity (as in capability, not as in a Cargo feature) where possible, but we'll see how that goes.
### `cli-clap`
A command line interface (CLI) for the project written with [`clap`](https://crates.io/crates/clap).
### `gui-eframe`
A graphical user interface (GUI) for the project written with [`eframe`](https://crates.io/crates/eframe) for [`egui`](https://crates.io/crates/egui).
As of right now, it isn't started yet.
### `tui-ratatui`
A terminal user interface (TUI) for the project written with [`ratatui`](https://crates.io/crates/ratatui).
As of right now, it isn't started yet.
## Versioning ## Versioning
This project aims to adhere to [semantic versioning](https://semver.org/) using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary), conducted by [Release-plz](https://release-plz.ieni.dev/). This project aims to adhere to [semantic versioning](https://semver.org/) using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary), conducted by [Release-plz](https://release-plz.ieni.dev/).
@@ -74,8 +113,9 @@ All the crates in this project have a [minimum supported Rust version (MSRV)](ht
## License ## License
All contents of this repository are licensed under either the All contents of this repository are licensed under either the
* [MIT license](LICENSE-MIT), or
* [Apache 2.0 license](LICENSE-APACHE), or - [MIT license](LICENSE-MIT), or
* [Unlicense](LICENSE-UNLICENSE) - [Apache 2.0 license](LICENSE-APACHE), or
- [Unlicense](LICENSE-UNLICENSE)
at your option. at your option.

View File

@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.0.9](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-cli-clap-v0.0.8...ac-qu-ai-nt-cli-clap-v0.0.9) - 2024-10-15
### Fixed
- *(ac-qu-ai-nt-cli-clap)* write a `main` function instead of re-exporting so that the declared MSRV can be met
### Other
- *(cli-clap)* ignore the `Args` argument because it doesn't get used yet (to satisfy Clippy)
- build out the infrastructure for commands to be passed to the clap CLI
## [0.0.8](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-cli-clap-v0.0.7...ac-qu-ai-nt-cli-clap-v0.0.8) - 2024-10-07 ## [0.0.8](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-cli-clap-v0.0.7...ac-qu-ai-nt-cli-clap-v0.0.8) - 2024-10-07
### Other ### Other

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "ac-qu-ai-nt-cli-clap" name = "ac-qu-ai-nt-cli-clap"
description = "A CLI (written with clap) for ac-qu-ai-nt" description = "A CLI (written with clap) for ac-qu-ai-nt"
version = "0.0.8" version = "0.0.9"
edition = "2021" edition = "2021"
rust-version = "1.76" rust-version = "1.76"

View File

@@ -1,4 +1,15 @@
pub fn main() { use clap::{Parser, Subcommand};
#[derive(Debug, Subcommand)]
enum Command {}
#[derive(Debug, Parser)]
pub struct Args {
#[command(subcommand)]
command: Command,
}
pub fn main(_args: Args) {
#[cfg(feature = "tracing")] #[cfg(feature = "tracing")]
tracing::info!("What's up, world?"); tracing::info!("What's up, world?");
} }

View File

@@ -1,3 +1,7 @@
use clap::Parser;
fn main() { fn main() {
ac_qu_ai_nt_cli_clap::main(); let args = ac_qu_ai_nt_cli_clap::Args::parse();
ac_qu_ai_nt_cli_clap::main(args);
} }

View File

@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.0.4](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-core-v0.0.3...ac-qu-ai-nt-core-v0.0.4) - 2024-10-15
### Other
- update `llama-cpp-2` and other packages
- *(ac-qu-ai-nt-core)* update `llama-cpp-2`
- *(core)* add `snafu` as a dependency
## [0.0.3](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-core-v0.0.2...ac-qu-ai-nt-core-v0.0.3) - 2024-10-07 ## [0.0.3](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-core-v0.0.2...ac-qu-ai-nt-core-v0.0.3) - 2024-10-07
### Other ### Other

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "ac-qu-ai-nt-core" name = "ac-qu-ai-nt-core"
description = "The core library of ac-qu-ai-nt. If you're looking for the application, see cli-clap or gui-eframe or tui-ratatui or the multibinary" description = "The core library of ac-qu-ai-nt. If you're looking for the application, see cli-clap or gui-eframe or tui-ratatui or the multibinary"
version = "0.0.3" version = "0.0.4"
edition = "2021" edition = "2021"
rust-version = "1.76" rust-version = "1.76"
@@ -14,7 +14,7 @@ default = ["tracing"]
tracing = ["dep:tracing"] tracing = ["dep:tracing"]
[dependencies] [dependencies]
llama-cpp-2 = "0.1.81" llama-cpp-2 = "0.1.82"
snafu = { workspace = true } snafu = { workspace = true }
tracing = { workspace = true, optional = true } tracing = { workspace = true, optional = true }

View File

@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.0.6](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-gui-eframe-v0.0.5...ac-qu-ai-nt-gui-eframe-v0.0.6) - 2024-10-15
### Fixed
- *(ac-qu-ai-nt-gui-eframe)* write a `main` function instead of re-exporting so that the declared MSRV can be met
## [0.0.5](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-gui-eframe-v0.0.4...ac-qu-ai-nt-gui-eframe-v0.0.5) - 2024-10-07 ## [0.0.5](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-gui-eframe-v0.0.4...ac-qu-ai-nt-gui-eframe-v0.0.5) - 2024-10-07
### Other ### Other

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "ac-qu-ai-nt-gui-eframe" name = "ac-qu-ai-nt-gui-eframe"
description = "A GUI (written with egui / eframe) for ac-qu-ai-nt" description = "A GUI (written with egui / eframe) for ac-qu-ai-nt"
version = "0.0.5" version = "0.0.6"
edition = "2021" edition = "2021"
rust-version = "1.76" rust-version = "1.76"

View File

@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.0.14](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.13...ac-qu-ai-nt-v0.0.14) - 2024-10-16
### Added
- *(multibinary)* support running the binary without arguments (using a sensible user interface as the default), and improve error reporting by using `snafu`
### Other
- *(multibinary)* mark the Clippy lint against manually implementing `Default` for `Command` as allowed
- *(multibinary)* add `cfg-if` and `snafu` as dependencies
## [0.0.13](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.12...ac-qu-ai-nt-v0.0.13) - 2024-10-15
### Other
- build out the infrastructure for commands to be passed to the clap CLI
## [0.0.12](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.11...ac-qu-ai-nt-v0.0.12) - 2024-10-07 ## [0.0.12](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.11...ac-qu-ai-nt-v0.0.12) - 2024-10-07
### Other ### Other

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "ac-qu-ai-nt" name = "ac-qu-ai-nt"
description = "A WIP project using AI to break down a user's query, acquire the knowledge to answer it, then transfer those insights to the user" description = "A WIP project using AI to break down a user's query, acquire the knowledge to answer it, then transfer those insights to the user"
version = "0.0.12" version = "0.0.14"
edition = "2021" edition = "2021"
rust-version = "1.76" rust-version = "1.76"
@@ -27,11 +27,13 @@ tracing = [
] ]
[dependencies] [dependencies]
ac-qu-ai-nt-cli-clap = { version = "0.0.8", path = "../cli-clap", optional = true } ac-qu-ai-nt-cli-clap = { version = "0.0.9", path = "../cli-clap", optional = true }
ac-qu-ai-nt-gui-eframe = { version = "0.0.5", path = "../gui-eframe", optional = true } ac-qu-ai-nt-gui-eframe = { version = "0.0.6", path = "../gui-eframe", optional = true }
ac-qu-ai-nt-tui-ratatui = { version = "0.0.5", path = "../tui-ratatui", optional = true } ac-qu-ai-nt-tui-ratatui = { version = "0.0.6", path = "../tui-ratatui", optional = true }
cfg-if = "1.0.0"
clap = { workspace = true, features = ["derive", "env"] } clap = { workspace = true, features = ["derive", "env"] }
dirs-next = "2.0.0" dirs-next = "2.0.0"
snafu = { workspace = true }
tracing-subscriber = { version = "0.3.18", optional = true } tracing-subscriber = { version = "0.3.18", optional = true }

View File

@@ -1,6 +1,12 @@
use std::{fs::create_dir_all, io::ErrorKind, path::PathBuf}; use std::{
fs::create_dir_all,
io::ErrorKind,
path::{Path, PathBuf},
};
use cfg_if::cfg_if;
use clap::{Parser, Subcommand}; use clap::{Parser, Subcommand};
use snafu::{ResultExt, Snafu};
#[derive(Debug, Parser)] #[derive(Debug, Parser)]
struct Args { struct Args {
@@ -11,24 +17,93 @@ struct Args {
)] )]
application_data_directory: PathBuf, application_data_directory: PathBuf,
// If there is a GUI or TUI available from this binary,
// then calling this program without arguments
// is acceptable: it will launch a user interface
#[cfg(any(feature = "gui-eframe", feature = "tui-ratatui"))]
#[command(subcommand)]
command: Option<Command>,
#[cfg(not(any(feature = "gui-eframe", feature = "tui-ratatui")))]
#[command(subcommand)] #[command(subcommand)]
command: Command, command: Command,
} }
#[derive(Debug, Subcommand)] #[derive(Debug, Subcommand)]
enum Command { enum Command {
#[cfg(feature = "cli-clap")]
#[command(alias = "cli")]
CliClap,
#[cfg(feature = "gui-eframe")] #[cfg(feature = "gui-eframe")]
#[command(alias = "gui")] #[command(alias = "gui")]
GuiEframe, GuiEframe,
#[cfg(feature = "tui-ratatui")] #[cfg(feature = "tui-ratatui")]
#[command(alias = "tui")] #[command(alias = "tui")]
TuiRatatui, TuiRatatui,
#[cfg(feature = "cli-clap")]
#[command(alias = "cli")]
CliClap(ac_qu_ai_nt_cli_clap::Args),
} }
fn main() { // When this program is run without arguments,
// it will launch a user interface
cfg_if!(
// with the GUI (made with eframe)
// being considered more appealing (made the default)
if #[cfg(feature = "gui-eframe")] {
#[allow(clippy::derivable_impls)]
impl Default for Command {
fn default() -> Self {
Command::GuiEframe
}
}
}
// than the TUI (made with Ratatui)
else if #[cfg(feature = "tui-ratatui")] {
#[allow(clippy::derivable_impls)]
impl Default for Command {
fn default() -> Self {
Command::TuiRatatui
}
}
}
// with it not being logical to specify
// the CLI (made with clap)
// as an option,
// because if `ac-qu-ai-nt ask "why is the sky blue?"`
// were accepted and worked when `cli-clap` was the only
// interface enabled, then when another interface
// like `gui-eframe` were enabled, it would stop working
// (only able to work as `ac-qu-ai-nt cli-clap ask "why is the sky blue?"`)
// so it should be required to do it the way that would work
// in both cases from the beginning
);
#[derive(Debug, Snafu)]
enum ApplicationError {
#[snafu(display("failed to create the {path:?} directory"))]
DirectoryCreationError {
path: PathBuf,
source: std::io::Error,
},
}
/// Create the directory and its parents,
/// but don't return an error if it already exists and is a directory
fn create_dir_all_exist_ok(path: impl AsRef<Path>) -> Result<(), std::io::Error> {
match create_dir_all(&path) {
Ok(()) => Ok(()),
Err(e) => {
if e.kind() == ErrorKind::AlreadyExists && path.as_ref().is_dir() {
Ok(())
} else {
Err(e)
}
}
}
}
#[snafu::report]
fn main() -> Result<(), ApplicationError> {
let Args { let Args {
application_data_directory, application_data_directory,
command, command,
@@ -37,30 +112,28 @@ fn main() {
#[cfg(feature = "tracing")] #[cfg(feature = "tracing")]
tracing_subscriber::fmt::init(); tracing_subscriber::fmt::init();
match create_dir_all(&application_data_directory) { create_dir_all_exist_ok(&application_data_directory).with_context(|_| {
Ok(()) => {} DirectoryCreationSnafu {
Err(e) if e.kind() == ErrorKind::AlreadyExists => {} path: application_data_directory.clone(),
Err(e) => {
panic!("{}", e);
} }
} })?;
let tracing_directory = application_data_directory.join("logs"); let tracing_directory = application_data_directory.join("logs");
create_dir_all_exist_ok(&tracing_directory).with_context(|_| DirectoryCreationSnafu {
path: tracing_directory.clone(),
})?;
match create_dir_all(&tracing_directory) { #[cfg(any(feature = "gui-eframe", feature = "tui-ratatui"))]
Ok(()) => {} let command = command.unwrap_or_default();
Err(e) if e.kind() == ErrorKind::AlreadyExists => {}
Err(e) => {
panic!("{}", e);
}
}
match command { match command {
#[cfg(feature = "cli-clap")] #[cfg(feature = "cli-clap")]
Command::CliClap => ac_qu_ai_nt_cli_clap::main(), Command::CliClap(args) => ac_qu_ai_nt_cli_clap::main(args),
#[cfg(feature = "gui-eframe")] #[cfg(feature = "gui-eframe")]
Command::GuiEframe => ac_qu_ai_nt_gui_eframe::main(), Command::GuiEframe => ac_qu_ai_nt_gui_eframe::main(),
#[cfg(feature = "tui-ratatui")] #[cfg(feature = "tui-ratatui")]
Command::TuiRatatui => ac_qu_ai_nt_tui_ratatui::main(), Command::TuiRatatui => ac_qu_ai_nt_tui_ratatui::main(),
} }
Ok(())
} }

View File

@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.0.6](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-tui-ratatui-v0.0.5...ac-qu-ai-nt-tui-ratatui-v0.0.6) - 2024-10-15
### Fixed
- *(ac-qu-ai-nt-tui-ratatui)* write a `main` function instead of re-exporting so that the declared MSRV can be met
## [0.0.5](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-tui-ratatui-v0.0.4...ac-qu-ai-nt-tui-ratatui-v0.0.5) - 2024-10-07 ## [0.0.5](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-tui-ratatui-v0.0.4...ac-qu-ai-nt-tui-ratatui-v0.0.5) - 2024-10-07
### Other ### Other

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "ac-qu-ai-nt-tui-ratatui" name = "ac-qu-ai-nt-tui-ratatui"
description = "A TUI (written with Ratatui) for ac-qu-ai-nt" description = "A TUI (written with Ratatui) for ac-qu-ai-nt"
version = "0.0.5" version = "0.0.6"
edition = "2021" edition = "2021"
rust-version = "1.76" rust-version = "1.76"