-
Notifications
You must be signed in to change notification settings - Fork 79
[dev] What to call released builds
This document serves as a specification for the build / deploy scripts, giving them a single layout for the format to work with. As a developer, you will likely never have to work with this, but having this written down in a central place is useful.
There are three types of releases - Installer
, Python Source
and Standalone Executable
.
These three must exactly (that means case-sensitive and with correct spacing!) appear in the released builds - see the sections detailing this further below.
For every release, you should always make all three available to give users the choice of how to install.
Nightly builds have the format Wrye Bash A.B - C.7z
, where A
is the major version (e.g. 307
), B
is based on the timestamp
(year, month, day, hour, minute - e.g. 201909231227
means year: 2019, month: 09, day: 23, hour: 12 and minute: 27) and C
is the type of release (see above).
You can use this regex to match valid nightly releases and extract the version: Wrye Bash (\d{3,}\.\d{12}) - (?:Installer|Python Source|Standalone Executable)
Production builds are either pre-releases or stable releases.
Pre-releases follow the format Wrye Bash A B C - D.7z
, where A is the major version (e.g. 307
),
B is the type of pre-release this is - could be any string, but as of the time of writing, we only use Beta
-
C is a strictly monotonically increasing (heck yeah, those math courses from university are finally paying off :P)
number, and D is the type of release (see above).
Point releases are okay as well (e.g. when A is 309.1
).
Stable releases simply omit B C
, leaving Wrye Bash A - D.7z
, where A
and D
retain their meaning as defined above.
You can use this regex to match valid production releases and extract the version: Wrye Bash (\d{3,}(?:\.\d+)?)(?: (\w+) (\d+))? - (?:Installer|Python Source|Standalone Executable)