Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: sort tags by version not day of the week #2377

Merged
merged 4 commits into from Aug 2, 2021

Commits on Aug 2, 2021

  1. fix: tag sorting

    When the HEAD commit has multiple tags, they are sorted in order to select the latest so that it can be released.
    
    However, the existing sort would not work if there were multiple commits across a Wednesday and a Thursday.
    
    For example:
    
    ```
    git tag --points-at HEAD --format='%(creatordate)%09%(refname)'
    Wed Jul 28 07:13:19 2021 +0000  refs/tags/v0.0.183
    Thu Jul 29 13:31:07 2021 +0000  refs/tags/v0.0.184
    Thu Jul 29 13:38:42 2021 +0000  refs/tags/v0.0.185
    Thu Jul 29 13:57:44 2021 +0000  refs/tags/v0.0.186
    ```
    
    When using the existing sort the `creatordate` field was targeted and reversed. Alphabetically Thursday comes before Wednesday, so that is reversed and the Wednesday release always comes first:
    ```
    git tag --points-at HEAD --sort=-version:creatordate --format='%(creatordate)%09%(refname)'
    Wed Jul 28 07:13:19 2021 +0000  refs/tags/v0.0.183
    Thu Jul 29 13:57:44 2021 +0000  refs/tags/v0.0.186
    Thu Jul 29 13:38:42 2021 +0000  refs/tags/v0.0.185
    Thu Jul 29 13:31:07 2021 +0000  refs/tags/v0.0.184
    ```
    
    This would make goreleaser attempt to release that existing tag again, and fail.
    
    If we instead sort by reversed `refname` we get the tags ordered by their numeric value, which ignore the day of the week of release:
    ```
    git tag --points-at HEAD --sort=-version:refname --format='%(creatordate)%09%(refname)'
    Thu Jul 29 13:57:44 2021 +0000  refs/tags/v0.0.186
    Thu Jul 29 13:38:42 2021 +0000  refs/tags/v0.0.185
    Thu Jul 29 13:31:07 2021 +0000  refs/tags/v0.0.184
    Wed Jul 28 07:13:19 2021 +0000  refs/tags/v0.0.183
    ```
    
    Allowing the latest version, 0.0.186 in this case, to be targeted for release.
    Ed Maxwell-Lyte committed Aug 2, 2021
    Copy the full SHA
    f83797d View commit details
    Browse the repository at this point in the history
  2. corrected test case

    Ed Maxwell-Lyte committed Aug 2, 2021
    Copy the full SHA
    7396f6a View commit details
    Browse the repository at this point in the history
  3. add space

    Ed Maxwell-Lyte committed Aug 2, 2021
    Copy the full SHA
    9f18337 View commit details
    Browse the repository at this point in the history
  4. remove space

    Ed Maxwell-Lyte committed Aug 2, 2021
    Copy the full SHA
    e3f5562 View commit details
    Browse the repository at this point in the history