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
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug report
about: Report a correctness issue or violated expectation
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. 'cargo ...'

**Expected behavior**
A clear and concise description of what you expected to happen.

**Actual behavior**
A clear and concise description of what actually happened. Add redacted logs/screenshots if helpful; remove secrets and personal data first.

**Env (please complete the following information):**
- d-lmdb version [e.g., a tag such as `v0.1.0` or a commit hash]
- d-engine version it was built against [e.g., commit hash from `Cargo.lock`]
- Does the bug still exist on `main`?
- Rust toolchain: [output of `cargo version`]
- OS: [e.g. macOS 14, Ubuntu 22.04]

**Additional context**
Add any other context about the problem here.
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/doc_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: Request for documentation
about: Suggest more doc to explain something.
title: ''
labels: documentation
assignees: ''

---

**What kind of doc do you ask for?**
- [ ] Design/architecture (why it's built this way)
- [ ] Guide (how to do X)
- [ ] Example

**Describe the information you want**
A clear and concise description of what you want.
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Feature Request
about: Propose a feature that fits d-lmdb's scope
title: "[Feature] "
labels: "enhancement"
assignees: ""
---

## ⚠️ Read First

d-lmdb targets **fault tolerance, not horizontal scaling** — LMDB stays
single-writer, single-node storage; d-engine only adds replication on top.
Features that turn this into a general-purpose distributed database
(sharding, multi-writer, secondary indexes, etc.) are out of scope — see
[CONTRIBUTING.md](../../CONTRIBUTING.md).

**Before submitting:**

- [ ] This fits the fault-tolerance-not-scaling scope above
- [ ] I've described a real use case, not a hypothetical one

---

## What problem does this solve?

(Be specific: what are you trying to do, and what stops you today?)

## Proposed solution

**Your solution:**

**Why is this the simplest approach?**

## Additional Context

- Similar features in other Raft/LMDB projects (if applicable)
- Your willingness to contribute code
69 changes: 69 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
## What Does This PR Do?

(1-2 sentence summary)

**Type:**

- [ ] Bug Fix (with test)
- [ ] Feature (issue #\_\_\_ discussed first)
- [ ] Documentation
- [ ] Test/Coverage
- [ ] Performance (with benchmark)

---

## Why Is This Needed?

**For features:** Link to the issue where this was discussed: #\_\_\_

**For bugs:** Describe the problem and how this fixes it

---

## Checklist

**Required:**

- [ ] `make check` (fmt + clippy + deny) passes
- [ ] `make test` passes
- [ ] Added tests for new code
- [ ] Commits squashed to 1-2 logical units

**If changing APIs:**

- [ ] Updated relevant docs
- [ ] Explained why complexity is justified

---

## Testing

**How tested:**

- Unit tests: (describe)
- Integration tests: (if applicable)
- Manual testing: (if applicable)

**For bug fixes:**

- [ ] Added test that fails without this fix

---

## Does This Fit d-lmdb's Scope?

- [ ] Stays within fault-tolerance, not scaling (no sharding/multi-writer/etc.)
- [ ] Keeps implementation simple
- [ ] Doesn't bloat the public API surface

---

## Reviewer Notes

(Optional: anything reviewers should focus on)

**Estimated review complexity:**

- [ ] Quick (< 100 lines)
- [ ] Medium (< 300 lines)
- [ ] Deep (> 300 lines)
26 changes: 20 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,11 @@ jobs:
run: cargo clippy --all-targets --all-features -- -D warnings

test:
name: Test
name: Test and Collect Coverage
runs-on: ubuntu-latest
needs: lint
permissions:
contents: read
env:
CI: 1
steps:
Expand All @@ -53,6 +55,7 @@ jobs:
uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.89.0"
components: llvm-tools-preview

- name: Cache using Swatinem/rust-cache
uses: Swatinem/rust-cache@v2
Expand All @@ -62,14 +65,25 @@ jobs:
sudo apt-get update
sudo apt-get install -y protobuf-compiler

- name: Install cargo-nextest
# Version pinned to match Makefile's install-tools target — an
- name: Install cargo tools
# Versions pinned to match Makefile's install-tools target — an
# unpinned `cargo install` grabs the latest release, which can
# require a newer rustc than the toolchain pinned above (1.89.0).
run: cargo install cargo-nextest --locked --version 0.9.114
run: |
cargo install cargo-nextest --locked --version 0.9.114
cargo install cargo-llvm-cov --locked --version 0.8.7

- name: Run tests
run: cargo nextest run --all-features --no-fail-fast
- name: Run tests with nextest and generate coverage
run: cargo llvm-cov nextest --all-features --lcov --output-path lcov.info --no-fail-fast --ignore-filename-regex "src/error.rs"

- name: Run doc tests
run: cargo test --doc --all-features

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info
flags: unittests
name: codecov-d-lmdb
Comment thread
JoshuaChi marked this conversation as resolved.
verbose: true
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# d-lmdb

> **Status: Experimental — built to demonstrate d-engine's replication capabilities**
![status](https://img.shields.io/badge/status-experimental-orange)
[![CI](https://github.com/deventlab/d-lmdb/actions/workflows/ci.yml/badge.svg)](https://github.com/deventlab/d-lmdb/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/deventlab/d-lmdb/graph/badge.svg)](https://codecov.io/gh/deventlab/d-lmdb)
![Static Badge](https://img.shields.io/badge/license-MIT%20%7C%20Apache--2.0-blue)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/deventlab/d-lmdb)

> Built to demonstrate d-engine's replication capabilities.

## What This Is

Expand Down
Loading