Alter PEP440 handling to support both sem and cal

This commit is contained in:
Phil Jay
2023-04-27 08:31:46 +10:00
parent bb0e075f8b
commit f81c317cbd
5 changed files with 46 additions and 9 deletions

View File

@@ -11,6 +11,10 @@ inputs:
description: 'Versioning scheme - semver, or, calver (defaults to semver)' description: 'Versioning scheme - semver, or, calver (defaults to semver)'
required: false required: false
default: 'semver' default: 'semver'
pep440:
description: 'PEP440 compatibility mode - shifts the pre-release version information into build metadata instead'
required: false
default: false
increment: increment:
description: | description: |
Field to increment - major, minor, or, patch (defaults to patch) Field to increment - major, minor, or, patch (defaults to patch)
@@ -69,4 +73,5 @@ runs:
env: env:
current_version: ${{ steps.version-lookup.outputs.CURRENT_VERSION }} current_version: ${{ steps.version-lookup.outputs.CURRENT_VERSION }}
increment: ${{ inputs.increment }} increment: ${{ inputs.increment }}
pep440: ${{ inputs.pep440 }}
scheme: ${{ inputs.scheme }} scheme: ${{ inputs.scheme }}

View File

@@ -16,8 +16,14 @@ pcre_old_calver='^(?P<major>0|[1-9]\d*)-0{0,1}(?P<minor>0|[0-9]\d*)-R(?P<patch>0
input_errors='false' input_errors='false'
scheme="${scheme:-semver}" scheme="${scheme:-semver}"
if [[ "${scheme}" != 'semver' && "${scheme}" != 'calver' && "${scheme}" != 'pep440' ]] ; then if [[ "${scheme}" != 'semver' && "${scheme}" != 'calver' ]] ; then
echo "🛑 Value of 'scheme' is not valid, choose from 'semver', 'calver', or 'pep440'" 1>&2 echo "🛑 Value of 'scheme' is not valid, choose from 'semver' or 'calver'" 1>&2
input_errors='true'
fi
pep440="${pep440:-false}"
if [[ "${pep440}" != 'false' && "${pep440}" != 'true' ]] ; then
echo "🛑 Value of 'pep440' is not valid, choose from 'false' or 'true'" 1>&2
input_errors='true' input_errors='true'
fi fi

View File

@@ -53,6 +53,18 @@ function init_repo {
[[ "$output" = *"Value of 'scheme' is not valid"* ]] [[ "$output" = *"Value of 'scheme' is not valid"* ]]
} }
@test "fails if invalid value for pep440 given" {
init_repo
export pep440="yes"
run ../../version-increment.sh
print_run_info
[ "$status" -eq 8 ] &&
[[ "$output" = *"Value of 'pep440' is not valid"* ]]
}
@test "fails if invalid increment given" { @test "fails if invalid increment given" {
init_repo init_repo
@@ -104,6 +116,23 @@ function init_repo {
[[ "$output" = *"VERSION=1.3.0"* ]] [[ "$output" = *"VERSION=1.3.0"* ]]
} }
@test "increments the minor digit correctly (explicitly not pep440)" {
init_repo
export current_version=1.2.3
export pep404="false"
export increment="minor"
run ../../version-increment.sh
print_run_info
[ "$status" -eq 0 ] &&
[[ "$output" = *"MAJOR_VERSION=1"* ]] &&
[[ "$output" = *"MINOR_VERSION=3"* ]] &&
[[ "$output" = *"PATCH_VERSION=0"* ]] &&
[[ "$output" = *"VERSION=1.3.0"* ]]
}
@test "increments the major digit correctly (semver)" { @test "increments the major digit correctly (semver)" {
init_repo init_repo
@@ -120,11 +149,11 @@ function init_repo {
[[ "$output" = *"VERSION=2.0.0"* ]] [[ "$output" = *"VERSION=2.0.0"* ]]
} }
@test "increments the major digit correctly (pep440)" { @test "increments the major digit correctly (pep440 mode)" {
init_repo init_repo
export current_version=1.2.3 export current_version=1.2.3
export scheme="pep440" export pep404="true"
export increment="major" export increment="major"
run ../../version-increment.sh run ../../version-increment.sh
@@ -199,7 +228,7 @@ function init_repo {
init_repo init_repo
export current_version=10.20.30 export current_version=10.20.30
export scheme="pep440" export pep440="true"
export GITHUB_REF="refs/heads/super-awesome-python" export GITHUB_REF="refs/heads/super-awesome-python"
export short_ref="$(git rev-parse --short HEAD | sed 's/0*//')" export short_ref="$(git rev-parse --short HEAD | sed 's/0*//')"

View File

@@ -75,7 +75,7 @@ fi
# add pre-release info to version if not the default branch # add pre-release info to version if not the default branch
if [[ "${current_ref}" != "refs/heads/${default_branch}" ]] ; then if [[ "${current_ref}" != "refs/heads/${default_branch}" ]] ; then
pre_release="pre.${git_commit}" pre_release="pre.${git_commit}"
if [[ "${scheme}" == 'pep440' ]] ; then if [[ "${pep440:-}" == 'true' ]] ; then
new_version="${new_version}+${pre_release}" new_version="${new_version}+${pre_release}"
else else
new_version="${new_version}-${pre_release}" new_version="${new_version}-${pre_release}"

View File

@@ -53,9 +53,6 @@ if [[ -z "${current_version:-}" ]] ; then
semver) semver)
current_version="0.0.0" current_version="0.0.0"
;; ;;
pep440)
current_version="0.0.0"
;;
calver) calver)
current_version="$(date '+%Y.%-m.0')" current_version="$(date '+%Y.%-m.0')"
;; ;;