Duro API
ChangelogStatusApp
  • Welcome to Duro Dev Center
  • Getting Started
    • Introduction
    • Authentication
    • Hello World
  • Core Concepts
    • Components & Products
    • Documents
    • Change Orders
  • Advanced Topics
    • Searching and Filtering
    • Datarooms & RBAC
    • Webhooks
    • Error Handling
  • Library Configuration
    • Introduction to Duro's Config System
    • Category Registry
    • Revision Scheme
    • CPN Generation Scheme
    • CPN Schema Reference
  • Community
    • Developer Community
Powered by GitBook
On this page
  • Overview
  • Schema
  • Basic Structure
  • Define Status Order
  • Configure Revision Schemes
  • Segment Types
  • Validation Rules
  • Character Blacklist
  • Common Patterns
  • Simple Letter-Based Revisions
  • Letter with Numeric Suffix
  • Mixed Format for Obsolescence
  • Best Practices
  • Examples
  • Basic Development Scheme
  • Production Scheme
Export as PDF
  1. Library Configuration

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.

PreviousCategory RegistryNextCPN Generation Scheme

Last updated 4 months ago