Compare commits

..

8 Commits

18 changed files with 182 additions and 42 deletions

View File

@@ -34,6 +34,15 @@ jobs:
check-and-build: check-and-build:
strategy: strategy:
matrix: matrix:
minimal_or_latest:
- build_command: cargo minimal-versions build --direct --verbose
check_command: cargo minimal-versions check --direct --verbose
job_name_suffix: with minimal versions of direct dependencies
- build_command: cargo build --verbose
check_command: cargo check --verbose
job_name_suffix: (with latest (typically) versions of dependencies)
supporteds: supporteds:
- runner: macos-latest - runner: macos-latest
target: aarch64-apple-darwin target: aarch64-apple-darwin
@@ -67,7 +76,7 @@ jobs:
- runner: windows-latest - runner: windows-latest
target: x86_64-pc-windows-msvc target: x86_64-pc-windows-msvc
name: Check and build ${{ matrix.supporteds.target }} (on ${{ matrix.supporteds.runner }}) 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: 5
env: env:
@@ -87,16 +96,21 @@ jobs:
with: with:
targets: ${{ matrix.supporteds.target }} 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 - uses: Swatinem/rust-cache@v2
with: with:
shared-key: ${{ matrix.supporteds.target }} shared-key: ${{ matrix.supporteds.target }}
cache-on-failure: "true" cache-on-failure: "true"
- name: Check - name: Check
run: cargo check --verbose --target ${{ matrix.supporteds.target }} run: ${{ matrix.minimal_or_latest.check_command }} --target ${{ matrix.supporteds.target }}
- name: Build - name: Build
run: cargo build --verbose --target ${{ matrix.supporteds.target }} run: ${{ matrix.minimal_or_latest.build_command }} --target ${{ matrix.supporteds.target }}
test: test:
strategy: strategy:
@@ -154,28 +168,3 @@ jobs:
- name: Test - name: Test
run: cargo nextest run --target ${{ matrix.supporteds.target }} run: cargo nextest run --target ${{ matrix.supporteds.target }}
minimal-dependencies-check-build-and-test:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install cargo-minimal-versions
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
- name: Check (minimal direct dependencies)
run: cargo minimal-versions check --direct --workspace
- name: Build (minimal direct dependencies)
run: cargo minimal-versions build --direct --workspace
- name: Test (minimal direct dependencies)
run: cargo minimal-versions test --direct --workspace

View File

@@ -9,12 +9,8 @@ on:
jobs: jobs:
compile-and-publish: compile-and-publish:
if: ${{ startsWith(github.event.release.tag_name, format('{0}-v', matrix.crate)) }}
strategy: strategy:
matrix: matrix:
crate:
- ac-qu-ai-nt
- ac-qu-ai-nt-cli-clap
supporteds: supporteds:
- runner: macos-latest - runner: macos-latest
target: aarch64-apple-darwin target: aarch64-apple-darwin
@@ -70,8 +66,17 @@ jobs:
- name: Build for release - name: Build for release
run: cargo build --release --verbose 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: with:
bin: ${{ matrix.crate }} 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 }} token: ${{ secrets.GITHUB_TOKEN }}
target: ${{ matrix.supporteds.target }} target: ${{ matrix.supporteds.target }}

25
Cargo.lock generated
View File

@@ -4,9 +4,11 @@ version = 3
[[package]] [[package]]
name = "ac-qu-ai-nt" name = "ac-qu-ai-nt"
version = "0.0.7" version = "0.0.8"
dependencies = [ dependencies = [
"ac-qu-ai-nt-cli-clap", "ac-qu-ai-nt-cli-clap",
"ac-qu-ai-nt-gui-eframe",
"ac-qu-ai-nt-tui-ratatui",
"clap", "clap",
"dirs-next", "dirs-next",
"tracing-subscriber", "tracing-subscriber",
@@ -20,6 +22,27 @@ dependencies = [
"tracing", "tracing",
] ]
[[package]]
name = "ac-qu-ai-nt-core"
version = "0.0.1"
dependencies = [
"tracing",
]
[[package]]
name = "ac-qu-ai-nt-gui-eframe"
version = "0.0.1"
dependencies = [
"tracing",
]
[[package]]
name = "ac-qu-ai-nt-tui-ratatui"
version = "0.0.1"
dependencies = [
"tracing",
]
[[package]] [[package]]
name = "anstream" name = "anstream"
version = "0.6.15" version = "0.6.15"

View File

@@ -1,5 +1,5 @@
[workspace] [workspace]
members = ["cli-clap", "multibinary"] members = ["core", "cli-clap", "gui-eframe", "tui-ratatui", "multibinary"]
resolver = "2" resolver = "2"
[workspace.package] [workspace.package]

18
core/CHANGELOG.md Normal file
View File

@@ -0,0 +1,18 @@
# 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.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

17
core/Cargo.toml Normal file
View File

@@ -0,0 +1,17 @@
[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.1"
edition = "2021"
rust-version = "1.76"
authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[features]
default = ["tracing"]
tracing = ["dep:tracing"]
[dependencies]
tracing = { workspace = true, optional = true }

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

@@ -0,0 +1 @@

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

@@ -0,0 +1,14 @@
# 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.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`

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

@@ -0,0 +1,17 @@
[package]
name = "ac-qu-ai-nt-gui-eframe"
description = "A GUI (written with egui / eframe) for ac-qu-ai-nt"
version = "0.0.1"
edition = "2021"
rust-version = "1.76"
authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[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,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [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 ## [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 ### 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.7" version = "0.0.8"
edition = "2021" edition = "2021"
rust-version = "1.76" rust-version = "1.76"
@@ -13,13 +13,22 @@ repository = { workspace = true }
default = ["cli-clap", "gui-eframe", "tui-ratatui", "tracing"] default = ["cli-clap", "gui-eframe", "tui-ratatui", "tracing"]
cli-clap = ["dep:ac-qu-ai-nt-cli-clap"] cli-clap = ["dep:ac-qu-ai-nt-cli-clap"]
gui-eframe = [] gui-eframe = ["dep:ac-qu-ai-nt-gui-eframe"]
tui-ratatui = [] tui-ratatui = ["dep:ac-qu-ai-nt-tui-ratatui"]
tracing = ["dep:tracing-subscriber", "ac-qu-ai-nt-cli-clap?/tracing"] 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] [dependencies]
ac-qu-ai-nt-cli-clap = { version = "0.0.5", path = "../cli-clap", optional = true } ac-qu-ai-nt-cli-clap = { version = "0.0.5", path = "../cli-clap", optional = true }
ac-qu-ai-nt-gui-eframe = { version = "0.0.1", path = "../gui-eframe", optional = true }
ac-qu-ai-nt-tui-ratatui = { version = "0.0.1", path = "../tui-ratatui", optional = true }
clap = { workspace = true, features = ["derive", "env"] } clap = { workspace = true, features = ["derive", "env"] }
dirs-next = "2.0.0" dirs-next = "2.0.0"
tracing-subscriber = { version = "0.3.18", optional = true } tracing-subscriber = { version = "0.3.18", optional = true }

View File

@@ -59,8 +59,8 @@ fn main() {
#[cfg(feature = "cli-clap")] #[cfg(feature = "cli-clap")]
Command::CliClap => ac_qu_ai_nt_cli_clap::main(), Command::CliClap => ac_qu_ai_nt_cli_clap::main(),
#[cfg(feature = "gui-eframe")] #[cfg(feature = "gui-eframe")]
Command::GuiEframe => todo!(), Command::GuiEframe => ac_qu_ai_nt_gui_eframe::main(),
#[cfg(feature = "tui-ratatui")] #[cfg(feature = "tui-ratatui")]
Command::TuiRatatui => todo!(), Command::TuiRatatui => ac_qu_ai_nt_tui_ratatui::main(),
} }
} }

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

@@ -0,0 +1,14 @@
# 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.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`

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

@@ -0,0 +1,17 @@
[package]
name = "ac-qu-ai-nt-tui-ratatui"
description = "A TUI (written with Ratatui) for ac-qu-ai-nt"
version = "0.0.1"
edition = "2021"
rust-version = "1.76"
authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[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;