Revision Scheme

Overview

The revision scheme configuration system allows you to define how component revisions are managed throughout their lifecycle. It enables you to:

  • Define revision formats for different lifecycle stages

  • Configure validation rules for revision transitions

  • Specify allowed characters and patterns

  • Set up automatic increment rules

  • Establish consistent revision naming across your library

This configuration serves as the foundation for maintaining traceable and well-structured revision control in your product development process.

Schema

The revision scheme is defined in a YAML file that specifies how revisions should be formatted and validated at each lifecycle stage.

Basic Structure

version: "1.0"
schema_type: "revision_scheme_config"

defaults:
  segments:
    integer:
      min_value: 1
      max_value: 999
    letter:
      min_value: "A"
      max_value: "ZZ"
  delimiter: "."
  empty_value: "-"

Define Status Order

Establish the progression of lifecycle stages:

status_order:
  - "Design"
  - "Prototype"
  - "Production"
  - "Obsolete"

Configure Revision Schemes

Define revision formats for each status:

schemes:
  - status: "Design"
    description: "Initial design phase revisions"
    segments:
      major:
        type: "letter"
        delimiter: ""
        required: true
      minor:
        type: "integer"
        min_value: 1
        max_value: 99
        required: false
    examples:
      - "A"
      - "A.1"

Segment Types

Letter Segment

major:
  type: "letter"
  delimiter: ""
  required: true
  min_value: "A"
  max_value: "Z"

Integer Segment

minor:
  type: "integer"
  delimiter: "."
  required: false
  min_value: 1
  max_value: 99

Either Type Segment

identifier:
  type: "either"  # Allows both letter and integer
  delimiter: ""
  required: true

Validation Rules

Define rules for revision transitions and validation:

validation:
  allowed_segment_types:
    - "integer"
    - "letter"
    - "either"

  required_fields:
    - "status"
    - "segments.major"

  transitions:
    allowed:
      - from: "Design"
        to: ["Prototype", "Obsolete"]
      - from: "Prototype"
        to: ["Production", "Obsolete"]

Character Blacklist

Specify characters to exclude from revision schemes:

blacklist:
  - "I"  # Avoid confusion with 1
  - "O"  # Avoid confusion with 0
  - "Q"  # Avoid confusion with 0
  - "S"  # Avoid confusion with 5

Common Patterns

Simple Letter-Based Revisions

schemes:
  - status: "Design"
    segments:
      major:
        type: "letter"
        required: true

Letter with Numeric Suffix

schemes:
  - status: "Production"
    segments:
      major:
        type: "letter"
        required: true
      minor:
        type: "integer"
        delimiter: "."
        required: true

Mixed Format for Obsolescence

schemes:
  - status: "Obsolete"
    segments:
      major:
        type: "either"
        required: true

Best Practices

  1. Revision Format

    • Keep formats simple and intuitive

    • Use consistent delimiters

    • Consider future scaling needs

  2. Lifecycle Stages

    • Define clear progression paths

    • Limit revision format changes between stages

    • Document transition rules

  3. Validation

    • Blacklist confusing characters

    • Set appropriate value ranges

    • Define clear transition rules

  4. Documentation

    • Include examples for each scheme

    • Document special cases

    • Maintain transition matrices

Examples

Basic Development Scheme

schemes:
  - status: "Design"
    segments:
      major:
        type: "letter"
    examples:
      - "A"
      - "B"
      - "C"

Production Scheme

schemes:
  - status: "Production"
    segments:
      major:
        type: "letter"
      minor:
        type: "integer"
        delimiter: "."
    examples:
      - "A.1"
      - "B.2"
      - "C.10"

Note: Examples should reflect your actual use cases and common scenarios.

Last updated