Skip to content

Commit cf3a147

Browse files
authored
HEDL v2.0.0
## Summary - Complete v2.0 specification: required `%NULL:~` and `%QUOTE:"` headers, strict 1-space indent, ditto removal - 10 workspace crates updated: parser, c14n, lint, LSP, CLI, FFI, WASM, MCP, streaming, benchmarks - Format converters (JSON, YAML, XML, CSV, TOON) with list/matrix support - Fuzz testing infrastructure across 6 crates - 9,965 tests passing, zero warnings - Fixed wasm-pack `--out-dir` path in Pages workflow - Added .gitignore entries for fuzz corpus/artifacts and wasm-pack output - Removed one-time migration scripts from release ## Breaking Changes - `%V:2.0`, `%NULL:~`, `%QUOTE:"` headers now required - Ditto operator removed entirely - Strict 1-space indentation enforced - No space after `|` in matrix rows - `%ENUM`, `%DICT`, `%CONSTRAINT` directives removed
1 parent eb65950 commit cf3a147

904 files changed

Lines changed: 254010 additions & 72960 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cargo/config.toml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# =============================================================================
2+
# HEDL - Hierarchical Entity Data Language - .cargo/config.toml
3+
# Open Source (Apache 2.0) Cargo Configuration
4+
#
5+
# Copyright (c) Dweve B.V.
6+
# IP holder: Dweve IP B.V.
7+
# =============================================================================
8+
9+
# WASM target configuration
10+
# Disable reference-types feature to ensure compatibility with wasm-bindgen.
11+
# Rust 1.82+ enables reference-types by default for wasm32, but wasm-bindgen
12+
# requires the __wbindgen_externref_table_dealloc function which isn't
13+
# generated correctly with this feature enabled.
14+
[target.wasm32-unknown-unknown]
15+
rustflags = ["-C", "target-feature=-reference-types"]

