Add various build script documents
Added documents that were left over from the build scripts repo.
This commit is contained in:
268
maxscale-system-test/Documentation/RELEASE.md
Normal file
268
maxscale-system-test/Documentation/RELEASE.md
Normal file
@ -0,0 +1,268 @@
|
||||
# Release process
|
||||
|
||||
## Pre-release Checklist
|
||||
|
||||
* Create new release notes and add all fixed bugs, use a previous one as a template
|
||||
* Update the link to the latest release notes in Documentation-Contents.md
|
||||
* Add link to release notes and document major changes in Changelog.md
|
||||
* Add link to release notes in the Upgrading guide
|
||||
|
||||
## 1. Tag
|
||||
|
||||
Release builds are always made using a tag. However, the used
|
||||
tag is a _tentative_ tag, to ensure that there never is a need
|
||||
to _move_ any tag, should the release have to be modified after
|
||||
it has been tagged. All that is needed is to create a new
|
||||
tentative tag.
|
||||
|
||||
The source for release `x.y.z` is tagged with `maxscale-x.y.z-ttN`
|
||||
where `N` is 1 for the first attempt and incremented in case the
|
||||
`x.y.z` source still needs to be modified and the release rebuilt.
|
||||
|
||||
The final tag `maxscale-x.y.z` is created _after_ the packages have
|
||||
been published and we are certain they will not be rebuilt, without
|
||||
also the version number being changed.
|
||||
|
||||
So, ensure that the `maxscale-x.y.z-ttN` has been created and pushed
|
||||
to the repository.
|
||||
|
||||
**NOTE** The tentative suffix - `-ttN` - is **only** used when
|
||||
specifying the tag for the build, it must **not** be present in
|
||||
any other names or paths.
|
||||
|
||||
## 2. Build and upgrade test
|
||||
|
||||
The Jenkins
|
||||
[Build_all](http://localhost:8089/job/build_all/)
|
||||
job should be used for building the packages.
|
||||
|
||||
Note that the above will not work unless you have set up an
|
||||
ssh tunnel to Jenkins:
|
||||
```
|
||||
$ ssh -f -N -L 8089:127.0.0.1:8089 vagrant@max-tst-01.mariadb.com
|
||||
```
|
||||
|
||||
Usually two runs are done: one for _release_ and one for _debug_ packages.
|
||||
|
||||
### Parameters to define
|
||||
|
||||
Use defaults for all other parameters.
|
||||
|
||||
#### source
|
||||
```
|
||||
refs/tags/maxscale-x.y.z-ttN
|
||||
```
|
||||
|
||||
#### target
|
||||
Debug build:
|
||||
```
|
||||
maxscale-x.y.z-debug
|
||||
```
|
||||
|
||||
Release build:
|
||||
```
|
||||
maxscale-x.y.z-release
|
||||
```
|
||||
|
||||
#### cmake_flags
|
||||
|
||||
Debug build:
|
||||
```
|
||||
-DBUILD_TESTS=Y -DCMAKE_BUILD_TYPE=Debug -DBUILD_MMMON=Y -DBUILD_CDC=Y
|
||||
```
|
||||
|
||||
Release build:
|
||||
```
|
||||
-DBUILD_TESTS=N -DBUILD_MMMON=Y -DBUILD_CDC=Y
|
||||
```
|
||||
|
||||
#### run_upgrade_test
|
||||
|
||||
```
|
||||
yes
|
||||
```
|
||||
|
||||
#### old_target
|
||||
|
||||
Name of some existing Maxscale repository
|
||||
(please check http://max-tst-01.mariadb.com/ci-repository/
|
||||
before build).
|
||||
|
||||
```
|
||||
maxscale-x'.y'.z'-release
|
||||
```
|
||||
|
||||
### Options for 1.4.x build
|
||||
|
||||
For `1.4` builds the default values of the following parameters
|
||||
should be changed:
|
||||
|
||||
#### use_mariadbd
|
||||
|
||||
```
|
||||
yes
|
||||
```
|
||||
|
||||
#### cnf_file
|
||||
|
||||
```
|
||||
maxscale.cnf.minimum.1.4.4
|
||||
```
|
||||
|
||||
#### maxadmin_command
|
||||
|
||||
```
|
||||
maxadmin -pmariadb show services
|
||||
```
|
||||
|
||||
## 3. Copying to code.mariadb.com
|
||||
|
||||
ssh to `code.mariadb.com` with your LDAP credentials.
|
||||
|
||||
Create directories and copy repositories files:
|
||||
|
||||
```bash
|
||||
cd /home/mariadb-repos/mariadb-maxscale/
|
||||
mkdir x.y.z
|
||||
mkdir x.y.z-debug
|
||||
cd x.y.z
|
||||
rsync -avz --progress --delete -e ssh vagrant@max-tst-01.mariadb.com:/home/vagrant/repository/maxscale-x.y.z-release/mariadb-maxscale/ .
|
||||
cd ../x.y.z-debug
|
||||
rsync -avz --progress --delete -e ssh vagrant@max-tst-01.mariadb.com:/home/vagrant/repository/maxscale-x.y.z-debug/mariadb-maxscale/ .
|
||||
```
|
||||
|
||||
## 4. Email webops-requests@mariadb.com
|
||||
|
||||
Email example:
|
||||
|
||||
Subject: `MaxScale x.y.z release`
|
||||
|
||||
```
|
||||
Hello,
|
||||
|
||||
Please publish Maxscale x.y.z binaries on web page.
|
||||
Repos are on code.mariadb.com /home/mariadb-repos/mariadb-maxscale/x.y.z
|
||||
|
||||
symlink 'x.y' should be set to 'x.y.z'
|
||||
symlink 'latest' [should|should NOT] be set to 'x.y.z'
|
||||
|
||||
Also please make sure that debug binaries are not visible from
|
||||
https://mariadb.com/my_portal/download/maxscale
|
||||
```
|
||||
Replace `x.y.z` with the correct version.
|
||||
|
||||
**NOTE** Sometimes - especially at _big_ releases when the exact release
|
||||
date is fixed in advance - the following steps 5, 6 and 7 are done right
|
||||
after the packages have been uploaded, to ensure that the steps 4 and 8
|
||||
can be done at the same time.
|
||||
|
||||
## 5. Create the final tag
|
||||
|
||||
Once the packages have been made available for download, create
|
||||
the final tag
|
||||
```
|
||||
$ git checkout maxscale-x.y.z-ttN
|
||||
$ git tag -a -m "Tag for MaxScale x.y.z" maxscale-x.y.z
|
||||
$ git push --tags origin
|
||||
```
|
||||
and remove the tentative tag(s)
|
||||
```
|
||||
$ git tag -d maxscale-x.y.z-ttN
|
||||
$ git push origin :refs/tags/maxscale-x.y.z-ttN
|
||||
```
|
||||
|
||||
## 6. Create the branch
|
||||
|
||||
Release `x.y.z` is typically developed in the branch `x.y`.
|
||||
Once `x.y.z` has been released, the branch `x.y.z` also needs
|
||||
to be created.
|
||||
```
|
||||
$ git checkout maxscale-x.y.z
|
||||
$ git checkout -b x.y.z
|
||||
$ git push origin x.y.z
|
||||
```
|
||||
|
||||
## 7. Update the release date
|
||||
|
||||
Once the branch `x.y.z` has been created and the actual release
|
||||
date of the release is known, update the release date in the
|
||||
release notes.
|
||||
```
|
||||
$ git checkout x.y.z
|
||||
$ # Update release date in .../MaxScale-x.y.z-Release-Notes.md
|
||||
$ git add .../MaxScale-x.y.z-Release-Notes.md
|
||||
$ git commit -m "Update release date"
|
||||
$ git push origin x.y.z
|
||||
```
|
||||
|
||||
**NOTE** The `maxscale-x.y.z` tag is **not** moved. That is, the
|
||||
release date is _not_ available in the documentation marked with
|
||||
the tag `maxscale-x.y.z` but _is_ available in the branch marked
|
||||
with `x.y.z`.
|
||||
|
||||
Merge `x.y.z` to `x.y`.
|
||||
```
|
||||
$ git checkout x.y
|
||||
$ git merge x.y.z
|
||||
```
|
||||
|
||||
At this point, the last commits on branches `x.y` and `x.y.z`
|
||||
should be the same and the commit should be the one containing the
|
||||
update of the release date. Further, that commit should be the only
|
||||
difference between the branches and the tag `maxscale-x.y.z`.
|
||||
**Check that indeed is the case**.
|
||||
|
||||
## 8. Update documentation
|
||||
|
||||
Email webops-requests@mariadb.com with a mail containing the
|
||||
following.
|
||||
```
|
||||
subject: Please update MaxScale x.y knowledge base
|
||||
body:
|
||||
---
|
||||
Hi,
|
||||
|
||||
Please update https://mariadb.com/kb/en/mariadb-enterprise/mariadb-maxscale-XY/
|
||||
|
||||
from https://github.com/mariadb-corporation/MaxScale/tree/x.y.z/Documentation
|
||||
|
||||
using the "new" algorithm that does not honor single line-breaks.
|
||||
|
||||
Br,
|
||||
Your Name
|
||||
```
|
||||
## 9. Send release email to mailing list
|
||||
|
||||
Email maxscale@googlegroups.com with a mail containing the following.
|
||||
```
|
||||
subject: MariaDB MaxScale x.y.z available for download
|
||||
body:
|
||||
---
|
||||
Hi,
|
||||
|
||||
We are happy to announce that MariaDB MaxScale x.y.z GA is now available for download. This is a bugfix release.
|
||||
|
||||
The Jira list of fixed issues can be found here(ADD LINK HERE).
|
||||
|
||||
* [MXS-XYZ] BUG FIX DESCRIPTION HERE
|
||||
|
||||
Binaries:
|
||||
https://mariadb.com/downloads/maxscale
|
||||
https://mariadb.com/my_portal/download
|
||||
|
||||
Documentation:
|
||||
LINK TO KB DOCUMENTATION HERE
|
||||
|
||||
Release notes:
|
||||
LINK TO RELEASE NOTES HERE
|
||||
|
||||
Source code:
|
||||
LINK TO maxscale-x.y.z TAG HERE
|
||||
|
||||
Please report any issues on Jira:
|
||||
https://jira.mariadb.org/projects/MXS/issues
|
||||
|
||||
On behalf of the entire MaxScale team,
|
||||
|
||||
YOUR NAME HERE
|
||||
```
|
Reference in New Issue
Block a user