Skip to content

Changes for 0.7.0#195

Merged
Idleness76 merged 14 commits into
stagingfrom
updates-05
May 24, 2026
Merged

Changes for 0.7.0#195
Idleness76 merged 14 commits into
stagingfrom
updates-05

Conversation

@Idleness76
Copy link
Copy Markdown
Owner

Description

This PR prepares the 0.7.0 release of Weavegraph. The branch comprises several large commits of targeted revision work, documentation improvements, breaking API removals, and a license change from MIT to Apache-2.0. The release includes over 6K lines of net code reduction through module-wide refactoring, dead code removal, documentation condensing, and control flow simplification across the entire codebase, while maintaining backward compatibility where possible and clearly documenting breaking changes.

Type of Change

  • Breaking change (removes several public APIs and changes migration SQL checksums)
  • Refactoring (no functional changes across most modules)
  • Documentation update (migration guide, release notes, code comments)
  • Test improvements (two batches of test revisions)
  • License change (MIT → Apache-2.0)

Changes Made

License & Legal

  • Migrated from MIT to Apache-2.0 license across all source files
  • Updated LICENSE, CHANGELOG, CONTRIBUTING, and SECURITY documentation

Core API Changes & Breaking Items

  • LLMStreamingEvent: Removed LLMStreamingEvent::new(...) constructor; use LLMStreamingEvent::builder(chunk) or factory methods (chunk_event, final_event, error_event)
  • NodeContext: Removed emit_node() method; use emit(scope, message) instead
  • Error types: Removed PersistenceError::MissingField and SQLiteCheckpointerError; use CheckpointerError directly
  • Private modules: checkpointer_postgres_helpers and checkpointer_sqlite_helpers are now private implementation details
  • Unused public APIs trimmed: IdError, ParsedId, IdGenerator::{generate_uuid, generate_random_id, parse_id, current_counter, reset_counter}, id_utils, JsonValueExt::deep_clone, merge_inspector, message_id_helpers, type_guards
  • Breaking (Migration SQL Checksums): Migration SQL files were rederived with equivalent schemas but changed file contents. Existing databases will produce a hard sqlx checksum error on next connect() call — no schema changes, only checksum record correction required. See v0.7.0 migration guide.

Public API Improvements

  • LLMStreamingEventBuilder — fluent builder for constructing LLM streaming events with optional session_id, node_id, stream_id, is_final, scope, metadata, timestamp fields
  • conditional_edges() now returns &[ConditionalEdge] instead of &Vec<ConditionalEdge> (transparently coercible; explicit &Vec<_> annotations should be updated)
  • WeaveError now derives Default
  • MetricsObserver simplification — now uses default no-op RuntimeObserver::on_invocation_start implementation

Code Quality & Maintenance

  • Heavy revision pass across all modules: src/app.rs, src/channels/, src/control.rs, src/event_bus/, src/graphs/, src/llm/, src/message.rs, src/node.rs, src/reducers/, src/runtimes/, src/schedulers/, src/state.rs, src/telemetry/, src/types.rs, src/utils/
    • Documentation condensed and clarified
    • Dead code and unreachable branches removed
    • Control flow simplified for readability
    • Private helpers renamed for clarity
    • All formatting and lint issues resolved
  • Test revisions (2 batches): Improved test structure, assertions, and maintenance
  • Minor cosmetic cleanups: EventBus::with_sink, Channel::set_version, VersionedStateBuilder
  • Fixed misapplied attributes: Removed #[must_use] from mutating VersionedState::{add_message, add_extra} methods
  • Rustdoc fixes: Resolved nightly doc build warnings (e.g., IdGenerator doctest reserved keyword issue)
  • Likely more things that I'm forgetting...

Documentation

  • Updated docs/MIGRATION.md with comprehensive v0.7.0 migration guide for SQL checksum mismatch
  • Updated docs/ARCHITECTURE.md and other architecture docs for clarity
  • Improved examples and documentation in examples/README.md
  • Prepared CHANGELOG.md with complete 0.7.0 release notes

Testing

  • Existing tests pass (cargo test)
  • Clippy lints resolved (cargo clippy)
  • Code formatted (cargo fmt)
  • No new warnings on nightly (cargo +nightly doc)
  • All test revisions completed and passing

Checklist

  • My code follows the project's code style (cargo fmt)
  • I have run clippy and addressed warnings (cargo clippy)
  • I have updated documentation (migration guide, release notes, architecture)
  • All existing tests pass locally
  • I have updated CHANGELOG.md with 0.7.0 release notes
  • Breaking changes are clearly documented in CHANGELOG and migration guide
  • License headers updated to Apache-2.0

Breaking Changes

This is a breaking release — 0.7.0. Migration is straightforward for most users:

  1. API Removals: Update imports and usages:

    • LLMStreamingEvent::new(...)LLMStreamingEvent::builder(chunk).build()
    • NodeContext::emit_node(...)NodeContext::emit(scope, message)
    • Remove usage of deleted types/functions listed above
  2. Migration SQL Checksum (All Persistence Users):

    • SQLite: Affected by default
    • PostgreSQL: Affected if postgres-migrations feature enabled
    • Symptom: Hard sqlx checksum validation error on next app startup
    • Fix: Follow exact SQL and step-by-step Docker upgrade instructions
    • Important: No data loss — only checksum record correction needed

See CHANGELOG.md [0.7.0] section and docs/MIGRATION.md for complete details.

Additional Notes

  • Net code reduction: ~6.2K lines (removal of unused public APIs, dead code, documentation condensing)
  • 118 files modified across 15 commits
  • All changes are backward compatible except where explicitly marked as breaking
  • This release maintains the project's stability while significantly improving code maintainability

Idleness76 and others added 14 commits May 23, 2026 12:24
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- event_bus/bus.rs: remove redundant explicit link targets on
  StdOutSink and EventSink (rustdoc::redundant-explicit-links)
- state.rs: remove duplicate code block stanza that left an orphaned
  closing fence, triggering rustdoc::invalid-rust-codeblocks

Fixes all three -D warnings failures in the nightly doc job.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Idleness76 Idleness76 self-assigned this May 24, 2026
@Idleness76 Idleness76 added documentation Improvements or additions to documentation enhancement New feature or request breaking-change Changes that break backward compatibility api-design Public API design and ergonomics labels May 24, 2026
@Idleness76 Idleness76 merged commit 040b388 into staging May 24, 2026
10 checks passed
@Idleness76 Idleness76 deleted the updates-05 branch May 24, 2026 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api-design Public API design and ergonomics breaking-change Changes that break backward compatibility documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant