Skip to content

Release v0.3.3 - #85

Merged
jonahgabriel merged 2 commits into
mainfrom
release/0.3.3
Nov 19, 2025
Merged

jonahgabriel merged 2 commits into
mainfrom
release/0.3.3

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Nov 19, 2025 •

Copy link
Copy Markdown
Contributor

Release v0.3.3

Major release with 6 new subcontract models, comprehensive documentation improvements, and error handling standardization.

🎉 Key Highlights

  • 6 New Subcontract Models with 960+ tests
  • ModelMixinMetadata & ModelDockerComposeManifest models
  • NODE_CLASS_HIERARCHY guide (1364 lines)
  • MIXIN_SUBCONTRACT_MAPPING guide (1104 lines)
  • ModelOnexError standardization across 27+ files
  • Pydantic v2 migration (25+ templates)
  • 91 documentation fixes and improvements

✨ Added

Subcontract Models

  • 6 New Subcontract Models: Complete mixin-subcontract architecture with comprehensive Pydantic models
    • ModelDiscoverySubcontract: Service discovery configuration with channel validation
    • ModelEventHandlingSubcontract: Event subscription and filtering patterns
    • ModelIntrospectionSubcontract: Node metadata and capability introspection
    • ModelLifecycleSubcontract: Initialization and shutdown lifecycle management
    • ModelObservabilitySubcontract: Metrics, logging, and tracing configuration
    • ModelToolExecutionSubcontract: Tool and capability execution framework
  • Comprehensive Test Coverage: 960+ tests for all subcontract models with validation, serialization, and edge case testing

Metadata & Manifest Models

  • ModelMixinMetadata: Declarative mixin metadata with schema validation and subcontract integration
  • ModelDockerComposeManifest: Docker Compose configuration parsing with port conflict detection and YAML validation
  • Mixin Metadata YAML: 305-line metadata file (mixin_metadata.yaml) with schemas and examples for 5 mixins

Documentation Enhancements

  • NODE_CLASS_HIERARCHY.md (1364 lines): Complete guide to ONEX node class hierarchy with decision trees and migration paths
  • MIXIN_SUBCONTRACT_MAPPING.md (1104 lines): Comprehensive mapping guide for mixin-to-subcontract relationships
  • TERMINOLOGY_AUDIT_REPORT.md: Standardization audit for ONEX v2.0 terminology
  • TERMINOLOGY_FIXES_CHECKLIST.md: Checklist for terminology consistency across codebase

Tools & Scripts

  • validate_docs_links.py: Markdown link validation tool scanning for broken file and anchor references
  • fix_documentation_links.py: Automated link correction script for predefined fixes

🔄 Changed

Error Handling Standardization

  • ModelOnexError Migration: Renamed OnexError → ModelOnexError across all documentation and templates (27+ files)
  • Import Path Consolidation: Standardized import paths to omnibase_core.models.errors.model_onex_error
  • correlation_id Best Practices: Added correlation_id parameter to 19+ error examples for improved traceability

Documentation Improvements

  • Pydantic v2 Migration: Updated 25+ template examples from @validator → @field_validator
  • Code Example Fixes: Fixed 91 malformed markdown code fences and 22 inconsistent import paths
  • Template Updates: Replaced BaseNodeConfig with BaseModel in 3 template files
  • Processing Time Calculations: Fixed duration calculation bugs in ENHANCED_NODE_PATTERNS
  • Security Sanitization: Fixed output propagation in security validation examples

Node Base Class Updates

  • Service Wrapper Promotion: Documentation now recommends ModelService* wrappers over legacy Node* bases
  • Advanced Patterns Introduction: Added ONEX v2.0 patterns (ModelIntent for REDUCER, ModelAction for ORCHESTRATOR)

🐛 Fixed

Source Code Bugs

  • Discovery Validation: Fixed model_discovery_subcontract.py to only validate channels when enabled=True
  • Port Parsing: Enhanced model_docker_compose_manifest.py to handle all Docker port formats (IP prefix, protocol suffix)
  • Import Ordering: Fixed isort configuration alignment between local and CI environments

