Skip to content

fix: escape dots in majorMinor regex to prevent false tag matches in prepare-release.sh#1893

Draft
Copilot wants to merge 2 commits into
mainfrom
copilot/fix-versioning-issues
Draft

fix: escape dots in majorMinor regex to prevent false tag matches in prepare-release.sh#1893
Copilot wants to merge 2 commits into
mainfrom
copilot/fix-versioning-issues

Conversation

Copilot AI commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

In update_readme_version, majorMinor (e.g. 2.1) was interpolated directly into sed/grep patterns where . matches any character. This caused tags like :2-1.26 to satisfy the 2.1 pattern (dash satisfying the unescaped dot), rewriting 2-1.262.1.4 instead of leaving it alone.

Changes

  • build/prepare-release.sh: escape dots in majorMinor before use in all sed/grep expressions:

    # before
    sed -i "s/:${majorMinor}\.[0-9]*-/:${newVersion}-/g" $readmePath
    # after
    majorMinorEscaped=$(echo "$majorMinor" | sed 's/\./\\./g')
    sed -i "s/:${majorMinorEscaped}\.[0-9]*-/:${newVersion}-/g" $readmePath
  • build/test-prepare-release.sh: new test script with four cases, including the regression case where 2-1.26 must survive a 2.1.3→2.1.4 bump untouched.

  • .github/workflows/test-prepare-release.yml: new CI workflow that runs build/test-prepare-release.sh on any PR or push to main that touches build/prepare-release.sh or build/test-prepare-release.sh, ensuring regressions are caught automatically.

@abdurriq

Copy link
Copy Markdown
Contributor

@copilot Also have the test be run on PRs / changes to the main script so that we can catch regressions.

Copilot AI commented Jun 15, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Also have the test be run on PRs / changes to the main script so that we can catch regressions.

Added .github/workflows/test-prepare-release.yml (commit Add CI workflow to run prepare-release tests on PRs and main). It runs bash build/test-prepare-release.sh on any PR or push to main that touches either build/prepare-release.sh or build/test-prepare-release.sh.

Copilot AI requested a review from abdurriq June 15, 2026 18:40
Comment on lines +17 to +22
name: Test prepare-release script
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Run prepare-release tests
run: bash build/test-prepare-release.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants