Skip to content

Commit e287133

Browse files
committed
Updated AppVeyor config.
- Remove the `+avN` postfix from generated release tags. - Automatically flag builds as experimental if their version number has a prefix beginning with `-x`, e.g. `3.7.1-x.foo.8765432`. Also updated the developers' documentation on version numbering.
1 parent a04e0ef commit e287133

File tree

2 files changed

+63
-18
lines changed

2 files changed

+63
-18
lines changed

appveyor.yml

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,23 @@ build:
5555
after_build:
5656
- ps: |
5757
$env:pov_exe_version = (Get-Content unix\VERSION)
58-
$env:pov_version = "v" + $env:pov_exe_version + '+av' + $env:APPVEYOR_BUILD_NUMBER
58+
$env:pov_tag_version = 'v' + $env:pov_exe_version
59+
$env:pov_build_version = $env:pov_tag_version + '+av' + $env:APPVEYOR_BUILD_NUMBER
60+
$env:pov_build_message = ''
61+
if ($env:pov_exe_version -match '^[0-9.]*-x') {
62+
$env:pov_build_type = 'Experimental'
63+
$env:pov_build_message += '**EXPERIMENTAL: This version of POV-Ray is not part of the official development branch!**'
64+
$env:pov_build_message += "`n`n"
65+
} elseif ($env:pov_exe_version -match '^[0-9.]*-') {
66+
$env:pov_build_type = 'Development'
67+
} else {
68+
$env:pov_build_type = 'Automated'
69+
}
70+
$env:pov_release_type = ($env:pov_build_type).ToLower() + ' release'
71+
$env:pov_build_title = $env:pov_build_type + ' build'
72+
$env:pov_build_message += '**Note:** This is a binary-only ' + $env:pov_release_type + '; to install, copy the binary into an existing POV-Ray 3.7 installation. (Make sure to backup the original binary first.)'
73+
$env:pov_build_message += "`n`n"
74+
$env:pov_build_message += 'The 64-bit binary may require Windows Vista or higher. To run this ' + $env:pov_release_type + ' on an earlier 64-bit version of Windows, you may need to use the 32-bit SSE2 binary instead.'
5975
$env:pov_zipdir = "povray-" + $env:pov_exe_version + '-av' + $env:APPVEYOR_BUILD_NUMBER + $env:artifact_suffix
6076
$env:pov_binary = "Windows\vs10\" + $env:bin_dir + "\pvengine*.exe"
6177
$env:pov_zip = "artifacts\" + $env:pov_zipdir + ".7z"
@@ -73,11 +89,8 @@ artifacts:
7389
deploy:
7490
- provider: GitHub
7591
tag: $(pov_version)
76-
release: Development build $(pov_version)
77-
description: |-
78-
**Note:** This is a binary-only development release; to install, copy the binary into an existing POV-Ray 3.7 installation. (Make sure to backup the original binary first.)
79-
80-
The 64-bit binary may require Windows Vista or higher. To run this development release on an earlier 64-bit version of Windows, you may need to use the 32-bit SSE2 binary instead.
92+
release: $(pov_build_title) $(pov_build_version)
93+
description: $(env:pov_build_message)
8194

8295
auth_token:
8396
secure: WkcFPXyr/SJ9TXixTQyivhfoR9FzlryIbc4deHeQ0eA6YRXL0wQopMYJ6XL1/FJK

source-doc/versioning.md

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
# Version Numbering {#versioning}
22

