Skip to content

Commit 8cd198d

Browse files
authored
Merge pull request #73 from vectorlessflow/dev
refactor(ci): update GitHub Actions workflow configuration
2 parents 19c1c5b + d5f4cc8 commit 8cd198d

17 files changed

Lines changed: 70 additions & 69 deletions

File tree

.github/workflows/ci.yml

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,16 @@ jobs:
3939
with:
4040
components: clippy
4141
- uses: Swatinem/rust-cache@v2
42-
- run: cargo clippy --all-targets --all-features -- -D warnings
42+
- run: cargo clippy --all-features -- -D clippy::correctness
4343

44-
# test:
45-
# name: Test
46-
# runs-on: ubuntu-latest
47-
# steps:
48-
# - uses: actions/checkout@v4
49-
# - uses: dtolnay/rust-toolchain@stable
50-
# - uses: Swatinem/rust-cache@v2
51-
# - run: cargo test --lib --all-features
52-
# env:
53-
# OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
44+
test:
45+
name: Test
46+
runs-on: ubuntu-latest
47+
steps:
48+
- uses: actions/checkout@v4
49+
- uses: dtolnay/rust-toolchain@stable
50+
- uses: Swatinem/rust-cache@v2
51+
- run: cargo test --lib --all-features
5452

5553
docs:
5654
name: Documentation
@@ -60,24 +58,10 @@ jobs:
6058
- uses: dtolnay/rust-toolchain@stable
6159
- uses: Swatinem/rust-cache@v2
6260
- name: Check documentation build
63-
run: cargo doc --no-deps --all-features
61+
run: cargo doc -p vectorless --no-deps --all-features
6462
env:
6563
RUSTDOCFLAGS: -D warnings
6664

67-
# doctest:
68-
# name: Doc Tests
69-
# runs-on: ubuntu-latest
70-
# steps:
71-
# - uses: actions/checkout@v4
72-
# - uses: dtolnay/rust-toolchain@stable
73-
# - uses: Swatinem/rust-cache@v2
74-
# - name: Run documentation tests
75-
# run: cargo test --doc --all-features
76-
# continue-on-error: true # Allow doctest failures initially
77-
# env:
78-
# OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
79-
80-
# Release build check
8165
build:
8266
name: Build
8367
runs-on: ubuntu-latest

python/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ use ::vectorless::client::{
1515
};
1616
use ::vectorless::error::Error as RustError;
1717
use ::vectorless::metrics::IndexMetrics;
18-
use ::vectorless::metrics::{LlmMetricsReport, MetricsReport, PilotMetricsReport, RetrievalMetricsReport};
18+
use ::vectorless::metrics::{
19+
LlmMetricsReport, MetricsReport, PilotMetricsReport, RetrievalMetricsReport,
20+
};
1921

2022
// ============================================================
2123
// Error Types
@@ -679,9 +681,7 @@ impl PyLlmMetricsReport {
679681
fn __repr__(&self) -> String {
680682
format!(
681683
"LlmMetricsReport(calls={}, tokens={}, cost=${:.4})",
682-
self.inner.total_calls,
683-
self.inner.total_tokens,
684-
self.inner.estimated_cost_usd,
684+
self.inner.total_calls, self.inner.total_tokens, self.inner.estimated_cost_usd,
685685
)
686686
}
687687
}

rust/examples/advanced.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ async fn main() -> vectorless::Result<()> {
5555

5656
// Query
5757
let result = client
58-
.query(QueryContext::new("What features does Vectorless provide?").with_doc_ids(vec![doc_id.clone()]))
58+
.query(
59+
QueryContext::new("What features does Vectorless provide?")
60+
.with_doc_ids(vec![doc_id.clone()]),
61+
)
5962
.await?;
6063
println!("Query: What features does Vectorless provide?");
6164
if let Some(item) = result.single() {

rust/examples/index_directory.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@ async fn main() -> vectorless::Result<()> {
2424

2525
// Parse CLI arguments
2626
let args: Vec<String> = std::env::args().collect();
27-
let dir = args
28-
.get(1)
29-
.map(|s| s.as_str())
30-
.unwrap_or("./samples");
27+
let dir = args.get(1).map(|s| s.as_str()).unwrap_or("./samples");
3128
let recursive = !args.iter().any(|a| a == "--no-recursive");
3229

3330
// Build engine
@@ -46,7 +43,11 @@ async fn main() -> vectorless::Result<()> {
4643
.map_err(|e| vectorless::Error::Config(e.to_string()))?;
4744

4845
// Index directory
49-
println!("{}indexing: {}", if recursive { "Recursively " } else { "" }, dir);
46+
println!(
47+
"{}indexing: {}",
48+
if recursive { "Recursively " } else { "" },
49+
dir
50+
);
5051
let ctx = IndexContext::from_dir(dir, recursive);
5152

5253
if ctx.is_empty() {
@@ -81,9 +82,7 @@ async fn main() -> vectorless::Result<()> {
8182
let query = "What is this about?";
8283
println!("\nQuerying: \"{query}\"");
8384

84-
let answer = engine
85-
.query(vectorless::QueryContext::new(query))
86-
.await?;
85+
let answer = engine.query(vectorless::QueryContext::new(query)).await?;
8786

8887
for item in &answer.items {
8988
println!(" [{} score={:.2}]", item.doc_id, item.score);
@@ -99,9 +98,7 @@ async fn main() -> vectorless::Result<()> {
9998
println!("\nMetrics:");
10099
println!(
101100
" LLM: {} calls, {} tokens, ${:.4}",
102-
report.llm.total_calls,
103-
report.llm.total_tokens,
104-
report.llm.estimated_cost_usd,
101+
report.llm.total_calls, report.llm.total_tokens, report.llm.estimated_cost_usd,
105102
);
106103
println!(
107104
" Retrieval: {} queries, avg score {:.2}",

rust/src/client/builder.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -442,8 +442,7 @@ impl EngineBuilder {
442442
};
443443

444444
// Indexer uses pool.index()
445-
let indexer =
446-
crate::client::indexer::IndexerClient::with_llm(pool.index().clone());
445+
let indexer = crate::client::indexer::IndexerClient::with_llm(pool.index().clone());
447446

448447
// Retriever uses pool.retrieval()
449448
let retrieval_config = config.retrieval.clone();
@@ -462,9 +461,7 @@ impl EngineBuilder {
462461
retriever = retriever.with_memo_store(memo_store);
463462
} else {
464463
// Create default memo store with model from config
465-
let memo_store = MemoStore::new()
466-
.with_model(retrieval_model)
467-
.with_version(1);
464+
let memo_store = MemoStore::new().with_model(retrieval_model).with_version(1);
468465
retriever = retriever.with_memo_store(memo_store);
469466
}
470467

rust/src/client/engine.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ use crate::retrieval::{PipelineRetriever, RetrieveEventReceiver};
5151
use crate::storage::{PersistedDocument, Workspace};
5252
use crate::{DocumentTree, Error};
5353

54-
use crate::events::EventEmitter;
5554
use super::index_context::{IndexContext, IndexSource};
5655
use super::indexer::IndexerClient;
5756
use super::query_context::{QueryContext, QueryScope};
5857
use super::retriever::RetrieverClient;
5958
use super::types::{DocumentInfo, FailedItem, IndexItem, IndexMode, IndexResult, QueryResult};
6059
use super::workspace::WorkspaceClient;
60+
use crate::events::EventEmitter;
6161

6262
/// The main Engine client.
6363
///
@@ -485,7 +485,7 @@ impl Engine {
485485

486486
/// Query a document with streaming results.
487487
///
488-
/// Returns a [`RetrieveEventReceiver`] that yields [`RetrieveEvent`](crate::retrieval::RetrieveEvent)s
488+
/// Returns a receiver that yields retrieval events
489489
/// as the retrieval pipeline progresses through each stage.
490490
///
491491
/// Only supports single-document scope (via `with_doc_ids` with one ID).

rust/src/client/indexer.rs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ use crate::index::{
3434
use crate::llm::LlmClient;
3535
use crate::storage::{DocumentMeta, PersistedDocument};
3636

37-
use crate::events::{EventEmitter, IndexEvent};
3837
use super::index_context::IndexSource;
3938
use super::types::{IndexOptions, IndexedDocument};
39+
use crate::events::{EventEmitter, IndexEvent};
4040

4141
/// Document indexing client.
4242
///
@@ -115,7 +115,11 @@ impl IndexerClient {
115115
let validation = crate::utils::validate_file(&path)?;
116116
if !validation.valid {
117117
return Err(Error::Parse(
118-
validation.errors.first().cloned().unwrap_or_else(|| "Invalid file".to_string()),
118+
validation
119+
.errors
120+
.first()
121+
.cloned()
122+
.unwrap_or_else(|| "Invalid file".to_string()),
119123
));
120124
}
121125
for warning in &validation.warnings {
@@ -162,7 +166,11 @@ impl IndexerClient {
162166
let validation = crate::utils::validate_content(content, format);
163167
if !validation.valid {
164168
return Err(Error::Parse(
165-
validation.errors.first().cloned().unwrap_or_else(|| "Invalid content".to_string()),
169+
validation
170+
.errors
171+
.first()
172+
.cloned()
173+
.unwrap_or_else(|| "Invalid content".to_string()),
166174
));
167175
}
168176

@@ -199,7 +207,11 @@ impl IndexerClient {
199207
let validation = crate::utils::validate_bytes(bytes, format);
200208
if !validation.valid {
201209
return Err(Error::Parse(
202-
validation.errors.first().cloned().unwrap_or_else(|| "Invalid bytes".to_string()),
210+
validation
211+
.errors
212+
.first()
213+
.cloned()
214+
.unwrap_or_else(|| "Invalid bytes".to_string()),
203215
));
204216
}
205217

rust/src/client/query_context.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,9 @@ mod tests {
171171
#[test]
172172
fn test_single_doc_scope() {
173173
let ctx = QueryContext::new("test").with_doc_ids(vec!["doc-1".to_string()]);
174-
assert!(matches!(ctx.scope, QueryScope::Documents(ref ids) if ids == &["doc-1".to_string()]));
174+
assert!(
175+
matches!(ctx.scope, QueryScope::Documents(ref ids) if ids == &["doc-1".to_string()])
176+
);
175177
}
176178

177179
#[test]

rust/src/client/retriever.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ use std::sync::Arc;
2121

2222
use tracing::info;
2323

24-
use crate::events::{EventEmitter, QueryEvent};
2524
use super::types::QueryResultItem;
2625
use crate::config::Config;
2726
use crate::document::{DocumentTree, ReasoningIndex};
2827
use crate::error::{Error, Result};
28+
use crate::events::{EventEmitter, QueryEvent};
2929
use crate::retrieval::stream::RetrieveEventReceiver;
3030
use crate::retrieval::{RetrieveOptions, RetrieveResponse};
3131

rust/src/client/workspace.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ use tracing::{debug, info};
3030
use crate::error::Result;
3131
use crate::storage::{PersistedDocument, Workspace};
3232

33-
use crate::events::{EventEmitter, WorkspaceEvent};
3433
use super::types::DocumentInfo;
34+
use crate::events::{EventEmitter, WorkspaceEvent};
3535

3636
/// Workspace management client.
3737
///
@@ -230,4 +230,4 @@ impl WorkspaceClient {
230230
pub async fn set_graph(&self, graph: &crate::graph::DocumentGraph) -> Result<()> {
231231
self.workspace.set_graph(graph).await
232232
}
233-
}
233+
}

0 commit comments

Comments
 (0)