gum-project-versioning

Manage .gumx schema versioning and compatibility for serialized classes.

597|79|Updated Mar 11, 2015
One-click install
npx skills add https://github.com/vchelaru/Gum --skill gum-project-versioning
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gum-project-versioning
Source: https://github.com/vchelaru/Gum/tree/main/.claude/skills/gum-project-versioning
Command: npx skills add https://github.com/vchelaru/Gum --skill gum-project-versioning

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It provides a clear reference for handling Gum’s .gumx schema versioning and migration, helping developers know when to bump versions, add backward‑compatibility shims, and ensure files load correctly across tool versions.

Core Features & Use Cases

  • Version enumeration: Details the GumxVersions enum and native version handling.
  • Load‑time behavior insights: Explains how Gum reacts to newer, older, or matching file versions.
  • Migration strategy: Describes XmlSerializer overrides, shim patterns, and decision framework for when to bump versions.
  • Practical guidance: Offers examples for adding optional fields, shims, and handling list vs array serialization.

Quick Start

Load this skill when planning any changes to GumProjectSave or related serialized classes to receive the appropriate versioning guidance.

Frequently Asked Questions about gum-project-versioning

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle Gum schema migration when modifying serialized classes like GumProjectSave?

To handle Gum schema migration, you bump the version enum and apply backward-compatibility shims using XmlSerializer overrides. This ensures .gumx files load correctly across different tool versions when altering the shape of serialized classes.

When should I bump the version number for Gum .gumx project files?

You should bump the .gumx version number when altering the shape of serialized classes like ElementSave. The decision framework uses the GumxVersions enum to track schema changes and determine if backward-compatibility shims are required for older files.

How does Gum load files with newer or older schema versions?

Gum reacts to mismatched file versions at load-time by checking the version enum. It applies migration shims via XmlSerializer overrides for older files, while newer file versions trigger specific load compatibility behaviors to prevent data corruption.

What is the best way to add optional fields during Gum XML schema versioning?

The best way to add optional fields during Gum schema versioning is to bump the GumxVersions enum and implement a shim pattern. This approach uses XmlSerializer overrides to ensure backward compatibility without breaking existing .gumx project loads.

Do I need to understand XmlSerializer overrides to manage Gum project migration?

Yes, understanding XmlSerializer overrides is required for Gum project migration. You need this knowledge to implement shims and handle list versus array serialization when maintaining load compatibility across tool versions.