3-
@section schm Numbering Scheme
3+
Numbering Scheme {#versioning_schm}
4+
================
45

5-
Official POV-Ray builds have version numbers of the form `X.Y.Z`[`-PRE.ID`], where:
6+
The current POV-Ray version numbering scheme is designed to comply with the format and precedence rules of
7+
[Semantic Versioning v2.0.0](http://semver.org/spec/v2.0.0.html). However, it differs notably in the semantics of the
8+
third field of the version number (referred to as _patch version_ in the Semantic Versioning standard), as well as
9+
in a few special uses of the _pre-release_ field.
10+
11+
POV-Ray **source code** version numbers have the form `X.Y.Z`[-`PRE`], where:
612

713
- `X` is the major version number, and is intended to indicate radical changes, such as the planned redesign of the
814
scene description language (SDL).
@@ -11,29 +17,55 @@ Official POV-Ray builds have version numbers of the form `X.Y.Z`[`-PRE.ID`], whe
1117
version number.
1218
- `Z` is a sub-minor version number, and is primarily intended to indicate addition of, or changes in, minor features,
1319
so that they can be tested for from the SDL.
20+
- `PRE`, if present, is a pre-release identifier comprised of alphanumeric and numeric fields separated by dots
21+
(`.`), indicating that the version is a forerunner to, but may still differ in functionality from, what will
22+
ultimately become the official release `X.Y.Z`, and that the version should not be used in a production
23+
environment. It typically has one of the following forms:
24+
- `PHASE.ID`, with `PHASE` being one of `alpha`, `beta` or `rc`, indicates that the version is part of the
25+
main line of development in the respective phase of the development cycle.
26+
- `x.FEATURE.ID` indicates that the version is part of a side line of development, uniquely identified by the
27+
alphanumeric moniker `FEATURE`, which may ultimately contribute to the main line, but in its current state is
28+
deemed unfit to be included for one reason or another.
29+
.
30+
In both cases `ID` is a numeric value uniquely distinguishing the pre-release in question from other pre-releases
31+
of that same phase or side line.
32+
33+
@note
34+
Due to the semantics of the `#version` directive and `version` pseudo-variable, both the `Y` and `Z` portions of
35+
the version number are restricted to single digits.
1436

15-
- `PRE` is a pre-release identifier, such as `alpha`, `beta` or `rc`, indicating that it is a forerunner to, but may
16-
still differ in functionality from, what will ultimately become the official version `X.Y.Z`.
17-
- `ID` is a numeric value uniquely distinguishing the pre-release in question from other pre-releases.
37+
POV-Ray **build** version numbers have the form `X.Y.Z`[-`PREB`][`+BUILD`], where:
1838

19-
Unofficial builds should have version numbers of the form `X.Y.Z-`[`PRE.ID.`]`unofficial`.
39+
- `X.Y.Z` matches the corresponding portion of the source code version.
40+
- `PREB` generally matches the `PRE` portion of the source code version, except that it always contains an
41+
additional `unofficial` entry (separated from the `PRE` portion by a dot if applicable) unless the POV-Ray dev
42+
team has officially authorized the build for public distribution.
43+
- `BUILD`, if present, is an alphanumeric identifier uniquely distinguishing a particular build from other builds
44+
based on the very same source code version. For example, automated builds generated by the AppVeyor service on
45+
behalf of the POV-Ray team carry build identifiers of the form `avN`, where `N` is a running numeric value.
2046

2147

22-
@section chng What To Change
48+
What To Change {#versioning_chng}
49+
==============
2350

2451
When updating a version number, the following files need to be changed accordingly:
2552

2653
- `unix/VERSION`
27-
- `source/backend/povray.h`
54+
- `source/base/version.h`
55+
56+
@warning
57+
When updating the minor or major version number, a host of other files need to be changed as well.
2858

2959

30-
@section auto Automatic Version Numbering
60+
Automatic Version Numbering {#versioning_auto}
61+
===========================
3162

3263
The directory `tools/git/hooks` contains scripts intended to help with version numbering when using Git; to benefit from
3364
them, copy them to the `.git/hooks` directory in your local Git workspace. Whenever you perform a commit, they will
34-
automatically care of the following:
65+
automatically take care of the following:
3566

36-
- Verify that `unix/VERSION` and the various version number variants in `source/backend/povray.h` match.
67+
- Verify that `unix/VERSION` and the various version number variants in `source/base/version.h` match.
3768
- Update the `ID` portion of pre-release versions whenever any files in one of the following directory sub-trees have
38-
been staged for commit: `source`, `vfe`, `mac`, `unix`, `windows` or `libraries`.
69+
been staged for commit: `source`, `vfe`, `platform`, `mac`, `unix`, `windows` or `libraries`. The new value of the
70+
`ID` portion will be the number of minutes elapsed since 2000-01-01 00:00 UTC.
3971

0 commit comments

Comments
 (0)