Documentation Fixes

  • Missing Imports: Added ModelOnexError, CircuitBreakerError, datetime, UUID imports to 8+ code examples
  • Enum Naming: Standardized to EnumCoreErrorCode across 4+ occurrences
  • Legacy Module Paths: Updated manifest dependency paths from models.model_onex_error → errors.model_onex_error
  • Stray Artifacts: Removed generator artifacts from 2 template files

📊 Quality & CI

  • ✅ CI Performance: All test splits running within expected 2m30s-3m30s benchmark
  • ✅ Test Coverage: Maintained 60%+ coverage requirement with 12,198 tests
  • ✅ Type Safety: 100% mypy strict compliance (0 errors in 1,840 source files)
  • ✅ Code Quality: Black, isort, and ruff all passing

📝 Files Changed

  • 114 files changed: +13,495 insertions, -2,833 deletions
  • New Models: 6 subcontract models + 2 metadata models
  • New Tests: 960+ test cases
  • Documentation: 2,468+ lines of new documentation

✅ Merge Checklist

  • Version bumped to 0.3.3
  • CHANGELOG updated
  • All tests passing
  • Documentation updated
  • Type checking passing (mypy)
  • Code quality checks passing (black, isort, ruff)
  • Tag created: v0.3.3

Release Date: 2025-11-19
Target Branch: main
Release Branch: release/0.3.3

Summary by CodeRabbit

  • New Features

    • Added Subcontract, Metadata, and Manifest Models
  • Bug Fixes

    • Fixed discovery, port parsing, and import issues
    • Corrected code examples and documentation accuracy
  • Documentation

    • Enhanced documentation improvements
  • Quality & Testing

    • Expanded test coverage
    • Standardized error handling
    • Improved CI performance metrics✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitai Bot commented Nov 19, 2025 •

Copy link
Copy Markdown
Contributor

Walkthrough

Bumps version from 0.3.2 to 0.3.3 and updates CHANGELOG with release notes documenting six new Subcontract Models, test coverage, Metadata & Manifest Models, documentation enhancements, error handling standardization, and bug fixes for discovery, port parsing, and imports.

Changes

Cohort / File(s) Change Summary
Release Documentation & Version
CHANGELOG.md, pyproject.toml
Added unreleased entry for version 0.3.3 (2025-11-19) with new Subcontract Models, test coverage, documentation improvements, error handling updates, and bug fixes. Version bumped from 0.3.2 to 0.3.3.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

  • Changes are purely documentation and version metadata with no code logic modifications
  • CHANGELOG additions are informational only and do not affect functionality

Poem

🐰 A new version hops into view,
With models and tests, shiny and true!
From 0.3.2 to 0.3.3 we go,
Documentation blooms, bug fixes glow! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Release v0.3.3' is directly related to the main purpose of the PR - a major version release with 114 files changed including new subcontract models, metadata models, extensive documentation, and standardized error handling.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release/0.3.3

Comment @coderabbitai help to get the list of available commands and usage tips.

@jonahgabriel
jonahgabriel merged commit dd82c32 into main Nov 19, 2025
4 of 5 checks passed
@jonahgabriel
jonahgabriel deleted the release/0.3.3 branch November 19, 2025 19:48

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
CHANGELOG.md (1)

48-48: Minor: Capitalize proper noun "Markdown".

The static analysis tool suggests capitalizing "markdown" to "Markdown" on line 48 for proper English grammar (Markdown is the name of the markup language).

Apply this diff:

-- **Code Example Fixes**: Fixed 91 malformed markdown code fences and 22 inconsistent import paths
+- **Code Example Fixes**: Fixed 91 malformed Markdown code fences and 22 inconsistent import paths
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 77d7963 and 70c2c61.

📒 Files selected for processing (2)
  • CHANGELOG.md (1 hunks)
  • pyproject.toml (1 hunks)
