Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.
Unreleased¶
v0.2.0 - 2025-04-18¶
Highlights¶
- Add annotations, alternatives, conditions, notes, and nested phases to PIDL
- Enhanced renderers with support for alt/else blocks, opt conditionals, and nested phase visualization
- New D2 diagram format with sequence, flow, and architecture rendering styles
- Comprehensive validation for phase hierarchies and new flow features
Added¶
- D2 diagram renderer with sequence, flow, and architecture styles (
a5f8f35) - AnnotationType enum: security, performance, deprecated, info, warning, error (
843c18d) - Annotation type with Type, Text, and Details fields (
843c18d) - Alternative type for alternative/error flow paths (
843c18d) - Phase.Parent field for nested phase hierarchies (
843c18d) - Flow.Condition field for conditional flows (when clause) (
843c18d) - Flow.Note field for visible diagram notes (
843c18d) - Flow.Annotations field for typed annotations (
843c18d) - Flow.Alternatives field for alternative paths (
843c18d) - Protocol.RootPhases(), ChildPhases(), PhaseDepth() helper methods (
843c18d) - Flow.HasCondition(), HasNote(), HasAnnotations(), HasAlternatives() helper methods (
843c18d) - IsValidAnnotationType() validation function (
843c18d) - JSON Schema definitions for annotation and alternative types (
fffad47) - Phase parent reference validation with cycle detection (
37afe81) - Annotation type and text validation (
37afe81) - Alternative condition and flows validation (
37afe81) - Mermaid opt blocks for conditional flows (
ab82c3b) - Mermaid alt/else blocks for alternatives (
ab82c3b) - Mermaid note right of for flow notes and annotations (
ab82c3b) - Mermaid colored rect blocks for nested phases (
ab82c3b) - PlantUML opt/alt/else blocks for conditionals and alternatives (
ab82c3b) - PlantUML colored box containers for nested phases (
ab82c3b) - D2 condition label prefixes and grouped alternatives (
ab82c3b) - D2 nested phase groups with hierarchy support (
ab82c3b) - DOT condition edge labels and alternative edges (
ab82c3b)
Tests¶
- Tests for nested phases, phase parent validation, circular hierarchy detection (
d9dd392) - Tests for annotation types and text validation (
d9dd392) - Tests for alternative flows, conditions, and entity references (
d9dd392) - Tests for flow helper methods (HasCondition, HasNote, etc.) (
d9dd392) - Tests for phase hierarchy helpers (RootPhases, ChildPhases, PhaseDepth) (
d9dd392)
v0.1.0 - 2025-04-18¶
Highlights¶
- Protocol Interaction Description Language - a JSON-based DSL for describing protocol choreography that compiles to diagrams
- Support for OAuth 2.0, PKCE, OIDC, MCP, and A2A protocol examples
- Three diagram output formats: PlantUML, Mermaid, and Graphviz DOT
Added¶
- Core PIDL library with Protocol, Entity, Flow, and Phase types (
6555cbb) - JSON parser with file and reader support (
6555cbb) - Validation logic with detailed error reporting (
6555cbb) - High-level operations:
ValidateFile,ValidateFiles,NewMinimalProtocol,WriteProtocolFile(6555cbb) - JSON Schema (draft 2020-12) for PIDL validation (
61f0a39) - Embedded JSON Schema for programmatic access (
61f0a39) - PlantUML sequence diagram renderer (
524e920) - Mermaid sequence diagram renderer (
524e920) - Graphviz DOT data flow diagram renderer (
524e920) - Renderer interface with format parsing and file extension helpers (
524e920) - Embedded protocol examples with API:
List,Get,GetProtocol,GetJSON(66f6aa6) - OAuth 2.0 Authorization Code flow example (
66f6aa6) - OAuth 2.0 + PKCE flow example (
66f6aa6) - OpenID Connect Authentication flow example (
66f6aa6) - MCP tool invocation flow example (
66f6aa6) - A2A agent delegation flow example (
66f6aa6) pidl validatecommand for validating PIDL JSON files (8bf725d)pidl generatecommand for generating diagrams (PlantUML, Mermaid, DOT) (8bf725d)pidl examplescommand for listing and showing built-in examples (8bf725d)pidl initcommand for creating new protocol files from templates (8bf725d)
Documentation¶
- README with installation, quick start, CLI reference, and library usage (
45e558b) - Full PIDL language specification document (
45e558b) - Project roadmap with phased implementation plan (
45e558b) - UTF-8 icons for README features list (
e6830b0)
Build¶
- Go module initialization (
284d99a) - GitHub Actions CI/CD workflows (
9e7c3af) - Linting fixes for golangci-lint compliance (
03e1460)
Tests¶
- Unit tests for core library: types, parser, validation, operations (
d448ea7) - Tests for render package: format parsing, all renderers (
524e920) - Tests for examples package: embedding, listing, retrieval (
66f6aa6) - 60 tests total with full linting compliance (
d448ea7)