This checklist defines the stability expectations for 2.x releases and the criteria for API changes.
- Preserve documented public APIs within the 2.x line.
- Deprecate before removal where possible; removals require a major release.
- Keep
envAPIs stable and ergonomic. - Keep
sysin sync with upstream JNI/JVMTI headers. - Feature-gated modules may grow faster, but must document behavior changes.
- Does this change break existing code? If yes, can we avoid it?
- Is there a migration path or deprecation notice?
- Are docs/examples updated to the new API?
- Are safety assumptions updated?
- Are tests updated or added?
- Public surface area is documented and intentional.
- Unsafe boundaries are minimal and clearly documented.
- No unsound
SendorSyncbehavior. - All JVMTI allocations have explicit ownership.
- Examples cover core workflows (profiling, tracing, heap sampling).
- CI green on Linux/macOS/Windows.
cargo publish --dry-runsucceeds.