🧰 Additional context used
🪛 LanguageTool
CHANGELOG.md

[uncategorized] ~48-~48: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...ode Example Fixes**: Fixed 91 malformed markdown code fences and 22 inconsistent import ...

(MARKDOWN_NNP)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Code Quality
  • GitHub Check: Smoke Tests
  • GitHub Check: claude-review
🔇 Additional comments (2)
pyproject.toml (1)

7-7: Version bump correctly aligned with release.

The semantic version bump from 0.3.2 to 0.3.3 is properly placed in the [project] section following PEP 621 standards, and the Poetry configuration correctly points to this single source of truth.

CHANGELOG.md (1)

10-75: Release notes are comprehensive and well-structured.

The v0.3.3 release notes comprehensively document all major features (6 new subcontract models, 960+ tests, 2 new metadata/manifest models), improvements (error handling standardization, Pydantic v2 migration, 91 documentation fixes), and quality metrics (12,198 tests, 60%+ coverage, mypy strict compliance). Content aligns well with PR objectives and follows Keep a Changelog format. The "Quality & CI" section, while a custom addition, enhances clarity of the release's quality assurance aspects.

@claude

claude Bot commented Nov 19, 2025

Copy link
Copy Markdown

Pull Request Review: Release v0.3.3

Thank you for this release PR! I've reviewed the changes and have the following feedback:


✅ Positive Aspects

Code Quality & Standards

  1. Version Bump Correctly Applied: Version updated from 0.3.2 → 0.3.3 in pyproject.toml
  2. Proper Changelog Format: Follows Keep a Changelog format with clear categorization
  3. Comprehensive Documentation: The CHANGELOG is well-structured with detailed sections
  4. Minimal Change Footprint: Only 2 files changed (CHANGELOG.md and pyproject.toml) - appropriate for a release PR

🚨 Critical Issues

1. MAJOR DISCREPANCY: PR Changes vs. Described Changes

Problem: The PR diff shows only 67 additions and 1 deletion across 2 files, but the PR body claims 114 files changed with 13,495 insertions.

Evidence: Only CHANGELOG.md (+66 lines) and pyproject.toml (+1/-1) are actually changed in this PR.

Verification: I checked for claimed files:

  • ❌ docs/architecture/MIXIN_SUBCONTRACT_MAPPING.md - Does NOT exist
  • ✅ docs/architecture/NODE_CLASS_HIERARCHY.md - Exists (but not in this PR diff)
  • ✅ Subcontract models exist (but not in this PR diff)

Root Cause: This appears to be a release PR that only updates the CHANGELOG and version number, but describes features that were already merged in previous commits. The PR body is documenting cumulative changes between v0.3.2 and v0.3.3, not the changes in this specific PR.

Recommendation: Rewrite the PR body to clarify this is a release coordination PR documenting already-merged work. Add a note like: This PR consolidates the release documentation for features merged between v0.3.2 and v0.3.3.


2. Date Inconsistency Issue

Problem: The release date is listed as 2025-11-19, but we are currently in November 2024.

Recommendation: Change to 2024-11-19 in the CHANGELOG.


📋 Review Checklist

Must Fix Before Merge

  • CRITICAL: Clarify PR scope - this is documenting already-merged work
  • CRITICAL: Fix date typo (2025 → 2024)
  • Verify all CI checks pass

🎯 Final Recommendation

Status: ⏸️ HOLD PENDING CLARIFICATION

This PR appears to be a release coordination PR that documents features already merged. The discrepancy between the PR description and actual changes must be resolved before merge.

Next Steps:

  1. Update PR description to clarify this is a release documentation PR
  2. Fix the date typo (2025 → 2024)
  3. Verify all CI checks pass

Overall Assessment: The release documentation is comprehensive and well-structured, but the presentation creates confusion about what is in scope.


Reviewed by: Claude Code
Review Date: 2024-11-19

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant