diff options
Diffstat (limited to 'admin/release-estimator/README.md')
-rw-r--r-- | admin/release-estimator/README.md | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/admin/release-estimator/README.md b/admin/release-estimator/README.md new file mode 100644 index 0000000..a51f731 --- /dev/null +++ b/admin/release-estimator/README.md @@ -0,0 +1,68 @@ +# Release Estimator +This tool monitors the HAProxy stable branches and calculates a proposed +release date for the next minor release based on the bug fixes that are in +the queue. + + +## Requirements + - Python 3.x + - [lxml](https://lxml.de/installation.html) + + +## Usage + release-estimator.py [-h] [--print] [--to-email TO_EMAIL] + [--from-email FROM_EMAIL] [--send-mail] + + optional arguments: + -h, --help show this help message and exit + --print Print email only + --to-email TO_EMAIL Send email to <email> + --from-email FROM_EMAIL + Send email from <email> + --send-mail Send email + + +## Examples + + +### Print only: + ./release-estimator.py --print + + +### Send email: + ./release-estimator.py --send-mail --from-email from@domain.local --to-email to@domain.local + + +## How it works +For each version we check the age and apply the following logic: + - Skip the release if it's: + - older than MAX_VERSION_AGE + - older than MAX_VERSION_AGE_NONLTS days and an odd numbered release + (1.9,2.1,2.3) + + - For all other valid releases we will then collect the number of bug fixes + in queue for each of the defined severity levels: + - BUG + - BUILD + - MINOR + - MEDIUM + - MAJOR + - CRITICAL + + We'll then begin calculating the proposed release date based on the last + release date plus the first commit date of the first bug fix for the defined + severity level. + + By default the proposed release dates use the following padding: + (Can be modified in THRESHOLDS) + - BUG/BUILD/MINOR - 28 days + - MEDIUM - 30 days + - MAJOR - 14 days + - CRITICAL - 2 days + + After we have a proposed release date we will assign a release urgency + to it. As we get closer to the proposed release date the urgency level changes. + By default the urgency levels and their times are: + - WARNING - proposed date is 7 days or less + - NOTICE - proposed date is 21 days or less + - INFO - proposed date is longer than the above |