Skip to content

Commit 8f75f8b

Browse files
Bump version to 0.5.0 (#92)
Marks the first release with full spec conformance testing (78/79 PASS). Adds SECURITY.md declaring only 0.5.x as supported.
1 parent c0e8442 commit 8f75f8b

5 files changed

Lines changed: 53 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.5.0] - 2026-02-16
11+
1012
### Changed
1113

1214
#### Spec Serialization Compliance
@@ -17,7 +19,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1719
- **Breaking:** `Block::block_type()` returns `Cow<'_, str>` instead of `&'static str`; extension blocks return `"namespace:blockType"` instead of `"extension"`
1820
- `FigCaption` block type serializes as `"figcaption"` (lowercase) instead of `"figCaption"`
1921
- All old formats are accepted on deserialization for backward compatibility
20-
- Added conformance test suite (`tests/conformance.rs`) to prevent future spec drift
22+
23+
#### CLI Restructuring
24+
- Split `cdx-cli/src/main.rs` into `cli.rs` (argument definitions), `dispatcher.rs` (command dispatch), and `main.rs` (entry point)
25+
26+
### Added
27+
28+
#### Spec Conformance Testing
29+
- Conformance test suite (`tests/conformance.rs`) covering all 78 testable spec requirements
30+
- Conformance matrix (`docs/conformance-matrix.md`) mapping spec sections to tests — 78/79 PASS, 0 TODO
31+
- Hash boundary tests verifying document ID includes/excludes correct fields
32+
- Asset embedding tests: hash verification, missing file detection, hash mismatch errors
33+
- State machine enforcement tests for review/frozen/published requirements
34+
- Provenance/lineage validation tests
35+
- Property-based tests using proptest for hash determinism, metadata inclusion, block round-trips
36+
- Fuzz targets for Block, Mark, and Content deserialization (`fuzz/fuzz_targets/`)
37+
38+
#### Security Policy
39+
- Added `SECURITY.md` with supported versions and vulnerability reporting process
2140

2241
## [0.4.0] - 2026-02-16
2342

@@ -257,7 +276,8 @@ Initial release implementing Codex Document Format Specification v0.1.
257276
- `sign_document` - Sign a document with ES256
258277
- `extract_content` - Extract text content from blocks
259278

260-
[Unreleased]: https://github.com/Entrolution/cdx-core/compare/v0.4.0...HEAD
279+
[Unreleased]: https://github.com/Entrolution/cdx-core/compare/v0.5.0...HEAD
280+
[0.5.0]: https://github.com/Entrolution/cdx-core/compare/v0.4.0...v0.5.0
261281
[0.4.0]: https://github.com/Entrolution/cdx-core/compare/v0.3.0...v0.4.0
262282
[0.3.0]: https://github.com/Entrolution/cdx-core/compare/v0.2.0...v0.3.0
263283
[0.2.0]: https://github.com/Entrolution/cdx-core/compare/v0.1.0...v0.2.0

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ thiserror = "2.0"
1717
chrono = { version = "0.4", features = ["serde", "now"], default-features = false }
1818

1919
# Internal crates
20-
cdx-core = { path = "cdx-core", version = "0.4.0" }
20+
cdx-core = { path = "cdx-core", version = "0.5.0" }

SECURITY.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
| Version | Supported |
6+
|---------|-----------|
7+
| 0.5.x | Yes |
8+
| < 0.5 | No |
9+
10+
Only the latest minor release receives security updates. Earlier versions are not supported.
11+
12+
## Reporting a Vulnerability
13+
14+
If you discover a security vulnerability, please report it responsibly:
15+
16+
1. **Do not** open a public GitHub issue.
17+
2. Email **security@entrolution.com** with details of the vulnerability.
18+
3. Include steps to reproduce, if possible.
19+
20+
We aim to acknowledge reports within 48 hours and provide a fix or mitigation within 7 days for critical issues.
21+
22+
## Security Practices
23+
24+
- All cryptographic operations use well-audited Rust crates (`sha2`, `p256`, `aes-gcm`, `ed25519-dalek`).
25+
- Archive extraction is bounded to prevent decompression bombs (256 MiB limit).
26+
- Path traversal attacks are rejected at the archive reader/writer level.
27+
- Document integrity is verified via SHA-256 content hashes and JCS-canonicalized document IDs.
28+
- Spec conformance is validated by 1,000+ tests covering all 78 testable requirements.

cdx-cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "cdx-cli"
3-
version = "0.4.0"
3+
version = "0.5.0"
44
edition.workspace = true
55
rust-version.workspace = true
66
license.workspace = true

cdx-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "cdx-core"
3-
version = "0.4.0"
3+
version = "0.5.0"
44
edition.workspace = true
55
rust-version.workspace = true
66
license.workspace = true

0 commit comments

Comments
 (0)