.cargo/tarpaulin.toml

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# =============================================================================
2+
# HEDL - Tarpaulin Coverage Configuration
3+
# =============================================================================
4+
# This configuration provides an alternative to cargo-llvm-cov for local
5+
# coverage measurement. Both tools are supported.
6+
#
7+
# Usage:
8+
# cargo tarpaulin # Run with default config
9+
# cargo tarpaulin --workspace # All crates
10+
# cargo tarpaulin -p hedl-core # Specific crate
11+
# cargo tarpaulin --out Html # HTML report
12+
# cargo tarpaulin --out Lcov # LCOV format
13+
# =============================================================================
14+
15+
[workspace]
16+
# Enable workspace-wide coverage analysis
17+
workspace = true
18+
19+
# =============================================================================
20+
# Output Configuration
21+
# =============================================================================
22+
[output]
23+
# Default output formats (can override with --out flag)
24+
out = ["Html", "Json", "Stdout"]
25+
26+
# Output directory for coverage reports
27+
output-dir = "coverage/"
28+
29+
# =============================================================================
30+
# Test Configuration
31+
# =============================================================================
32+
[test]
33+
# Timeout for slow tests (in seconds)
34+
timeout = 300
35+
36+
# Run all feature combinations
37+
all-features = true
38+
39+
# Include all targets (lib, bins, tests, examples)
40+
all-targets = true
41+
42+
# Run ignored tests
43+
run-ignored = false
44+
45+
# Number of test threads (0 = number of CPUs)
46+
test-threads = 0
47+
48+
# =============================================================================
49+
# Coverage Configuration
50+
# =============================================================================
51+
[coverage]
52+
# Exclude test files from coverage calculation
53+
exclude-files = [
54+
"*/tests/*",
55+
"*/benches/*",
56+
"*/examples/*",
57+
"**/test_*.rs",
58+
"**/*_test.rs",
59+
]
60+
61+
# Exclude modules/functions from coverage
62+
exclude = [
63+
# Generated code
64+
"hedl_ffi::bindings",
65+
66+
# Test utilities
67+
"hedl_test::*",
68+
69+
# Main binaries (covered by integration tests)
70+
"hedl_cli::main",
71+
"hedl_lsp::main",
72+
73+
# FFI safety wrappers (difficult to test reliably)
74+
"*::ffi::*",
75+
]
76+
77+
# Follow symbolic links
78+
follow-symlinks = false
79+
80+
# Skip clean before running tests
81+
no-clean = false
82+
83+
# Generate coverage for documentation tests
84+
run-types = ["Tests", "Doctests"]
85+
86+
# =============================================================================
87+
# Engine Configuration
88+
# =============================================================================
89+
[engine]
90+
# Use llvm-based coverage engine for better accuracy
91+
# Options: "auto", "llvm", "ptrace"
92+
engine = "llvm"
93+
94+
# =============================================================================
95+
# Reporting Configuration
96+
# =============================================================================
97+
[report]
98+
# Fail if coverage falls below this percentage
99+
# fail-under = 90.0
100+
101+
# Print detailed coverage statistics
102+
verbose = true
103+
104+
# Don't count hits, just covered/not covered
105+
count = false
106+
107+
# Number of parallel jobs (0 = number of CPUs)
108+
jobs = 0
109+
110+
# =============================================================================
111+
# Per-Crate Configuration
112+
# =============================================================================
113+
# Individual crate coverage targets can be specified here
114+
# Uncomment and adjust as needed:
115+
116+
# [[package]]
117+
# name = "hedl-core"
118+
# fail-under = 95.0
119+
#
120+
# [[package]]
121+
# name = "hedl-json"
122+
# fail-under = 90.0
123+
#
124+
# [[package]]
125+
# name = "hedl-yaml"
126+
# fail-under = 90.0
127+
128+
# =============================================================================
129+
# CI/CD Configuration
130+
# =============================================================================
131+
[ci]
132+
# Configuration for CI environments
133+
# Generate machine-readable output for CI parsing
134+
ci = false
135+
136+
# Forward signals to child processes
137+
forward-signals = true
138+
139+
# Release mode for more accurate timing
140+
release = false
141+
142+
# =============================================================================
143+
# Advanced Options
144+
# =============================================================================
145+
[advanced]
146+
# Avoid running default tests
147+
no-default-features = false
148+
149+
# Include Rust standard library in coverage (usually not needed)
150+
avoid-cfg-tarpaulin = false
151+
152+
# Force recompilation of workspace crates
153+
force-clean = false
154+
155+
# Print command before running
156+
print-rust-flags = false
157+
158+
# Print rustdoc flags
159+
print-rustdoc-flags = false

.github/CODEOWNERS

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Default owners for everything
2+
* @dweve-ai/hedl-maintainers
3+
4+
# Core parser - requires careful review
5+
/crates/hedl-core/ @dweve-ai/hedl-core
6+
7+
# Security-sensitive areas
8+
/crates/hedl-ffi/ @dweve-ai/hedl-security
9+
/crates/hedl-mcp/src/auth/ @dweve-ai/hedl-security
10+
SECURITY.md @dweve-ai/hedl-security
11+
12+
# Documentation
13+
*.md @dweve-ai/hedl-docs
14+
/docs/ @dweve-ai/hedl-docs
15+
16+
# CI/CD
17+
/.github/ @dweve-ai/hedl-maintainers

.github/dependabot.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
version: 2
2+
updates:
3+
# Rust dependencies
4+
- package-ecosystem: "cargo"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
day: "monday"
9+
open-pull-requests-limit: 10
10+
groups:
11+
rust-dependencies:
12+
patterns:
13+
- "*"
14+
commit-message:
15+
prefix: "deps"
16+
labels:
17+
- "dependencies"
18+
19+
# GitHub Actions
20+
- package-ecosystem: "github-actions"
21+
directory: "/"
22+
schedule:
23+
interval: "weekly"
24+
day: "monday"
25+
open-pull-requests-limit: 5
26+
commit-message:
27+
prefix: "ci"
28+
labels:
29+
- "dependencies"
30+
- "documentation"

0 commit comments

Comments
 (0)