From 3fbf1bdb8eabfdb50fa4dfeb2560076af6a9fe07 Mon Sep 17 00:00:00 2001 From: "d.o." <6849456+d-oit@users.noreply.github.com> Date: Tue, 21 Oct 2025 16:07:32 +0000 Subject: [PATCH] chore: prepare for v0.1.9 release - update versions, CHANGELOG, and remove deprecated CI workflow --- .github/actions-security.md | 4 - .github/workflows/ci.yml | 369 ------------------------------ .github/workflows/enhanced-ci.yml | 112 +++++---- CHANGELOG.md | 8 + Cargo.lock | 8 +- README.md | 4 +- crates/cli/Cargo.toml | 2 +- crates/core/Cargo.toml | 2 +- crates/output/Cargo.toml | 2 +- crates/storage/Cargo.toml | 2 +- 10 files changed, 72 insertions(+), 441 deletions(-) delete mode 100644 .github/workflows/ci.yml diff --git a/.github/actions-security.md b/.github/actions-security.md index efd2944..da9f8ca 100644 --- a/.github/actions-security.md +++ b/.github/actions-security.md @@ -35,10 +35,6 @@ This document outlines the security enhancements implemented for GitHub Actions ## Workflow-Specific Security Configurations -### CI Workflow (`ci.yml`) -- **Permissions**: `contents: read`, `pull-requests: write`, `checks: write`, `packages: read` -- **Security Features**: Code review agent, clippy security checks - ### Release Workflow (`release.yml`) - **Permissions**: `contents: write`, `packages: read` - **Security Features**: Immutable releases, multi-platform builds diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 8feeabf..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,369 +0,0 @@ -name: CI - -# Least privilege permissions -permissions: - contents: read - pull-requests: write - checks: write - packages: read - -on: - push: - branches: [ main, develop ] - pull_request: - branches: [ main ] - workflow_dispatch: - -concurrency: - group: ci-${{ github.ref }} - cancel-in-progress: true - -env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: 1 - SCCACHE_GHA_ENABLED: "false" - # RUSTC_WRAPPER: "sccache" # Disabled due to service unavailability - -jobs: - # Pre-check job to determine what changed for incremental builds - changes: - runs-on: ubuntu-latest - outputs: - cli: ${{ steps.changes.outputs.cli }} - core: ${{ steps.changes.outputs.core }} - output: ${{ steps.changes.outputs.output }} - storage: ${{ steps.changes.outputs.storage }} - ci: ${{ steps.changes.outputs.ci }} - docs: ${{ steps.changes.outputs.docs }} - scripts: ${{ steps.changes.outputs.scripts }} - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - with: - fetch-depth: 0 - - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 - id: changes - with: - filters: | - cli: - - 'crates/cli/**' - core: - - 'crates/core/**' - output: - - 'crates/output/**' - storage: - - 'crates/storage/**' - ci: - - '.github/workflows/**' - - 'Cargo.toml' - - 'Cargo.lock' - - 'deny.toml' - docs: - - 'docs/**' - - 'README.md' - scripts: - - 'scripts/**' - - # Fast quality checks with sccache - quality-checks: - name: Quality Checks - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - - - name: Install sccache - uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd - - - name: Install Rust - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 - with: - components: rustfmt, clippy - - - name: Cache cargo registry - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-cargo-registry- - - - name: Check formatting - run: cargo fmt --all -- --check - - - name: Run clippy - run: cargo clippy --all-targets --all-features -- -D warnings - - - name: Check workspace - run: cargo check --workspace - - # Parallel testing with cargo-nextest - test: - name: Test (${{ matrix.os }}, ${{ matrix.rust }}) - runs-on: ${{ matrix.os }} - needs: changes - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - rust: [stable] - include: - - os: ubuntu-latest - rust: beta - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - - - name: Install sccache - uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd - - - name: Install Rust - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 - with: - toolchain: ${{ matrix.rust }} - - - name: Install cargo-nextest - uses: taiki-e/install-action@fa0639a7132933c4081764bded317e92c04e5c07 - - - name: Cache cargo registry - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-cargo-registry- - - - name: Cache target - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 - with: - path: target - key: ${{ runner.os }}-${{ matrix.rust }}-target-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-${{ matrix.rust }}-target- - - - name: Build - run: cargo build --workspace - - - name: Run tests with nextest - run: cargo nextest run --workspace --all-features - - - name: Run doc tests - run: cargo test --doc --workspace - - # Incremental testing per crate - test-cli: - name: Test CLI Crate - runs-on: ubuntu-latest - needs: [changes, quality-checks] - if: needs.changes.outputs.cli == 'true' || needs.changes.outputs.ci == 'true' - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - - - name: Install sccache - uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd - - - name: Install Rust - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 - - - name: Install cargo-nextest - uses: taiki-e/install-action@fa0639a7132933c4081764bded317e92c04e5c07 - - - name: Cache target - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 - with: - path: target - key: ubuntu-latest-cli-target-${{ hashFiles('**/Cargo.lock') }} - - - name: Test CLI crate - run: cargo nextest run -p code_guardian_cli --all-features - - test-core: - name: Test Core Crate - runs-on: ubuntu-latest - needs: [changes, quality-checks] - if: needs.changes.outputs.core == 'true' || needs.changes.outputs.ci == 'true' - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - - - name: Install sccache - uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd - - - name: Install Rust - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 - - - name: Install cargo-nextest - uses: taiki-e/install-action@fa0639a7132933c4081764bded317e92c04e5c07 - - - name: Cache target - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 - with: - path: target - key: ubuntu-latest-core-target-${{ hashFiles('**/Cargo.lock') }} - - - name: Test Core crate - run: cargo nextest run -p code_guardian_core --all-features - - test-output: - name: Test Output Crate - runs-on: ubuntu-latest - needs: [changes, quality-checks] - if: needs.changes.outputs.output == 'true' || needs.changes.outputs.ci == 'true' - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - - - name: Install sccache - uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd - - - name: Install Rust - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 - - - name: Install cargo-nextest - uses: taiki-e/install-action@fa0639a7132933c4081764bded317e92c04e5c07 - - - name: Cache target - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 - with: - path: target - key: ubuntu-latest-output-target-${{ hashFiles('**/Cargo.lock') }} - - - name: Test Output crate - run: cargo nextest run -p code_guardian_output --all-features - - test-storage: - name: Test Storage Crate - runs-on: ubuntu-latest - needs: [changes, quality-checks] - if: needs.changes.outputs.storage == 'true' || needs.changes.outputs.ci == 'true' - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - - - name: Install sccache - uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd - - - name: Install Rust - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 - - - name: Install cargo-nextest - uses: taiki-e/install-action@fa0639a7132933c4081764bded317e92c04e5c07 - - - name: Cache target - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 - with: - path: target - key: ubuntu-latest-storage-target-${{ hashFiles('**/Cargo.lock') }} - - - name: Test Storage crate - run: cargo nextest run -p code_guardian_storage --all-features - - # Enhanced coverage reporting - coverage: - name: Coverage Report - runs-on: ubuntu-latest - needs: [test-cli, test-core, test-output, test-storage] - if: always() && (needs.test-cli.result == 'success' || needs.test-core.result == 'success' || needs.test-output.result == 'success' || needs.test-storage.result == 'success') - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - - - name: Install sccache - uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd - - - name: Install Rust - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 - with: - components: llvm-tools-preview - - - name: Install cargo-llvm-cov - uses: taiki-e/install-action@cargo-llvm-cov - - - name: Cache target - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 - with: - path: target - key: ubuntu-latest-coverage-target-${{ hashFiles('**/Cargo.lock') }} - - - name: Generate code coverage - run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info - - - name: Generate HTML coverage report - run: cargo llvm-cov --all-features --workspace --html --output-dir coverage/html - - - name: Upload coverage reports - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 - with: - name: coverage-reports - path: | - lcov.info - coverage/ - - - name: Coverage Summary - run: | - echo "## Coverage Summary" >> $GITHUB_STEP_SUMMARY - cargo llvm-cov --all-features --workspace --summary-only | tee -a $GITHUB_STEP_SUMMARY - - # Code review agent for PRs - code-review: - name: Code Review - runs-on: ubuntu-latest - if: github.event_name == 'pull_request' - permissions: - pull-requests: write - contents: read - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - - - name: Install sccache - uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd - - - name: Install Rust - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 - with: - components: clippy - - - name: Run clippy - run: cargo clippy --all-targets --all-features -- -D warnings - - - name: Comment on PR if issues found - if: failure() - uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b - with: - script: | - github.rest.issues.createComment({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body: '🚨 **Code Review Issues Detected**\n\n' + - 'Clippy found warnings or errors that need to be addressed:\n\n' + - '```bash\ncargo clippy --all-targets --all-features -- -D warnings\n```\n\n' + - 'Please fix these issues before merging. You can run:\n' + - '```bash\ncargo clippy --fix --allow-dirty\n```' - }) - - # Final status check - ci-success: - name: CI Success - runs-on: ubuntu-latest - needs: [quality-checks, test, test-cli, test-core, test-output, test-storage, coverage] - if: always() - steps: - - name: Check all jobs - run: | - if [[ "${{ needs.quality-checks.result }}" != "success" ]]; then - echo "❌ Quality checks failed" - exit 1 - fi - if [[ "${{ needs.test.result }}" != "success" ]]; then - echo "❌ Cross-platform tests failed" - exit 1 - fi - # Allow individual crate tests to be skipped if no changes - failed_tests=0 - for test_result in "${{ needs.test-cli.result }}" "${{ needs.test-core.result }}" "${{ needs.test-output.result }}" "${{ needs.test-storage.result }}"; do - if [[ "$test_result" == "failure" ]]; then - failed_tests=$((failed_tests + 1)) - fi - done - if [[ $failed_tests -gt 0 ]]; then - echo "❌ $failed_tests crate test(s) failed" - exit 1 - fi - echo "✅ All CI checks passed!" \ No newline at end of file diff --git a/.github/workflows/enhanced-ci.yml b/.github/workflows/enhanced-ci.yml index 08e8cf1..4fbe93f 100644 --- a/.github/workflows/enhanced-ci.yml +++ b/.github/workflows/enhanced-ci.yml @@ -1,5 +1,5 @@ # Enhanced CI/CD Pipeline -# Combines features from ci.yml, optimized-ci.yml, security.yml, performance.yml, and auto-fix.yml +# Combines features from optimized-ci.yml, security.yml, performance.yml, and auto-fix.yml # Features: concurrency controls, least privilege, reusable workflows, optimized caching, security scanning, performance benchmarking name: Enhanced CI/CD @@ -51,50 +51,47 @@ jobs: docs: ${{ steps.changes.outputs.docs }} scripts: ${{ steps.changes.outputs.scripts }} has_changes: ${{ steps.changes.outputs.has_changes }} - steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 - with: - fetch-depth: 0 - - - name: Install sccache - uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd - - - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 - id: changes - with: - filters: | - cli: - - 'crates/cli/**' - core: - - 'crates/core/**' - output: - - 'crates/output/**' - storage: - - 'crates/storage/**' - ci: - - '.github/workflows/**' - - 'Cargo.toml' - - 'Cargo.lock' - - 'deny.toml' + steps: + - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 + with: + fetch-depth: 0 + - name: Install sccache + uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 + id: changes + with: + filters: | + cli: + - 'crates/cli/**' + core: + - 'crates/core/**' + output: + - 'crates/output/**' + storage: + - 'crates/storage/**' + ci: + - '.github/workflows/**' + - 'Cargo.toml' + - 'Cargo.lock' + - 'deny.toml' docs: - 'docs/**' - 'README.md' scripts: - 'scripts/**' - token: ${{ github.token }} - - - name: Determine if changes exist - id: has_changes - run: | - if [[ "${{ steps.changes.outputs.cli }}" == "true" || \ - "${{ steps.changes.outputs.core }}" == "true" || \ - "${{ steps.changes.outputs.output }}" == "true" || \ - "${{ steps.changes.outputs.storage }}" == "true" || \ - "${{ steps.changes.outputs.ci }}" == "true" ]]; then - echo "has_changes=true" >> $GITHUB_OUTPUT - else - echo "has_changes=false" >> $GITHUB_OUTPUT - fi + token: ${{ github.token }} + - name: Determine if changes exist + id: has_changes + run: | + if [[ "${{ steps.changes.outputs.cli }}" == "true" || \ + "${{ steps.changes.outputs.core }}" == "true" || \ + "${{ steps.changes.outputs.output }}" == "true" || \ + "${{ steps.changes.outputs.storage }}" == "true" || \ + "${{ steps.changes.outputs.ci }}" == "true" ]]; then + echo "has_changes=true" >> $GITHUB_OUTPUT + else + echo "has_changes=false" >> $GITHUB_OUTPUT + fi # Quality gate with auto-fix capabilities quality-gate: @@ -118,12 +115,12 @@ jobs: uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 with: path: | - ~/.cargo/registry - ~/.cargo/git - target + ~/.cargo/registry + ~/.cargo/git + target key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} restore-keys: | - ${{ runner.os }}-cargo-registry- + ${{ runner.os }}-cargo-registry- - name: Check and auto-fix formatting id: format-check @@ -302,18 +299,17 @@ jobs: - name: Cache cargo registry uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - + path: | + ~/.cargo/registry + ~/.cargo/git + key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache target - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 with: path: target key: ${{ runner.os }}-${{ matrix.rust }}-target-${{ hashFiles('**/Cargo.lock') }} restore-keys: | - ${{ runner.os }}-${{ matrix.rust }}-target- + ${{ runner.os }}-${{ matrix.rust }}-target- - name: Run tests with nextest run: cargo nextest run --workspace --all-features @@ -469,6 +465,7 @@ jobs: run: cargo llvm-cov --all-features --workspace --html --output-dir coverage/html - name: Check coverage threshold + id: coverage_check run: | COVERAGE=$(cargo llvm-cov --all-features --workspace --summary-only | grep -oE '[0-9]+\.[0-9]+%' | head -1 | sed 's/%//') THRESHOLD=82 @@ -477,15 +474,14 @@ jobs: echo "Required threshold: ${THRESHOLD}%" if (( $(echo "$COVERAGE >= $THRESHOLD" | bc -l) )); then - echo "✅ Coverage threshold met" - echo "coverage_met=true" >> $GITHUB_OUTPUT + echo "✅ Coverage threshold met" + echo "coverage_met=true" >> $GITHUB_OUTPUT else - echo "❌ Coverage below threshold" - echo "Gap: $(echo "$THRESHOLD - $COVERAGE" | bc -l)%" - echo "coverage_met=false" >> $GITHUB_OUTPUT - exit 1 + echo "❌ Coverage below threshold" + echo "Gap: $(echo "$THRESHOLD - $COVERAGE" | bc -l)%" + echo "coverage_met=false" >> $GITHUB_OUTPUT + exit 1 fi - id: coverage_check - name: Upload coverage reports uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a841c3..3f1f33e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.1.9] - 2025-10-21 +### ⚙️ Miscellaneous Tasks + +- Update release-please manifest to v0.1.9 + +### 📚 Documentation + +- Update CHANGELOG.md to remove v0.2.0 entry and correct v0.1.9 summary + ### 🚀 Features - Add production-ready CI/CD, documentation, testing, and monitoring features diff --git a/Cargo.lock b/Cargo.lock index 47c18c9..b129c07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -400,7 +400,7 @@ checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "code-guardian-core" -version = "0.2.0" +version = "0.1.9" dependencies = [ "aho-corasick", "anyhow", @@ -438,7 +438,7 @@ dependencies = [ [[package]] name = "code-guardian-output" -version = "0.2.0" +version = "0.1.9" dependencies = [ "anyhow", "chrono", @@ -454,7 +454,7 @@ dependencies = [ [[package]] name = "code-guardian-storage" -version = "0.2.0" +version = "0.1.9" dependencies = [ "anyhow", "chrono", @@ -470,7 +470,7 @@ dependencies = [ [[package]] name = "code_guardian_cli" -version = "0.2.0" +version = "0.1.9" dependencies = [ "anyhow", "assert_cmd", diff --git a/README.md b/README.md index 0d884fe..b57d22d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Code-Guardian -[![CI](https://github.com/d-oit/code-guardian/actions/workflows/ci.yml/badge.svg)](https://github.com/d-oit/code-guardian/actions/workflows/ci.yml) +[![CI](https://github.com/d-oit/code-guardian/actions/workflows/enhanced-ci.yml/badge.svg)](https://github.com/d-oit/code-guardian/actions/workflows/enhanced-ci.yml) [![Crates.io](https://img.shields.io/crates/v/code-guardian-cli.svg)](https://crates.io/crates/code-guardian-cli) [![License](https://img.shields.io/crates/l/code-guardian-cli.svg)](https://github.com/d-oit/code-guardian/blob/main/LICENSE) @@ -174,7 +174,7 @@ code-guardian compare "$PREVIOUS_ID" "$LATEST_ID" --format markdown The project includes an enhanced CI/CD pipeline that combines the best features from multiple workflows: -- **Enhanced CI/CD Workflow** (`enhanced-ci.yml`): Combines features from `ci.yml`, `optimized-ci.yml`, `security.yml`, `performance.yml`, and `auto-fix.yml` +- **Enhanced CI/CD Workflow** (`enhanced-ci.yml`): Combines features from `optimized-ci.yml`, `security.yml`, `performance.yml`, and `auto-fix.yml` - **Concurrency Controls**: Prevents overlapping runs - **Least Privilege Permissions**: Enhanced security - **Auto-fix Capabilities**: Automatically fixes formatting and clippy issues diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index cffbf0b..c6d4730 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "code_guardian_cli" -version = "0.2.0" +version = "0.1.9" edition = "2021" license = "MIT OR Apache-2.0" diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index 1be7484..c2c6615 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "code-guardian-core" -version = "0.2.0" +version = "0.1.9" edition = "2021" license = "MIT OR Apache-2.0" diff --git a/crates/output/Cargo.toml b/crates/output/Cargo.toml index 6a4b184..2e7ad4f 100644 --- a/crates/output/Cargo.toml +++ b/crates/output/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "code-guardian-output" -version = "0.2.0" +version = "0.1.9" edition = "2021" license = "MIT OR Apache-2.0" diff --git a/crates/storage/Cargo.toml b/crates/storage/Cargo.toml index 6e5a7b8..dde1d8f 100644 --- a/crates/storage/Cargo.toml +++ b/crates/storage/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "code-guardian-storage" -version = "0.2.0" +version = "0.1.9" edition = "2021" license = "MIT OR Apache-2.0"