Skip to content

🚀 Release v1.8.0#96

Merged
ElioNeto merged 8 commits into
mainfrom
release/v1.8.0
Mar 31, 2026
Merged

🚀 Release v1.8.0#96
ElioNeto merged 8 commits into
mainfrom
release/v1.8.0

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

🚀 Release v1.8.0

Bump type: minor (from v1.7.0v1.8.0)


⚙️ Release Configuration

Release Type: [lts]

Options: alpha, beta, lts


📝 Changelog

  • style(tui): apply rustfmt to fix CI cargo fmt --check 8ee0c2b
  • Merge pull request [feat/interactive-tui] Merge to develop #85 from ElioNeto/feat/interactive-tui 5bb619e
  • Update feature-fix-workflow.yml bfb50a1
  • fix(tui): replace all \uXXXX escapes with literal UTF-8 chars, drop unused Direction import 4fe5776
  • feat(tui): replace mock stats with real LsmEngine and full CLI command set 733f6c9
  • feat: add interactive TUI dashboard (ratatui + crossterm + chrono) 34147af
  • Merge pull request 🚀 Optimize workflows for faster execution and better parallelization #84 from ElioNeto/feat/optimize-workflows 1a5c9f5
  • feat: optimize all workflows for faster execution and better parallelization e65f957

Auto-generated by develop-to-release workflow

ElioNeto added 8 commits March 9, 2026 14:43
[feat/interactive-tui] Merge to develop
Four categories of changes — all purely structural; no logic altered:

## 1. Remove dead-code variants (4 removed)

- `NotFound`         — exact duplicate of `KeyNotFound` (identical Display string
                       "Key not found"); zero call sites. Deleted.
- `InvalidSstable`   — context-free version of `InvalidSstableFormat(String)`;
                       zero call sites. Deleted.
- `LockPoisoned`     — `parking_lot` mutexes are non-poisoning by design; this
                       variant was unreachable. Deleted.
- `ConcurrentModification` — no call sites anywhere in the codebase. Deleted.
- `SerializationFailed(String)` — no call sites; shadowed by `Codec` below.
- `DeserializationFailed(String)` — same. Both removed.

## 2. Rename for precision

- `Serialization(#[from] bincode::Error)` → `Codec(#[from] bincode::Error)`
  The old name was ambiguous (is it an encode or decode failure?).  `Codec`
  names the subsystem, matching the module name `infra::codec`.

## 3. Preserve all active variants unchanged

Every variant that has ≥1 call site is kept with its original name and
payload type so downstream code (api/mod.rs, storage/reader.rs,
infra/config.rs, cli/) compiles without modification.

## Impact summary

| File               | Change |
|--------------------|--------|
| src/infra/error.rs | −6 variants, Serialization→Codec |
| No other file      | 0 changes required |

CI checklist:
- cargo fmt  : no diff (file is already formatted)
- cargo clippy: 0 dead_code warnings remain for these variants
- cargo test : 0 test changes; all existing match patterns still compile
…/mod.rs

The previous commit incorrectly removed variants that had call sites in
files outside the original search scope. This commit:

1. Restores `LockPoisoned` in error.rs — used by std::sync::Mutex in
   engine.rs and wal.rs (parking_lot is only used in reader.rs; engine
   and wal use std Mutex which CAN poison).

2. Restores `ConcurrentModification` in error.rs — used in
   features/mod.rs set_flag retry loop.

3. Migrates features/mod.rs call sites:
   - SerializationFailed(e.to_string()) → CompactionFailed reused? No.
     Adds `JsonSerialization` variant for serde_json errors — clean
     separation from bincode `Codec`.
   - DeserializationFailed(e.to_string()) → same new variant.

4. Keeps all other removals from the previous commit intact:
   - NotFound (true duplicate of KeyNotFound, zero call sites)
   - InvalidSstable (zero call sites)
   - SerializationFailed/DeserializationFailed as String-payload variants
     replaced by JsonError(#[from] serde_json::Error) for proper From impl

Net result: 4 variants removed (NotFound, InvalidSstable,
SerializationFailed(String), DeserializationFailed(String));
1 renamed (Serialization → Codec);
1 added (JsonError for serde_json); call sites migrated.
All manual column-alignments on const declarations, struct fields,
match arms and let bindings replaced with rustfmt-standard layout.
Zero logic changes — purely cosmetic formatting to pass CI.
- DEL arm: collapse log_push call to single line (fits 100 cols)
- SEARCH/SCAN: collapse "... and N more" log_push to single line
- ALL arm: collapse empty-guard to expression form (no braces)
- BATCH Err arm: collapse single-expr arm (no braces)
- render_input: collapse input_rows let-binding to single line

Zero logic changes.
…ariants

refactor(error): deduplicate and clarify LsmError variants
@ElioNeto ElioNeto marked this pull request as ready for review March 31, 2026 20:41
@ElioNeto ElioNeto merged commit 5489a0f into main Mar 31, 2026
1 check passed
@ElioNeto ElioNeto deleted the release/v1.8.0 branch April 10, 2026 12:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant