102 lines
2.6 KiB
Plaintext
102 lines
2.6 KiB
Plaintext
"""
|
|
Change Tracking Schema
|
|
|
|
Defines changes made during incremental updates to enable:
|
|
- Traceability (what changed and why)
|
|
- Reversibility (ability to undo changes)
|
|
- Version history (changelog generation)
|
|
"""
|
|
|
|
# ============================================================================
|
|
# Change Operations
|
|
# ============================================================================
|
|
|
|
schema AddTaskservChange:
|
|
"""Add a new taskserv requirement"""
|
|
taskserv_name: str
|
|
version: str
|
|
profile: str = "default"
|
|
reason: str
|
|
|
|
|
|
schema RemoveTaskservChange:
|
|
"""Remove a taskserv requirement"""
|
|
taskserv_name: str
|
|
reason: str
|
|
|
|
|
|
schema UpdateTaskservChange:
|
|
"""Update an existing taskserv"""
|
|
taskserv_name: str
|
|
old_version?: str
|
|
new_version?: str
|
|
old_profile?: str
|
|
new_profile?: str
|
|
reason: str
|
|
|
|
|
|
schema UpdateFieldChange:
|
|
"""Update a configuration field"""
|
|
schema_name: str
|
|
field_name: str
|
|
old_value?: str
|
|
new_value: str
|
|
reason: str
|
|
|
|
|
|
schema PreserveCustomizationChange:
|
|
"""Marker: this customization was preserved"""
|
|
location: str # Path in declaration
|
|
value: str # Preserved value
|
|
reason: str = "User customization preserved"
|
|
|
|
|
|
# ============================================================================
|
|
# Change Record
|
|
# ============================================================================
|
|
|
|
schema Change:
|
|
"""
|
|
Single tracked change during merge
|
|
"""
|
|
kind: str # "add_taskserv", "update_field", etc.
|
|
timestamp: str # ISO 8601
|
|
author?: str
|
|
breaking: bool = False # Is this a breaking change?
|
|
details: {str: str} # Operation-specific details
|
|
|
|
check:
|
|
len(kind) > 0, "Change kind required"
|
|
|
|
|
|
# ============================================================================
|
|
# Merge Result
|
|
# ============================================================================
|
|
|
|
schema MergeResult:
|
|
"""
|
|
Result of incremental merge operation
|
|
"""
|
|
success: bool
|
|
changes: [Change] = []
|
|
preserved_customizations: [str] = []
|
|
conflicts: [str] = []
|
|
version_bumped?: "major" | "minor" | "patch"
|
|
new_version?: str
|
|
warning_messages: [str] = []
|
|
|
|
|
|
# ============================================================================
|
|
# Changelog Entry
|
|
# ============================================================================
|
|
|
|
schema ChangelogEntry:
|
|
"""
|
|
Entry in workspace changelog
|
|
"""
|
|
version: str
|
|
date: str # ISO 8601
|
|
changes_summary: [str]
|
|
breaking_changes: [str] = []
|
|
merged_by?: str
|