Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ jobs:
- name: Install tarpaulin
run: |
if ! command -v cargo-tarpaulin &> /dev/null; then
cargo install cargo-tarpaulin
cargo install cargo-tarpaulin --version 0.33.0
fi

- name: Generate coverage
Expand Down
20 changes: 17 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,20 @@ jobs:

# Update CHANGELOG.md only
sed -i "s/## \[Unreleased\]/## [Unreleased]\n\n## [$VERSION] - $DATE/" CHANGELOG.md

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Update Cargo.toml and Cargo.lock
run: |
VERSION="${{ needs.validate-version.outputs.version_without_v }}"

# Update Cargo.toml
sed -i "s/^version = .*/version = \"$VERSION\"/" Cargo.toml

# Update Cargo.lock by running cargo check
# This ensures the lock file is in sync with the new version
cargo check

- name: Configure Git
run: |
Expand All @@ -273,13 +287,13 @@ jobs:

- name: Commit and push changes
run: |
git add CHANGELOG.md
git add CHANGELOG.md Cargo.toml Cargo.lock
if git diff --staged --quiet; then
echo "No changes to commit"
else
git commit -m "chore: update CHANGELOG.md for ${{ needs.validate-version.outputs.version }} release
git commit -m "chore: update version to ${{ needs.validate-version.outputs.version }}

Updates CHANGELOG.md with release date for version ${{ needs.validate-version.outputs.version }}.
Updates CHANGELOG.md and bumps version in Cargo.toml/lock for release ${{ needs.validate-version.outputs.version }}.
[skip ci]"
git push
fi
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,9 @@ atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml

# Copilot agent
.idea/copilot.*

# SonarLint plugin
.idea/sonarlint/
.idea/sonarlint.xml # see https://community.sonarsource.com/t/is-the-file-idea-idea-idea-sonarlint-xml-intended-to-be-under-source-control/121119
Expand Down Expand Up @@ -185,9 +188,12 @@ http-client.private.env.json
# Agentic LLM Coders
.claude
.crush
.gemini
tasks/
CLAUDE.md
CRUSH.md
GEMINI.md
AGENTS.md

# Project Specific
config.yaml
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "meilibridge"
version = "0.1.5"
version = "0.1.6"
edition = "2021"
rust-version = "1.82"
authors = ["Omkar Todkar"]
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ validate:
# Show current sync status
status:
@echo "Checking MeiliBridge status..."
@curl -s http://localhost:7701/api/status || echo "API server not running"
@curl -s http://localhost:7701/status || echo "API server not running"

# Cross-platform builds
build-linux-arm64:
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,4 @@ HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \

# Use the entrypoint script
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["--config", "/etc/meilibridge/config.yaml"]
CMD []
4 changes: 1 addition & 3 deletions src/config/loader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,7 @@ impl ConfigLoader {
}

// Validate sync tasks
if config.sync_tasks.is_empty() {
errors.push("At least one sync task must be configured".to_string());
}
// We allow starting with no sync tasks (can be added via API)

for (i, task) in config.sync_tasks.iter().enumerate() {
if task.table.is_empty() {
Expand Down
1 change: 1 addition & 0 deletions src/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ pub struct Config {
pub meilisearch: MeilisearchConfig,

/// Sync task definitions
#[serde(default)]
pub sync_tasks: Vec<SyncTaskConfig>,

/// Redis configuration for state management
Expand Down
2 changes: 1 addition & 1 deletion src/source/postgres/replication/test_decoder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ fn tokenize_parts(input: &str) -> Vec<String> {
}
']' => {
if bracket_depth > 0 {
bracket_depth -= 1;
bracket_depth = bracket_depth.saturating_sub(1);
}
current.push(ch);
}
Expand Down
6 changes: 5 additions & 1 deletion tarpaulin.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,8 @@ jobs = 4
skip-clean = false

# Verbose output
verbose = true
verbose = true

[coverage]
# Fail if coverage is below 20%
fail-under = 20.0
2 changes: 1 addition & 1 deletion tests/unit/pipeline/filter_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ mod filter_tests {
#[test]
fn test_multiple_filter_criteria() {
// Create events with different combinations
let events = vec![
let events = [
create_test_event("users", EventType::Create),
create_test_event("users", EventType::Update),
create_test_event("posts", EventType::Create),
Expand Down
Loading