blob: c4afbbbb3486a16f4d1b3ad841ee6b5e37eef56e [file] [view]
<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->
# How to vote for a release
For non-Chinese users, please read
<https://cwiki.apache.org/confluence/display/IOTDB/Validating+a+staged+Release>
## Download everything under voting version / rc
<https://dist.apache.org/repos/dist/dev/iotdb/>
## Import the public key of the release manager
<https://dist.apache.org/repos/dist/dev/iotdb/KEYS>
At the bottom is the public key of the Release Manager (RM)
Install gpg2
### the first method
```
The beginning of the public key is this
pub rsa4096 2019-10-15 [SC]
10F3B3F8A1201B79AA43F2E00FC7F131CAA00430
Or this
pub rsa4096/28662AC6 2019-12-23 [SC]
```
Download the public key
```bash
gpg2 --receive-keys 10F3B3F8A1201B79AA43F2E00FC7F131CAA00430 (or 28662AC6)
# or (Designation keyserver)
gpg2 --keyserver p80.pool.sks-keyservers.net --recv-keys 10F3B3F8A1201B79AA43F2E00FC7F131CAA00430 (或 28662AC6)
```
### The second method
Copy the following paragraph into a text file and name it `key.asc`
```
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
...
-----END PGP PUBLIC KEY BLOCK-----
```
Import RM's public key to your computer
```bash
gpg2 --import key.asc
```
## Verify the source distribution
- Verify that there are NOTICE, LICENSE, and the content is correct.
- Verify README, RELEASE_NOTES
- Validation header
```bash
mvn -B apache-rat:check
```
- Verify signatures and hashes
```bash
gpg2 --verify apache-iotdb-0.12.0-source-release.zip.asc apache-iotdb-0.12.0-source-release.zip
appear Good Singnature
shasum -a512 apache-iotdb-0.12.0-source-release.zip
Compared with the corresponding .sha512, the same is fine.
```
- Verify compilation
```bash
mvnw install
Should end up all SUCCESS
```
## Verifying the binary release
- Verify that there are NOTICE, LICENSE, and the content is correct.
- Verify README, RELEASE_NOTES
- Verify signatures and hashes
```bash
gpg2 --verify apache-iotdb-0.12.0-bin.zip.asc apache-iotdb-0.12.0-bin.zip
appear Good Singnature
shasum -a512 apache-iotdb-0.12.0-bin.zip
Compared with the corresponding .sha512, the same is fine.
```
- Verify that it starts and the sample statements execute correctly
```bash
nohup ./sbin/start-server.sh >/dev/null 2>&1 &
./sbin/start-cli.sh
CREATE DATABASE root.turbine;
CREATE TIMESERIES root.turbine.d1.s0 WITH DATATYPE=DOUBLE, ENCODING=GORILLA;
insert into root.turbine.d1(timestamp,s0) values(1,1);
insert into root.turbine.d1(timestamp,s0) values(2,2);
insert into root.turbine.d1(timestamp,s0) values(3,3);
select * from root;
Prints the following:
+-----------------------------------+------------------+
| Time|root.turbine.d1.s0|
+-----------------------------------+------------------+
| 1970-01-01T08:00:00.001+08:00| 1.0|
| 1970-01-01T08:00:00.002+08:00| 2.0|
| 1970-01-01T08:00:00.003+08:00| 3.0|
+-----------------------------------+------------------+
```
## Sample mail
Email can be sent after verification
```
Hi,
+1 (PMC could binding)
The source release:
LICENSE and NOTICE [ok]
signatures and hashes [ok]
All files have ASF header [ok]
could compile from source: ./mvnw clean install [ok]
The binary distribution:
LICENSE and NOTICE [ok]
signatures and hashes [ok]
Could run with the following statements [ok]
CREATE DATABASE root.turbine;
CREATE TIMESERIES root.turbine.d1.s0 WITH DATATYPE=DOUBLE, ENCODING=GORILLA;
insert into root.turbine.d1(timestamp,s0) values(1,1);
insert into root.turbine.d1(timestamp,s0) values(2,2);
insert into root.turbine.d1(timestamp,s0) values(3,3);
select * from root;
Thanks,
xxx
```
## small tools
- Print out lines containing certain characters (just look at the top output, you don't need to look at the bottom file)
```bash
find . -type f -exec grep -i "copyright" {} \; -print | sort -u
find **/src -type f -exec grep -i "copyright" {} \; -print | sort -u
```