chore: clean git cache
This commit is contained in:
142
.github/skills/utility-version-check.SKILL.md
vendored
142
.github/skills/utility-version-check.SKILL.md
vendored
@@ -1,142 +0,0 @@
|
||||
---
|
||||
name: "utility-version-check"
|
||||
version: "1.0.0"
|
||||
description: "Validates that VERSION.md/version file matches the latest git tag for release consistency"
|
||||
author: "Charon Project"
|
||||
license: "MIT"
|
||||
tags:
|
||||
- "utility"
|
||||
- "versioning"
|
||||
- "validation"
|
||||
- "git"
|
||||
compatibility:
|
||||
os:
|
||||
- "linux"
|
||||
- "darwin"
|
||||
shells:
|
||||
- "bash"
|
||||
requirements:
|
||||
- name: "git"
|
||||
version: ">=2.0"
|
||||
optional: false
|
||||
environment_variables: []
|
||||
parameters: []
|
||||
outputs:
|
||||
- name: "exit_code"
|
||||
type: "integer"
|
||||
description: "0 if version matches, 1 if mismatch or error"
|
||||
metadata:
|
||||
category: "utility"
|
||||
subcategory: "versioning"
|
||||
execution_time: "short"
|
||||
risk_level: "low"
|
||||
ci_cd_safe: true
|
||||
requires_network: false
|
||||
idempotent: true
|
||||
---
|
||||
|
||||
# Utility: Version Check
|
||||
|
||||
## Overview
|
||||
|
||||
Validates that the version specified in `.version` file matches the latest git tag. This ensures version consistency across the codebase and prevents version drift during releases. The check is used in CI/CD to enforce version tagging discipline.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Git repository with tags
|
||||
- `.version` file in repository root (optional)
|
||||
|
||||
## Usage
|
||||
|
||||
### Basic Usage
|
||||
|
||||
```bash
|
||||
.github/skills/utility-version-check-scripts/run.sh
|
||||
```
|
||||
|
||||
### Via Skill Runner
|
||||
|
||||
```bash
|
||||
.github/skills/scripts/skill-runner.sh utility-version-check
|
||||
```
|
||||
|
||||
### Via VS Code Task
|
||||
|
||||
Use the task: **Utility: Check Version Match Tag**
|
||||
|
||||
## Parameters
|
||||
|
||||
This skill accepts no parameters.
|
||||
|
||||
## Environment Variables
|
||||
|
||||
This skill requires no environment variables.
|
||||
|
||||
## Outputs
|
||||
|
||||
- **Success Exit Code**: 0 - Version matches latest tag or no tags exist
|
||||
- **Error Exit Codes**: 1 - Version mismatch detected
|
||||
- **Console Output**: Validation result message
|
||||
|
||||
### Success Output Example
|
||||
|
||||
```
|
||||
OK: .version matches latest Git tag v0.3.0-beta.2
|
||||
```
|
||||
|
||||
### Error Output Example
|
||||
|
||||
```
|
||||
ERROR: .version (0.3.0-beta.3) does not match latest Git tag (v0.3.0-beta.2)
|
||||
To sync, either update .version or tag with 'v0.3.0-beta.3'
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
### Example 1: Check Version During Release
|
||||
|
||||
```bash
|
||||
# Before tagging a new release
|
||||
.github/skills/utility-version-check-scripts/run.sh
|
||||
```
|
||||
|
||||
### Example 2: CI/CD Integration
|
||||
|
||||
```yaml
|
||||
- name: Validate Version
|
||||
run: .github/skills/scripts/skill-runner.sh utility-version-check
|
||||
```
|
||||
|
||||
## Version Normalization
|
||||
|
||||
The skill normalizes both the `.version` file content and git tag by:
|
||||
- Stripping leading `v` prefix (e.g., `v1.0.0` → `1.0.0`)
|
||||
- Removing newline and carriage return characters
|
||||
- Comparing normalized versions
|
||||
|
||||
This allows flexibility in tagging conventions while ensuring consistency.
|
||||
|
||||
## Error Handling
|
||||
|
||||
- **No .version file**: Exits with 0 (skip check)
|
||||
- **No git tags**: Exits with 0 (skip check, allows commits before first tag)
|
||||
- **Version mismatch**: Exits with 1 and provides guidance
|
||||
- **Git errors**: Script fails with appropriate error message
|
||||
|
||||
## Related Skills
|
||||
|
||||
- [utility-bump-beta](./utility-bump-beta.SKILL.md) - Increment beta version
|
||||
- [build-check-go](../build-check-go.SKILL.md) - Verify Go build integrity
|
||||
|
||||
## Notes
|
||||
|
||||
- This check is **non-blocking** when no tags exist (allows initial development)
|
||||
- Version format is flexible (supports semver, beta, alpha suffixes)
|
||||
- Used in CI/CD to prevent merging PRs with version mismatches
|
||||
- Part of the release automation workflow
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-12-20
|
||||
**Maintained by**: Charon Project
|
||||
**Source**: `scripts/check-version-match-tag.sh`
|
||||
Reference in New Issue
Block a user