You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixed: enforce per-insertion validation for PLManifoldStrict topology
Correct the validation policy during batch construction so that
topologies requiring vertex links maintain Always validation. This
ensures structural guarantees are preserved during bulk operations.
Additionally updates MSRV to 1.94, refreshes dependencies, and
expands contributor guidelines in AGENTS.md.
Refs: issue-228
Copy file name to clipboardExpand all lines: AGENTS.md
+19-6Lines changed: 19 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,9 +45,16 @@ When user requests commit message generation:
45
45
- Prefer borrowed APIs by default:
46
46
take references (`&T`, `&mut T`, `&[T]`) as arguments and return borrowed views (`&T`, `&[T]`) when possible.
47
47
Only take ownership or return `Vec`/allocated data when required.
48
+
-**Error handling**:
49
+
- All public functions must return `Result` types
50
+
- Private functions should return `Result` if called from public functions to surface errors properly
51
+
- As a scientific library, panics are rarely acceptable - prefer explicit error propagation
52
+
- Define error types at the top of the relevant module/file (module-local errors, not centralized)
53
+
-**Preludes**: Keep minimal and orthogonal by function. Users should be able to import well-named preludes to accomplish
54
+
specific goals without bringing in unrelated items.
48
55
- Integration tests in `tests/*.rs` are separate crates; add a crate-level doc comment (`//! ...`) at the top to satisfy clippy `missing_docs` (CI uses `-D warnings`).
49
56
-**Module layout**: Never use `mod.rs`.
50
-
Declare modules in `src/lib.rs` (and `src/main.rs` for binaries), including nested modules via inline `pub mod foo { pub mod bar; }` when needed.
57
+
Declare modules in `src/lib.rs`, including nested modules via inline `pub mod foo { pub mod bar; }` when needed.
51
58
52
59
### Python
53
60
@@ -59,21 +66,27 @@ When user requests commit message generation:
59
66
## Common Commands
60
67
61
68
```bash
62
-
just fix # Apply formatters/auto-fixes (mutating)
69
+
just fix # Apply formatters/auto-fixes (mutating) - most formatters run automatically
63
70
just check # Lint/validators (non-mutating)
64
71
just ci # Full CI run (checks + all tests + examples + bench compile)
65
-
just ci-slow # CI + slow tests (100+ vertices)
72
+
just ci-slow # CI + slow tests (100+ vertices) - long-running
66
73
just lint # All linting
67
74
just test# Lib and doc tests
68
75
just test-integration # Integration tests (includes proptests)
69
76
just test-all # All tests (Rust + Python)
70
77
just examples # Run all examples
78
+
just changelog # Regenerate CHANGELOG.md from git commits
71
79
```
72
80
81
+
## Testing Guidance
82
+
83
+
-**Property tests**: Integration tests include proptests; failures show seed for reproduction
84
+
-**Documentation**: After Rust changes, run `just doc-check` to verify docs build
85
+
-**Validation order**: Run formatters (`just fix`) before tests to avoid formatting noise in diffs
86
+
73
87
### Changelog
74
88
75
-
- Never edit `CHANGELOG.md` directly - it's auto-generated from git commits
76
-
- Use `just changelog` to regenerate
89
+
- Never edit `CHANGELOG.md` directly - it's auto-generated from git commits via `just changelog`
77
90
78
91
### GitHub Issues
79
92
@@ -95,7 +108,7 @@ When creating or updating issues:
0 commit comments