Skip to content

Improve unstable release versioning strategy #178

@rubenvdlinde

Description

@rubenvdlinde

Context

The unstable release workflow (.github/workflows/unstable-release.yaml) previously computed the version automatically by reading the latest version from main, incrementing the patch number, and appending an -unstable.N suffix. This caused problems:

  • The version in info.xml on development was overwritten by the workflow
  • Developers had no control over the release version
  • Bumping to a specific version (e.g. 0.1.138) was impossible because the workflow would overwrite it

Current Quick Fix

As a temporary fix (commit d2b8542), the workflow now simply reads the version from info.xml as-is. This gives developers control but means:

  • No automatic version incrementing
  • No unstable suffix appended
  • Developers must manually bump the version in info.xml before pushing to development

Desired Behavior

Design a proper versioning strategy that:

  1. Respects the version set in info.xml as the base version
  2. Optionally appends an unstable/pre-release suffix for development builds
  3. Does NOT overwrite info.xml in the repository (no automated commits back)
  4. Works cleanly with the Nextcloud app store (nightly flag)
  5. Considers how main (stable) and development (unstable) releases should be numbered

Options to Consider

  • Option A: Keep current behavior (manual version in info.xml, no suffix)
  • Option B: Read version from info.xml, append -dev.{run_number} for the release tag only (don't modify info.xml)
  • Option C: Use conventional commits / semantic versioning to auto-determine version bumps
  • Option D: Hybrid - read base from info.xml, auto-append build metadata

Priority

Low - current quick fix works for day-to-day development. This is a quality-of-life improvement.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions