# How to vote for a release (如何给发布版本投票)

For non-Chinese users, please read https://cwiki.apache.org/confluence/display/IOTDB/Validating+a+staged+Release

# 下载投票的 版本/rc 下的所有内容

https://dist.apache.org/repos/dist/dev/incubator/iotdb/

# 导入发布经理的公钥

https://dist.apache.org/repos/dist/dev/incubator/iotdb/KEYS

最下边有 Release Manager (RM) 的公钥

安装 gpg2

# 第一种方法

公钥的开头是这种
pub   rsa4096 2019-10-15 [SC]
      10F3B3F8A1201B79AA43F2E00FC7F131CAA00430
      
或这种

pub   rsa4096/28662AC6 2019-12-23 [SC]
1
2
3
4
5
6
7

下载公钥

gpg2 --receive-keys 10F3B3F8A1201B79AA43F2E00FC7F131CAA00430 (或 28662AC6)

或 (指定 keyserver) 
gpg2 --keyserver p80.pool.sks-keyservers.net --recv-keys 10F3B3F8A1201B79AA43F2E00FC7F131CAA00430 (或 28662AC6)
1
2
3
4

# 第二种方法

把下边这段复制到一个文本文件中,起个名叫 key.asc

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
...
-----END PGP PUBLIC KEY BLOCK-----
1
2
3
4

导入 RM 的公钥到自己电脑

gpg2 --import key.asc
1

# 验证源码发布版

  • (孵化阶段)验证是否名字中有 incubating

  • 验证是否有 DISCLAIMER、NOTICE、LICENSE,以及内容是否正确。

  • 验证 README、RELEASE_NOTES

  • 验证 header

mvn -B apache-rat:check
1
  • 验证签名和哈希值
gpg2 --verify apache-iotdb-0.9.0-incubating-source-release.zip.asc apache-iotdb-0.9.0-incubating-source-release.zip

出现 Good Singnature 

shasum -a512 apache-iotdb-0.9.0-incubating-source-release.zip

和对应的 .sha512 对比,一样就可以。
1
2
3
4
5
6
7
  • 验证编译
mvnw.sh install

应该最后全 SUCCESS
1
2
3

# 验证二进制发布版

  • (孵化阶段)验证是否名字中有 incubating

  • 验证是否有 DISCLAIMER、NOTICE、LICENSE,以及内容是否正确。

  • 验证 README、RELEASE_NOTES

  • 验证签名和哈希值

gpg2 --verify apache-iotdb-0.9.0-incubating-bin.zip.asc apache-iotdb-0.9.0-incubating-bin.zip

出现 Good Singnature 

shasum -a512 apache-iotdb-0.9.0-incubating-bin.zip

和对应的 .sha512 对比,一样就可以。
1
2
3
4
5
6
7
  • 验证是否能启动以及示例语句是否正确执行
./sbin/start-server.sh

./sbin/start-client.sh

SET STORAGE GROUP TO 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;

打印如下内容:
+-----------------------------------+------------------+
|                               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|
+-----------------------------------+------------------+

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 示例邮件

验证通过之后可以发邮件了

Hi,

+1 (PMC could binding)

The source release:
Incubating in name [ok]
Has DISCLAIMER [ok]
LICENSE and NOTICE [ok]
signatures and hashes [ok]
All files have ASF header [ok]
could compile from source: ./mvnw.sh clean install [ok]

The binary distribution:
Incubating in name [ok]
Has DISCLAIMER [ok]
LICENSE and NOTICE [ok]
signatures and hashes [ok]
Could run with the following statements [ok]

SET STORAGE GROUP TO 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 小工具

  • 打印出包含某些字符的行(只看最上边的输出就可以,下边的文件不需要看)
find . -type f -exec grep -i "copyright" {} \; -print | sort -u
find **/src -type f -exec grep -i "copyright" {} \; -print | sort -u
1
2

Copyright © 2020 The Apache Software Foundation.
Apache and the Apache feather logo are trademarks of The Apache Software Foundation

Disclaimer: Apache IoTDB (incubating) (Database for Internet of Things) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.