Skip to content

Implement Multi-language Support and Pre-release Versioning Logic #6

@piraz

Description

@piraz

Extend the action's capabilities to handle complex versioning scenarios across different ecosystems (Python, JS/TS, Go) and formalize the "Ghost Update" strategy.

Key Deliverables:

  1. Advanced Versioning Logic: Implement a Version class supporting PEP 440 (Python) and SemVer (JS/Go), including pre-release stages (alpha,
    beta, rc) and transitions (e.g., 0.9.8b10 -> 0.9.8).
  2. Ghost Update Strategy: Enable in-place metadata updates within the CI runner (modifying init.py or package.json) to ensure build
    artifacts have correct versions without creating "Bump version" commit loops in the Git history.
  3. Language-Specific Providers:
    • Python: Regex-based updates for version tuples and strings.
    • JavaScript: Integration with npm version --no-git-tag-version.
    • Go/Generic: Tag-based versioning.
  4. Enhanced Configuration: Update action.yml with new inputs: language, is-prerelease, prerelease-type, and increment-level.
  5. Architectural Documentation: Add ADR 0002 to document the Hybrid Versioning Strategy.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions