...
Table of Contents | ||
---|---|---|
|
1. Create a gpg KEY
For those who are RM for the first time, this step needs to be carried out.
...
This <key id> is the file name of a .rev file under ~ / .gnupg / openpgp-revocs.d /
Next, check the link below to check if the upload was successful. It takes about a minute to find
...
Check the show full-key hashes under advance when checking
If the upload is not successful, you can manually submit the key on the web page
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <servers> <!-- Apache Repo Settings --> <server> <id>apache.snapshots.https</id> <username>{user-id}</username> <password>{user-pass}</password> </server> <server> <id>apache.releases.https</id> <username>{user-id}</username> <password>{user-pass}</password> </server> </servers> </settings> <profiles> <profile> <id>apache-release</id> <properties> <gpg.keyname>你的KEYID<keyname>Your KEYID</gpg.keyname><!-- Your GPG Keyname here --> <!-- Use an agent: Prevents being asked for the password during the build --> <gpg.useagent>true</gpg.useagent> <gpg.passphrase>你的私钥的密码<passphrase>The password of your private key</gpg.passphrase> </properties> </profile> </profiles> |
...
If you find that after the key is added "unverified" , remember to bind the email used in the GPG key to your github account (https://github.com/settings/emails )。
2. Ready to release version
(Note: Different projects may adopt different branch management methods, which are for reference only)
...
This is the current branch graph. The last updated position after the creation of rel / 0.8 is shown in yellow, and the master is still moving forward.
First of all, we need to determine what content needs to enter the new release, for example, we want to put 1, 2 into 0.8.1, then add the two PR submissions to the rel one by one by the method of `git cherry-pick` /0.8 branch (you may have to resolve a lot of conflicts ...).
...
Then start the official release.
3.release version
3.1 Automatically tag on github and generate various signature files
...
After the login is successful, Repositories in your left column will appear Staging Repositories, click on him, you can see the list below, find the line with the project name "orgapacheiotdb-number", select it and click the close button above
Then start waiting to complete the close, during which you can click refresh to update the page. You can also select iotdb and click the activity below to view the specific close progress and problems.
...
Let's temporarily use iotdb-dist-dev as the root directory, you will see the current directory as shown below (there should be no 0.8.1 folder)
Then create the 0.8.1 folder as shown in the figure above, and then create the 0.8.1 / rc1 folder.
...
[5] https://dist.apache.org/repos/dist/dev/incubator/iotdb/0.8.1/rc2/RELEASE_NOTES.md
[6] https://dist.apache.org/repos/dist/dev/incubator/iotdb/KEYS
The red words above need to be changed.
...
$ git show release/0.8.1 --name-only
4 What if the vote fails
When the vote fails, the battlefield needs to be cleared first, and then reposted.
...
5. What to do after the vote is passed
After 72 hours of voting, a summary email should be made:
...
Log in with an apache account, find the voting thread, and then the permalink on the right is a permanent link. Just click and copy the URL.
Subscribe to the general mailing list
...
Panel |
---|
Theme:[VOTE] Release Apache IoTDB 0.9.0 Hello all, The vote will be passed if there is no -1 vote ( as there are 3 IPMC +1 votes already), but we still hope all other IPMCs vote for it. Please vote accordingly: |
6. What to do after the general list vote
First send a summary email to the general mailing list
...
Note: All apache mirrors will start synchronizing these files, which will usually be synchronized within 24 hours. After that, you can send a statement email.
7. Delete the old version of the release file
Apache seems to require that when the new versions are synchronized, delete the files of the old version (for example, 0.8.0-incubating in this example), but I checked several projects, this is not absolutely required. . It is recommended to keep some versions.
...
svn commit -m "Write commit log"
8. Officially release Maven files
Go to https://repository.apache.org/#welcome, log in to your account, then go to Staging Repositories to select the version you closed before and select release. Finished.
9. github publish release
Go to https://github.com/apache/incubator-iotdb/releases and change the previous this is a pre-release & save draft to publish release.
10. Update the code of the release branch to the latest
In our project, the release branch always points to the latest release version.
...
git merge -X theirs release/0.8.1
11. Update JIRA
Set the released version to "released" and set the "release-date"
Add the next version to the versions.
I do n’t have permission so I have n’t tested it yet
12. Update the download link on the official website
Website Directory:
https://github.com/apache/incubator-iotdb-website
...
For how to modify and add new versions on the official website, you can refer How to update IoTDB website for a new release如何更新 IoTDB 官网
In fact, it is mainly to add one item, and the version number should be changed.
...
Change the above version to your final version.
13. Tell the world!
After you confirm that most of the mirrors are synchronized, you can tell the world to release a new version of the information:
...
More reference examples:https://lists.apache.org/list.html?dev@iotdb.apache.org:gte=1d:announce
Publish Python package to Pypi
First, you must have an account, register here:https://pypi.org/account/register/
...
python3 -m pip install --user --upgrade twine
When I execute the above command, I get an error: creating build/temp.linux-x86_64-3.6/build/temp.linux-x86_64-3.6
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.6m -c build/temp.linux-x86_64-3.6/_openssl.c -o build/temp.linux-x86_64-3.6/build/temp.linux-x86_64-3.6/_openssl.o -Wconversion -Wno-error=sign-conversion
build/temp.linux-x86_64-3.6/_openssl.c:22:24: fatal error: pyconfig.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
解决办法:sudoSolution:sudo apt install python3.6-dev (My python is version 3.6)
...
https://packaging.python.org/tutorials/packaging-projects/
Publish Docker image package to DockerHub
First, you need to have a username under the dockerhub website.
...
Use docker images to confirm the container and the tag of the container again:
Taking the above picture as an example, the reason why apache / iotdb 0.9.0 and 0.9.1 have the same Image ID is that when I built 0.9.1, I mistakenly specified the version number as 0.9.0.
...