mirror of
https://github.com/freemkv/libfreemkv.git
synced 2026-10-07 18:13:10 +00:00
Every input decrypts through one stage that detects its content, with strict stale-CPI handling and partial units only at EOF. Damage no longer ends a rip where usable content remains (E7031, UDF FID, MPLS/CLPI truncation, whole-disc E7032). M2TS output declares tracks in an HDMV PMT and paces PCR; network:// allows LAN and loopback and is_blocked_ip is public; parity goldens pin today's outputs.
39 lines
990 B
Markdown
39 lines
990 B
Markdown
# Contributing to libfreemkv
|
|
|
|
Thanks for your interest in contributing!
|
|
|
|
## Ways to help
|
|
|
|
- **Report a bug** — open an issue with steps to reproduce
|
|
- **Submit your drive profile** — run `freemkv info --share` to help expand hardware support
|
|
- **Fix a bug** — fork, branch, PR
|
|
- **Add a feature** — open an issue first to discuss
|
|
|
|
## Development
|
|
|
|
```bash
|
|
cargo build
|
|
cargo test
|
|
```
|
|
|
|
### Parity goldens
|
|
|
|
`parity_*` tests pin what every input-to-output path produces today (output hashes, loss
|
|
counters, refusal codes) in `tests/goldens/*.golden`. A change that moves one must say why.
|
|
Re-bless on purpose, then review the diff:
|
|
|
|
```bash
|
|
FREEMKV_BLESS_GOLDENS=1 cargo test --lib parity_
|
|
git diff tests/goldens
|
|
```
|
|
|
|
## Code style
|
|
|
|
- Follow Rust conventions (`cargo fmt`, `cargo clippy`)
|
|
- Field names follow SPC-4 and MMC-6 SCSI standards
|
|
- Error codes are structured — no user-facing text in the library
|
|
|
|
## License
|
|
|
|
By contributing, you agree your code will be licensed under MIT.
|