Compare commits

...

80 Commits

Author SHA1 Message Date
J
cf2311b250 Merge pull request #18 from babichjacob/release-plz-2024-10-06T19-53-53Z
Some checks are pending
Check, build, and test / formatting (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
Release-plz / Release-plz (push) Waiting to run
chore: release
2024-10-07 01:34:10 -04:00
release-plz-for-ac-qu-ai-nt[bot]
8e172b8aaa chore: release 2024-10-07 05:29:02 +00:00
J / Jacob Babich
cd06bc3504 ci: deactivate checking, building, and testing for x86_64-pc-windows-gnu 2024-10-07 01:26:54 -04:00
J / Jacob Babich
e170f2e67a ci!: no longer attempt to support x86_64-pc-windows-gnu (unfortunately) 2024-10-07 01:24:19 -04:00
J / Jacob Babich
bade8b8897 ci: install g++-aarch64-linux-gnu for the relevant targets 2024-10-07 01:22:29 -04:00
J / Jacob Babich
68d6250438 ci: use workaround for cc looking for musl-g++ by symlinking it like advised in https://github.com/rust-lang/cargo/issues/3359#issuecomment-325614445 2024-10-07 01:11:56 -04:00
J / Jacob Babich
47fc0cbbed fix: raise minimal version of tracing to 0.1.23 because 0.1 allowed some versions predating what llama-cpp-2 requires (I think it's weird that it works like this but I expect to use the same features so this is the minimum regardless) 2024-10-07 01:07:14 -04:00
J / Jacob Babich
f418955f23 ci: install musl-dev where appropriate 2024-10-07 01:02:11 -04:00
J / Jacob Babich
d80d43d330 ci: make the test job use the latest cache channel 2024-10-07 00:59:59 -04:00
J / Jacob Babich
7e1bd57b98 ci: add prerequisite installation step to the test job 2024-10-07 00:58:13 -04:00
J / Jacob Babich
44d8066d8c ci: try making sure musl-gcc is available since it seems to be required 2024-10-07 00:54:19 -04:00
J / Jacob Babich
0849726ef6 chore!: add llama-cpp-2 as a dependency (because it will get used in the future), possibly breaking portability (but we'll see what the GitHub Actions workflows say back) 2024-10-06 15:52:54 -04:00
J / Jacob Babich
95e764f8cc ci: use the latest channel of cache for compiling and publishing binaries to a release 2024-10-06 15:19:41 -04:00
J / Jacob Babich
cf7d4aca1c ci: aim to increase cache effectiveness in the check and build job by adding a key based on minimal or latest versions of dependencies (because I saw in the logs that one would have to undo the other's work) 2024-10-06 15:18:52 -04:00
J
76ba24a895 Merge pull request #16 from babichjacob/release-plz-2024-10-06T05-59-23Z
Some checks are pending
Check, build, and test / formatting (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 check_command:cargo check --verbose job_name_suffix:(with latest (typically) v… (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 check_command:cargo minimal-versions check --direct … (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:ubuntu-latest target:x86_64-unknown-linux-musl]) (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-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
Release-plz / Release-plz (push) Waiting to run
chore: release
2024-10-06 02:01:59 -04:00
release-plz-for-ac-qu-ai-nt[bot]
44790c9706 chore: release 2024-10-06 05:59:24 +00:00
J / Jacob Babich
970aeb6dc1 chore: add Binstall configuration for the multibinary 2024-10-06 01:58:40 -04:00
J / Jacob Babich
ab03d078d1 fix: move the Binstall configuration to the right spot 2024-10-06 01:58:40 -04:00
J
54ae1dd8ba Merge pull request #15 from babichjacob/release-plz-2024-10-06T04-14-13Z
Some checks are pending
Check, build, and test / formatting (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 check_command:cargo check --verbose job_name_suffix:(with latest (typically) v… (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 check_command:cargo minimal-versions check --direct … (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:ubuntu-latest target:x86_64-unknown-linux-musl]) (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-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
Release-plz / Release-plz (push) Waiting to run
chore: release
2024-10-06 00:18:59 -04:00
release-plz-for-ac-qu-ai-nt[bot]
eab33bcf08 chore: release 2024-10-06 04:14:14 +00:00
J / Jacob Babich
10b798580d chore: specify the correct download URLs for Binstall to work correctly 2024-10-06 00:13:26 -04:00
J
870af4adad Merge pull request #14 from babichjacob/release-plz-2024-10-06T03-53-09Z
chore: release
2024-10-05 23:57:38 -04:00
release-plz-for-ac-qu-ai-nt[bot]
179eeab601 chore: release 2024-10-06 03:53:09 +00:00
J
feb0d150c4 Merge pull request #13 from babichjacob/release-plz-2024-10-06T03-44-56Z
chore: release v0.0.1
2024-10-05 23:52:25 -04:00
J / Jacob Babich
dc17a8c5cd ci: compile gui-eframe and tui-ratatui for their respective releases 2024-10-05 23:49:41 -04:00
J / Jacob Babich
900b39d29b ci: run the prerequisite installation step when compiling binaries for release 2024-10-05 23:49:41 -04:00
release-plz-for-ac-qu-ai-nt[bot]
4e159f7b71 chore: release 2024-10-06 03:45:14 +00:00
J
87ebfed048 Merge pull request #12 from babichjacob/release-plz-2024-10-06T03-37-49Z
chore: release v0.0.1
2024-10-05 23:44:55 -04:00
J / Jacob Babich
9f34e73729 chore: add package descriptions so that they can actually be published 2024-10-05 23:44:34 -04:00
release-plz-for-ac-qu-ai-nt[bot]
98224e6008 chore: release 2024-10-06 03:37:50 +00:00
J
4ea63f731e Merge pull request #11 from babichjacob/release-plz-2024-10-06T03-28-10Z
chore: release
2024-10-05 23:37:29 -04:00
release-plz-for-ac-qu-ai-nt[bot]
062c31bd9a chore: release 2024-10-06 03:34:57 +00:00
J / Jacob Babich
7d76b61c76 style: run cargo fmt 2024-10-05 23:34:35 -04:00
J / Jacob Babich
83fa6398cf ci: move the description of the checking / building command (which varies from whether they are being run for minimal or for latest (typically) versions of dependencies) to the job name instead of the command name 2024-10-05 23:34:20 -04:00
J / Jacob Babich
18cb5043cf feat: initialize core, gui-eframe, and tui-ratatui crates and use them in the multibinary 2024-10-05 23:27:47 -04:00
J / Jacob Babich
dbccf23a50 ci: incorporate minimal dependency versioning checking / building into the main job 2024-10-05 19:48:01 -04:00
J / Jacob Babich
a2c3013fd5 ci: can't use the matrix strategy for determining which binary to compile and upload, so copying and pasting instead unfortunately until https://github.com/actions/runner/issues/1985 is fixed 2024-10-05 19:31:29 -04:00
J
1175fa22d6 Merge pull request #10 from babichjacob/release-plz-2024-10-05T07-02-29Z
Some checks are pending
Check, build, and test / formatting (push) Waiting to run
Check, build, and test / Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[install_prerequisite:sudo apt-get update && sudo apt-get install gcc-aarch64-linux-gnu runner:ubuntu-latest target:aarch64-unknown-linux-gnu]) (push) Waiting to run
Check, build, and test / Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[install_prerequisite:sudo apt-get update && sudo apt-get install gcc-aarch64-linux-gnu runner:ubuntu-latest target:aarch64-unknown-linux-musl]) (push) Waiting to run
Check, build, and test / Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[runner:macos-latest target:aarch64-apple-darwin]) (push) Waiting to run
Check, build, and test / Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[runner:macos-latest target:x86_64-apple-darwin]) (push) Waiting to run
Check, build, and test / Check and build ${{ 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 / Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[runner:ubuntu-latest target:x86_64-unknown-linux-musl]) (push) Waiting to run
Check, build, and test / Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[runner:windows-latest target:aarch64-pc-windows-msvc]) (push) Waiting to run
Check, build, and test / Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) (map[runner:windows-latest target:x86_64-pc-windows-gnu]) (push) Waiting to run
Check, build, and test / Check and build ${{ 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 / 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:ubuntu-latest target:x86_64-unknown-linux-musl]) (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-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 / minimal-dependencies-check-build-and-test (push) Waiting to run
Release-plz / Release-plz (push) Waiting to run
chore: release
2024-10-05 03:03:09 -04:00
release-plz-for-ac-qu-ai-nt[bot]
13b7053386 chore: release 2024-10-05 07:02:30 +00:00
J / Jacob Babich
972129536f chore: change Hello, world! to What's up world? to allow me to cut a release 2024-10-05 03:01:41 -04:00
J / Jacob Babich
ae7de503a4 ci: try wrapping the if condition to make sure the release matches with ${{ and }} 2024-10-05 03:00:05 -04:00
J
21df8d1781 Merge pull request #9 from babichjacob/release-plz-2024-10-05T06-53-32Z
chore(ac-qu-ai-nt): release v0.0.6
2024-10-05 02:57:35 -04:00
release-plz-for-ac-qu-ai-nt[bot]
e5707cb106 chore: release 2024-10-05 06:55:34 +00:00
J / Jacob Babich
7f450568f2 fix: cover the new cases of Command for GuiEframe and TuiRatatui 2024-10-05 02:55:12 -04:00
J / Jacob Babich
e2bf39e2c1 chore: correctly add gui-eframe and tui-ratatui as features this time around 2024-10-05 02:53:03 -04:00
J / Jacob Babich
e96081486a chore: add gui-eframe and tui-ratatui as subcommands with aliases gui and tui respectively 2024-10-05 02:50:10 -04:00
J / Jacob Babich
63ffbf9f1a chore: add gui-eframe and tui-ratatui as features 2024-10-05 02:49:53 -04:00
J / Jacob Babich
65bdf6dd04 ci: try single quoting 2024-10-05 02:47:09 -04:00
J
43682dc3d3 Merge pull request #8 from babichjacob/release-plz-2024-10-05T06-40-33Z
chore(ac-qu-ai-nt): release v0.0.5
2024-10-05 02:43:56 -04:00
release-plz-for-ac-qu-ai-nt[bot]
c25e628aa9 chore: release 2024-10-05 06:40:34 +00:00
J / Jacob Babich
1177376450 chore!: put accessing the cli under a subcommand like the README suggests it would be 2024-10-05 02:40:09 -04:00
J / Jacob Babich
f37d56edba ci: only compile for releases for the relevant crate 2024-10-05 02:28:19 -04:00
J / Jacob Babich
1854dc429c ci: compile binaries for various targets on release 2024-10-05 01:54:42 -04:00
J / Jacob Babich
3e69d65bcc ci: aim to increase cache reuse 2024-10-05 01:53:12 -04:00
J / Jacob Babich
4c04f21dcb ci: string quote the paths because starting with * was trying to reference a YAML alias
Some checks are pending
Release-plz / Release-plz (push) Waiting to run
2024-10-04 22:05:31 -04:00
J / Jacob Babich
c0ec64f06c ci: prevent irrelevant file changes from triggering the check, build, and test workflow 2024-10-04 19:22:16 -04:00
J / Jacob Babich
70e20e2e04 ci: remove requirement to build for aarch64-pc-windows-gnullvm until I can understand how to do it in GitHub Actions 2024-10-04 18:52:08 -04:00
J / Jacob Babich
12107daf6b ci: install Nextest for the test job (because I accidentally deleted it) 2024-10-04 18:09:10 -04:00
J / Jacob Babich
839f219469 ci: turn fail-fast back on 2024-10-04 18:07:24 -04:00
J / Jacob Babich
56ad1de3d4 ci: phrasing change from "direct minimal dependencies" to "minimal direct dependencies" 2024-10-04 18:06:50 -04:00
J / Jacob Babich
30dee5efa7 ci: lower all job timeouts because they shouldn't reasonably take that long and I would like it to be raised as a problem with my project if it ever starts exceeding the time specified 2024-10-04 18:06:02 -04:00
J / Jacob Babich
52297c7b43 ci: split testing off from checking and building 2024-10-04 18:04:31 -04:00
J / Jacob Babich
b1520ae76b ci: specify prerequisite_install for aarch64 linux like I meant to (whereas it was on x86_64-unknown-linux-gnu before) 2024-10-04 17:55:18 -04:00
J / Jacob Babich
ac42b4861c ci: use sudo for prerequisite installation 2024-10-04 17:53:04 -04:00
J / Jacob Babich
499562853c ci: write a cleaner name for the check / build / test job 2024-10-04 17:51:50 -04:00
J / Jacob Babich
d6922c30c5 ci: specify CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER too 2024-10-04 17:50:15 -04:00
J / Jacob Babich
b5935b8ab5 ci: try having prerequisite installation step where needed 2024-10-04 17:49:19 -04:00
J / Jacob Babich
5e0a2326ca ci: try working around https://github.com/rust-lang/cargo/issues/4133 2024-10-04 17:25:06 -04:00
J / Jacob Babich
1493425540 ci: I must've hallucinated aarch64-pc-windows-gnu because it seems to actually be aarch64-pc-windows-gnullvm 2024-10-04 17:12:46 -04:00
J / Jacob Babich
576a8e99c0 ci: rewrite step for installing Rust to specify the toolchain as an argument rather than - where it seems to be invalid when using a variable - the uses: revision 2024-10-04 17:10:03 -04:00
J / Jacob Babich
01ce1e85a8 ci: it seems aarch64-pc-windows-gnu requires a nightly toolchain for now 2024-10-04 17:06:35 -04:00
J / Jacob Babich
cd788e1ab8 ci: split checking formatting off into its own job that only needs to run once 2024-10-04 17:01:45 -04:00
J / Jacob Babich
65487b2378 ci: see if this basic matrix of build targets and runners works for checking, building, and testing 2024-10-04 16:59:08 -04:00
J / Jacob Babich
e4e2efafb9 ci: only test direct minimal dependencies and not transitive ones because, per what I recall of Jon Gjengset's thoughts on the matter, it means there's a bug in a dependency rather than a bug in this codebase (and a bug in an old and obsolete version of their crate at that, so what would be the point?) 2024-10-03 02:19:59 -04:00
J / Jacob Babich
0fcdfdae30 ci: install cargo-hack before cargo-minimal-versions as it appears to be a requirement 2024-10-03 02:15:54 -04:00
J / Jacob Babich
9e43655567 ci: test minimal dependencies in GitHub Actions 2024-10-03 02:14:07 -04:00
J
0bc9424db6 docs: write barebones installation and usage sections
Some checks are pending
Check, build, and test / check-build-and-test (push) Waiting to run
Release-plz / Release-plz (push) Waiting to run
2024-10-02 02:50:25 -04:00
J
4a13d61e25 docs: indicate the license options (MIT, Apache 2.0, or Unlicense) of the project 2024-10-02 02:25:33 -04:00
J / Jacob Babich
376893e566 docs: link to issue for starting to test MSRV in CI
Some checks failed
Check, build, and test / check-build-and-test (push) Has been cancelled
Release-plz / Release-plz (push) Has been cancelled
2024-09-30 16:03:56 -04:00
J
c8cde7dffc Merge pull request #4 from babichjacob/release-plz-2024-09-30T19-19-10Z
chore: release v0.0.4
2024-09-30 19:39:26 +00:00
22 changed files with 969 additions and 32 deletions

View File

@@ -3,6 +3,14 @@ name: Check, build, and test
on:
push:
branches: ["main"]
# This workflow is definitely expensive for GitHub,
# so let's not let files that won't affect the project's ability to build and test trigger it
paths-ignore:
- ".github/**"
- "**/.gitignore"
- "**/CHANGELOG.md"
- "**/README.md"
- "**/LICENSE-*"
pull_request:
branches: ["main"]
@@ -10,28 +18,170 @@ env:
CARGO_TERM_COLOR: always
jobs:
check-build-and-test:
formatting:
runs-on: ubuntu-latest
timeout-minutes: 15
timeout-minutes: 2
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust toolchain
- name: Install stable Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install Nextest
uses: taiki-e/install-action@cargo-nextest
- uses: Swatinem/rust-cache@v2
- name: Check
run: cargo check --verbose
- name: Formatting
run: cargo fmt --check --verbose
check-and-build:
strategy:
matrix:
minimal_or_latest:
- build_command: cargo minimal-versions build --direct --verbose
cache_key: minimal
check_command: cargo minimal-versions check --direct --verbose
job_name_suffix: with minimal versions of direct dependencies
- build_command: cargo build --verbose
cache_key: latest
check_command: cargo check --verbose
job_name_suffix: (with latest (typically) versions of dependencies)
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 }} (on ${{ matrix.supporteds.runner }}) ${{ matrix.minimal_or_latest.job_name_suffix }}
runs-on: ${{ matrix.supporteds.runner }}
timeout-minutes: 5
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 stable Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.supporteds.target }}
- name: Install cargo-hack
uses: taiki-e/install-action@cargo-hack
- name: Install cargo-minimal-versions
uses: taiki-e/install-action@cargo-minimal-versions
- uses: Swatinem/rust-cache@v2
with:
shared-key: ${{ matrix.supporteds.target }}-${{ matrix.minimal_or_latest.cache_key }}
cache-on-failure: "true"
- name: Check
run: ${{ matrix.minimal_or_latest.check_command }} --target ${{ matrix.supporteds.target }}
- name: Build
run: cargo build --verbose
run: ${{ matrix.minimal_or_latest.build_command }} --target ${{ matrix.supporteds.target }}
test:
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 }} (on ${{ matrix.supporteds.runner }})
runs-on: ${{ matrix.supporteds.runner }}
timeout-minutes: 5
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 stable Rust toolchain
uses: dtolnay/rust-toolchain@stable
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
cache-on-failure: "true"
- name: Test
run: cargo nextest run
run: cargo nextest run --target ${{ matrix.supporteds.target }}

View File

@@ -9,21 +9,96 @@ on:
jobs:
compile-and-publish:
runs-on: ubuntu-latest
timeout-minutes: 15
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: Compile ${{ matrix.supporteds.target }} for release (on ${{ matrix.supporteds.runner }})
runs-on: ${{ matrix.supporteds.runner }}
timeout-minutes: 10
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 Rust toolchain
- name: Install prerequisite build chain
if: matrix.supporteds.install_prerequisite
run: ${{ matrix.supporteds.install_prerequisite }}
- name: Install stable Rust toolchain
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
shared-key: ${{ matrix.supporteds.target }}-latest
cache-on-failure: "true"
- name: Build for release
run: cargo build --release --verbose
- uses: taiki-e/upload-rust-binary-action@v1
# 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')
uses: taiki-e/upload-rust-binary-action@v1
with:
bin: ac-qu-ai-nt
token: ${{ secrets.GITHUB_TOKEN }}
target: ${{ matrix.supporteds.target }}
- if: startsWith(github.event.release.tag_name, 'ac-qu-ai-nt-cli-clap-v')
uses: taiki-e/upload-rust-binary-action@v1
with:
bin: ac-qu-ai-nt-cli-clap
token: ${{ secrets.GITHUB_TOKEN }}
target: ${{ matrix.supporteds.target }}
- if: startsWith(github.event.release.tag_name, 'ac-qu-ai-nt-gui-eframe-v')
uses: taiki-e/upload-rust-binary-action@v1
with:
bin: ac-qu-ai-nt-gui-eframe
token: ${{ secrets.GITHUB_TOKEN }}
target: ${{ matrix.supporteds.target }}
- if: startsWith(github.event.release.tag_name, 'ac-qu-ai-nt-tui-ratatui-v')
uses: taiki-e/upload-rust-binary-action@v1
with:
bin: ac-qu-ai-nt-tui-ratatui
token: ${{ secrets.GITHUB_TOKEN }}
target: ${{ matrix.supporteds.target }}

304
Cargo.lock generated
View File

@@ -4,9 +4,11 @@ version = 3
[[package]]
name = "ac-qu-ai-nt"
version = "0.0.4"
version = "0.0.12"
dependencies = [
"ac-qu-ai-nt-cli-clap",
"ac-qu-ai-nt-gui-eframe",
"ac-qu-ai-nt-tui-ratatui",
"clap",
"dirs-next",
"tracing-subscriber",
@@ -14,12 +16,44 @@ dependencies = [
[[package]]
name = "ac-qu-ai-nt-cli-clap"
version = "0.0.4"
version = "0.0.8"
dependencies = [
"clap",
"tracing",
]
[[package]]
name = "ac-qu-ai-nt-core"
version = "0.0.3"
dependencies = [
"llama-cpp-2",
"llama-cpp-sys-2",
"tracing",
]
[[package]]
name = "ac-qu-ai-nt-gui-eframe"
version = "0.0.5"
dependencies = [
"tracing",
]
[[package]]
name = "ac-qu-ai-nt-tui-ratatui"
version = "0.0.5"
dependencies = [
"tracing",
]
[[package]]
name = "aho-corasick"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
"memchr",
]
[[package]]
name = "anstream"
version = "0.6.15"
@@ -69,18 +103,72 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "bindgen"
version = "0.69.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
dependencies = [
"bitflags",
"cexpr",
"clang-sys",
"itertools",
"lazy_static",
"lazycell",
"log",
"prettyplease",
"proc-macro2",
"quote",
"regex",
"rustc-hash",
"shlex",
"syn",
"which",
]
[[package]]
name = "bitflags"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "cc"
version = "1.1.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e80e3b6a3ab07840e1cae9b0666a63970dc28e8ed5ffbcdacbfc760c281bfc1"
dependencies = [
"jobserver",
"libc",
"shlex",
]
[[package]]
name = "cexpr"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
dependencies = [
"nom",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clang-sys"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
dependencies = [
"glob",
"libc",
"libloading",
]
[[package]]
name = "clap"
version = "4.5.18"
@@ -148,6 +236,42 @@ dependencies = [
"winapi",
]
[[package]]
name = "either"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
name = "enumflags2"
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
dependencies = [
"enumflags2_derive",
]
[[package]]
name = "enumflags2_derive"
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "errno"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
dependencies = [
"libc",
"windows-sys",
]
[[package]]
name = "getrandom"
version = "0.2.15"
@@ -159,30 +283,79 @@ dependencies = [
"wasi",
]
[[package]]
name = "glob"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "home"
version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
dependencies = [
"windows-sys",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
[[package]]
name = "itertools"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
dependencies = [
"either",
]
[[package]]
name = "jobserver"
version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
dependencies = [
"libc",
]
[[package]]
name = "lazy_static"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "lazycell"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "libc"
version = "0.2.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]]
name = "libloading"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
dependencies = [
"cfg-if",
"windows-targets",
]
[[package]]
name = "libredox"
version = "0.1.3"
@@ -193,12 +366,63 @@ dependencies = [
"libc",
]
[[package]]
name = "linux-raw-sys"
version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]]
name = "llama-cpp-2"
version = "0.1.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d06b23f7c63e64ffceb0fab92746393dfbb76de41e02fd6751aeafff6a921e9"
dependencies = [
"enumflags2",
"llama-cpp-sys-2",
"thiserror",
"tracing",
]
[[package]]
name = "llama-cpp-sys-2"
version = "0.1.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "429e10ceb3c385e9094d0adb75ae976d433f53977281f598f6a7cbae8d265d50"
dependencies = [
"bindgen",
"cc",
"once_cell",
]
[[package]]
name = "log"
version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "memchr"
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "minimal-lexical"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "nom"
version = "7.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
dependencies = [
"memchr",
"minimal-lexical",
]
[[package]]
name = "nu-ansi-term"
version = "0.46.0"
@@ -236,6 +460,16 @@ version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2"
[[package]]
name = "prettyplease"
version = "0.2.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba"
dependencies = [
"proc-macro2",
"syn",
]
[[package]]
name = "proc-macro2"
version = "1.0.86"
@@ -265,6 +499,54 @@ dependencies = [
"thiserror",
]
[[package]]
name = "regex"
version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8"
dependencies = [
"aho-corasick",
"memchr",
"regex-automata",
"regex-syntax",
]
[[package]]
name = "regex-automata"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "rustc-hash"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "rustix"
version = "0.38.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
dependencies = [
"bitflags",
"errno",
"libc",
"linux-raw-sys",
"windows-sys",
]
[[package]]
name = "sharded-slab"
version = "0.1.7"
@@ -274,6 +556,12 @@ dependencies = [
"lazy_static",
]
[[package]]
name = "shlex"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "smallvec"
version = "1.13.2"
@@ -408,6 +696,18 @@ version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "which"
version = "4.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
dependencies = [
"either",
"home",
"once_cell",
"rustix",
]
[[package]]
name = "winapi"
version = "0.3.9"

View File

@@ -1,5 +1,5 @@
[workspace]
members = ["cli-clap", "multibinary"]
members = ["core", "cli-clap", "gui-eframe", "tui-ratatui", "multibinary"]
resolver = "2"
[workspace.package]
@@ -9,4 +9,4 @@ repository = "https://github.com/babichjacob/ac-qu-ai-nt"
[workspace.dependencies]
clap = "4"
tracing = "0.1"
tracing = "0.1.23"

View File

@@ -1,9 +1,50 @@
# ac-qu-ai-nt
`ac-qu-ai-nt` is a project I'm working on, using artificial intelligence to break down the user's query, acquire knowledge, and transfer insights to the user('s mind).
This is a placeholder while I take small steps to build out the project.
# Installation
## 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.
```sh
cargo-binstall -y ac-qu-ai-nt
```
Install [`cargo-update`](https://github.com/nabijaczleweli/cargo-update) and periodically run
```sh
cargo install-update --all
```
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.
## 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.
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
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
```sh
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.
## 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.
If you want to use its command line interface, start with
```sh
ac-qu-ai-nt cli
```
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.)
# Contributing
This is a summary of the crates I expect to be in this project and how they are used:
@@ -28,4 +69,13 @@ To be more specific about what a breaking change _could_ entail:
- the program (wrongly) exiting, panicking, reporting an error, etc, where it didn't previously
- changing the expected result of an existing integration test (not sure if unit tests would count)
All the crates in this project have a [minimum supported Rust version (MSRV)](https://rust-lang.github.io/rfcs/2495-min-rust-version.html) of 1.76, the release succeeding [the one that stabilized `async fn` in traits](https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html) (which the `core` crate of this project is expected to make use of). I intend to test this in CI (GitHub Actions) in the future to identify if it ever gets raised by changes but I have not set this up yet. Raising the MSRV will be considered a breaking change --- my justification is that it [seems more appropriate for an application like this](https://github.com/matklad/once_cell/issues/201#issuecomment-1257213601). This may be reconsidered if [Cargo's MSRV-aware resolver](https://rust-lang.github.io/rfcs/3537-msrv-resolver.html) is stabilized.
All the crates in this project have a [minimum supported Rust version (MSRV)](https://rust-lang.github.io/rfcs/2495-min-rust-version.html) of 1.76, the release succeeding [the one that stabilized `async fn` in traits](https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html) (which the `core` crate of this project is expected to make use of). I [intend to test this in CI (GitHub Actions) in the future](https://github.com/babichjacob/ac-qu-ai-nt/issues/5) to identify if it ever gets raised by changes but I have not set this up yet. Raising the MSRV will be considered a breaking change --- my justification is that it [seems more appropriate for an application like this](https://github.com/matklad/once_cell/issues/201#issuecomment-1257213601). This may be reconsidered if [Cargo's MSRV-aware resolver](https://rust-lang.github.io/rfcs/3537-msrv-resolver.html) is stabilized.
## License
All contents of this repository are licensed under either the
* [MIT license](LICENSE-MIT), or
* [Apache 2.0 license](LICENSE-APACHE), or
* [Unlicense](LICENSE-UNLICENSE)
at your option.

View File

@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [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
- update Cargo.toml dependencies
## [0.0.7](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-cli-clap-v0.0.6...ac-qu-ai-nt-cli-clap-v0.0.7) - 2024-10-06
### Fixed
- move the Binstall configuration to the right spot
## [0.0.6](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-cli-clap-v0.0.5...ac-qu-ai-nt-cli-clap-v0.0.6) - 2024-10-06
### Other
- specify the correct download URLs for Binstall to work correctly
## [0.0.5](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-cli-clap-v0.0.4...ac-qu-ai-nt-cli-clap-v0.0.5) - 2024-10-05
### Other
- change `Hello, world!` to `What's up world?` to allow me to cut a release
## [0.0.4](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-cli-clap-v0.0.3...ac-qu-ai-nt-cli-clap-v0.0.4) - 2024-09-30
### Added

View File

@@ -1,7 +1,7 @@
[package]
name = "ac-qu-ai-nt-cli-clap"
description = "A CLI (written with clap) for ac-qu-ai-nt"
version = "0.0.4"
version = "0.0.8"
edition = "2021"
rust-version = "1.76"
@@ -9,6 +9,9 @@ authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/{ name }-v{ version }/{ name }-{ target }{ archive-suffix }"
[features]
default = ["tracing"]
tracing = ["dep:tracing"]

View File

@@ -1,4 +1,4 @@
pub fn main() {
#[cfg(feature = "tracing")]
tracing::info!("Hello, world!");
tracing::info!("What's up, world?");
}

53
core/CHANGELOG.md Normal file
View File

@@ -0,0 +1,53 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [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
- [**breaking**] add `llama-cpp-2` as a dependency (because it will get used in the future), possibly breaking portability (but we'll see what the GitHub Actions workflows say back)
## [0.0.2](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-core-v0.0.1...ac-qu-ai-nt-core-v0.0.2) - 2024-10-06
### Other
- release
## [0.0.1](https://github.com/babichjacob/ac-qu-ai-nt/releases/tag/ac-qu-ai-nt-core-v0.0.1) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`
### Other
- add package `description`s so that they can actually be published
- release
- run cargo fmt
## [0.0.1](https://github.com/babichjacob/ac-qu-ai-nt/releases/tag/ac-qu-ai-nt-core-v0.0.1) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`
### Other
- release
- run cargo fmt
## [0.0.1](https://github.com/babichjacob/ac-qu-ai-nt/releases/tag/ac-qu-ai-nt-core-v0.0.1) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`
### Other
- run cargo fmt

20
core/Cargo.toml Normal file
View File

@@ -0,0 +1,20 @@
[package]
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"
version = "0.0.3"
edition = "2021"
rust-version = "1.76"
authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[features]
default = ["tracing"]
tracing = ["dep:tracing"]
[dependencies]
llama-cpp-2 = "=0.1.64"
llama-cpp-sys-2 = "=0.1.64"
tracing = { workspace = true, optional = true }

1
core/src/lib.rs Normal file
View File

@@ -0,0 +1 @@

59
gui-eframe/CHANGELOG.md Normal file
View File

@@ -0,0 +1,59 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [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
- update Cargo.toml dependencies
## [0.0.4](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-gui-eframe-v0.0.3...ac-qu-ai-nt-gui-eframe-v0.0.4) - 2024-10-06
### Fixed
- move the Binstall configuration to the right spot
## [0.0.3](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-gui-eframe-v0.0.2...ac-qu-ai-nt-gui-eframe-v0.0.3) - 2024-10-06
### Other
- specify the correct download URLs for Binstall to work correctly
## [0.0.2](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-gui-eframe-v0.0.1...ac-qu-ai-nt-gui-eframe-v0.0.2) - 2024-10-06
### Other
- release
## [0.0.1](https://github.com/babichjacob/ac-qu-ai-nt/releases/tag/ac-qu-ai-nt-gui-eframe-v0.0.1) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`
### Other
- add package `description`s so that they can actually be published
- release
## [0.0.1](https://github.com/babichjacob/ac-qu-ai-nt/releases/tag/ac-qu-ai-nt-gui-eframe-v0.0.1) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`
### Other
- release
## [0.0.1](https://github.com/babichjacob/ac-qu-ai-nt/releases/tag/ac-qu-ai-nt-gui-eframe-v0.0.1) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`

20
gui-eframe/Cargo.toml Normal file
View File

@@ -0,0 +1,20 @@
[package]
name = "ac-qu-ai-nt-gui-eframe"
description = "A GUI (written with egui / eframe) for ac-qu-ai-nt"
version = "0.0.5"
edition = "2021"
rust-version = "1.76"
authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/{ name }-v{ version }/{ name }-{ target }{ archive-suffix }"
[features]
default = ["tracing"]
tracing = ["dep:tracing"]
[dependencies]
tracing = { workspace = true, optional = true }

4
gui-eframe/src/lib.rs Normal file
View File

@@ -0,0 +1,4 @@
pub fn main() {
#[cfg(feature = "tracing")]
tracing::info!("Hello from the eframe-based GUI!");
}

1
gui-eframe/src/main.rs Normal file
View File

@@ -0,0 +1 @@
use ac_qu_ai_nt_gui_eframe::main;

View File

@@ -7,6 +7,60 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [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
- updated the following local packages: ac-qu-ai-nt-cli-clap, ac-qu-ai-nt-gui-eframe, ac-qu-ai-nt-tui-ratatui
## [0.0.11](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.10...ac-qu-ai-nt-v0.0.11) - 2024-10-06
### Other
- add Binstall configuration for the multibinary
## [0.0.10](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.9...ac-qu-ai-nt-v0.0.10) - 2024-10-06
### Other
- updated the following local packages: ac-qu-ai-nt-cli-clap, ac-qu-ai-nt-gui-eframe, ac-qu-ai-nt-tui-ratatui
## [0.0.9](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.8...ac-qu-ai-nt-v0.0.9) - 2024-10-06
### Other
- updated the following local packages: ac-qu-ai-nt-gui-eframe, ac-qu-ai-nt-tui-ratatui
## [0.0.8](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.7...ac-qu-ai-nt-v0.0.8) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`
## [0.0.7](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.6...ac-qu-ai-nt-v0.0.7) - 2024-10-05
### Other
- updated the following local packages: ac-qu-ai-nt-cli-clap
## [0.0.6](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.5...ac-qu-ai-nt-v0.0.6) - 2024-10-05
### Fixed
- cover the new cases of `Command` for `GuiEframe` and `TuiRatatui`
### Other
- correctly add `gui-eframe` and `tui-ratatui` as features this time around
- add `gui-eframe` and `tui-ratatui` as subcommands with aliases `gui` and `tui` respectively
- add `gui-eframe` and `tui-ratatui` as features
## [0.0.5](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.4...ac-qu-ai-nt-v0.0.5) - 2024-10-05
### Other
- [**breaking**] put accessing the cli under a subcommand like the README suggests it would be
## [0.0.4](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-v0.0.3...ac-qu-ai-nt-v0.0.4) - 2024-09-30
### Added

View File

@@ -1,7 +1,7 @@
[package]
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"
version = "0.0.4"
version = "0.0.12"
edition = "2021"
rust-version = "1.76"
@@ -9,13 +9,29 @@ authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/{ name }-v{ version }/{ name }-{ target }{ archive-suffix }"
[features]
default = ["cli-clap", "tracing"]
default = ["cli-clap", "gui-eframe", "tui-ratatui", "tracing"]
cli-clap = ["dep:ac-qu-ai-nt-cli-clap"]
tracing = ["dep:tracing-subscriber", "ac-qu-ai-nt-cli-clap?/tracing"]
gui-eframe = ["dep:ac-qu-ai-nt-gui-eframe"]
tui-ratatui = ["dep:ac-qu-ai-nt-tui-ratatui"]
tracing = [
"dep:tracing-subscriber",
"ac-qu-ai-nt-cli-clap?/tracing",
"ac-qu-ai-nt-gui-eframe?/tracing",
"ac-qu-ai-nt-tui-ratatui?/tracing",
]
[dependencies]
ac-qu-ai-nt-cli-clap = { version = "0.0.4", path = "../cli-clap", optional = true }
ac-qu-ai-nt-cli-clap = { version = "0.0.8", path = "../cli-clap", optional = true }
ac-qu-ai-nt-gui-eframe = { version = "0.0.5", path = "../gui-eframe", optional = true }
ac-qu-ai-nt-tui-ratatui = { version = "0.0.5", path = "../tui-ratatui", optional = true }
clap = { workspace = true, features = ["derive", "env"] }
dirs-next = "2.0.0"
tracing-subscriber = { version = "0.3.18", optional = true }

View File

@@ -1,6 +1,6 @@
use std::{fs::create_dir_all, io::ErrorKind, path::PathBuf};
use clap::Parser;
use clap::{Parser, Subcommand};
#[derive(Debug, Parser)]
struct Args {
@@ -10,11 +10,28 @@ struct Args {
default_value_os_t = dirs_next::data_local_dir().expect("sorry but you're on a platform where dirs_next::data_local_dir() returned None, so please specify a data directory for the application").join("ac-qu-ai-nt")
)]
application_data_directory: PathBuf,
#[command(subcommand)]
command: Command,
}
#[derive(Debug, Subcommand)]
enum Command {
#[cfg(feature = "cli-clap")]
#[command(alias = "cli")]
CliClap,
#[cfg(feature = "gui-eframe")]
#[command(alias = "gui")]
GuiEframe,
#[cfg(feature = "tui-ratatui")]
#[command(alias = "tui")]
TuiRatatui,
}
fn main() {
let Args {
application_data_directory,
command,
} = Args::parse();
#[cfg(feature = "tracing")]
@@ -38,6 +55,12 @@ fn main() {
}
}
match command {
#[cfg(feature = "cli-clap")]
ac_qu_ai_nt_cli_clap::main();
Command::CliClap => ac_qu_ai_nt_cli_clap::main(),
#[cfg(feature = "gui-eframe")]
Command::GuiEframe => ac_qu_ai_nt_gui_eframe::main(),
#[cfg(feature = "tui-ratatui")]
Command::TuiRatatui => ac_qu_ai_nt_tui_ratatui::main(),
}
}

59
tui-ratatui/CHANGELOG.md Normal file
View File

@@ -0,0 +1,59 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [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
- update Cargo.toml dependencies
## [0.0.4](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-tui-ratatui-v0.0.3...ac-qu-ai-nt-tui-ratatui-v0.0.4) - 2024-10-06
### Fixed
- move the Binstall configuration to the right spot
## [0.0.3](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-tui-ratatui-v0.0.2...ac-qu-ai-nt-tui-ratatui-v0.0.3) - 2024-10-06
### Other
- specify the correct download URLs for Binstall to work correctly
## [0.0.2](https://github.com/babichjacob/ac-qu-ai-nt/compare/ac-qu-ai-nt-tui-ratatui-v0.0.1...ac-qu-ai-nt-tui-ratatui-v0.0.2) - 2024-10-06
### Other
- release
## [0.0.1](https://github.com/babichjacob/ac-qu-ai-nt/releases/tag/ac-qu-ai-nt-tui-ratatui-v0.0.1) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`
### Other
- add package `description`s so that they can actually be published
- release
## [0.0.1](https://github.com/babichjacob/ac-qu-ai-nt/releases/tag/ac-qu-ai-nt-tui-ratatui-v0.0.1) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`
### Other
- release
## [0.0.1](https://github.com/babichjacob/ac-qu-ai-nt/releases/tag/ac-qu-ai-nt-tui-ratatui-v0.0.1) - 2024-10-06
### Added
- initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary`

20
tui-ratatui/Cargo.toml Normal file
View File

@@ -0,0 +1,20 @@
[package]
name = "ac-qu-ai-nt-tui-ratatui"
description = "A TUI (written with Ratatui) for ac-qu-ai-nt"
version = "0.0.5"
edition = "2021"
rust-version = "1.76"
authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/{ name }-v{ version }/{ name }-{ target }{ archive-suffix }"
[features]
default = ["tracing"]
tracing = ["dep:tracing"]
[dependencies]
tracing = { workspace = true, optional = true }

4
tui-ratatui/src/lib.rs Normal file
View File

@@ -0,0 +1,4 @@
pub fn main() {
#[cfg(feature = "tracing")]
tracing::info!("This is from the TUI based on Ratatui.");
}

1
tui-ratatui/src/main.rs Normal file
View File

@@ -0,0 +1 @@
use ac_qu_ai_nt_tui_ratatui::main;