Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to complete a version release of Apache

2025-02-21 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >

Share

Shulou(Shulou.com)06/02 Report--

Understand the content and process of Apache release

In general, Source Release is the focus of Apache and a must for distribution, while Binary Release is optional, and Dubbo can choose whether to publish binary packages to Apache repositories or to Maven central repositories.

Please refer to the following links for more release guides on ASF:

Apache Release Guide

Apache Release Policy

Maven Release Info

Prepare for the local build environment

It mainly includes signature tools, Maven warehouse certification related preparation.

Install GPG, see https://www.gnupg.org/download/index.html

Such as Mac OS

$brew install gpg$ gpg-- version # check version, which should be 2.x

Using gpg to generate key

$gpg2-- full-gen-keygpg (GnuPG) 2.0.12 Copyright (C) 2009 Free Software Foundation, Inc.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection? 1RSA keys may be between 1024 and 4096 bits long.What keysize do you want? (2048) 4096Requested keysize is 4096 bitsPlease specify how long the key should be valid. 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n yearsKey is valid for? (0) Key does not expire at allIs this correct? YGnuPG needs to construct a user ID to identify your key.Real name: Robert Burrell DonkinEmail address: rdonkin@apache.orgComment: CODE SIGNING KEYYou selected this USER-ID: "Robert Burrell Donkin (CODE SIGNING KEY)" Change (N) ame, (C) omment, (E) mail or (O) kay/ (Q) uit? OYou need a Passphrase to protect your secret key. # fill in the password, which will be often used in the future packaging process

View key id

$gpg-- list-keyspub rsa4096/28681CB1 2018-04-2 "28681CB1 is key iduid [ultimate] liujun (apache-dubbo) sub rsa4096/D3D6984B 2018-04-2". Send public key to keyserver$ gpg-- keyserver pgpkeys.mit.edu-- send-key 28681CB1# through key id, where pgpkeys.mit.edu is a random keyserver,keyserver list: https://sks-keyservers.net/status/, because they are automatically synchronized with each other, so you can choose any one.

If you have multiple public key, set the default key

~ / .gnupg/gpg.conf

# If you have more than 1 secret key in your keyring, you may want to# uncomment the following option and set your preferred keyid.default-key 28681CB1

Generate key when prompted

Set up Apache Central Warehouse

... Apache.snapshots.https apache.releases.https... Gpg.passphrase

The parent pom of the Dubbo project is apache pom

Org.apache apache 19

Add the following to .m2 / settings.xml

All passwords should be [maven-encryption-plugin] (http://maven.apache.org/guides/mini/guide-encryption.html) encrypted and then filled in and packaged & uploaded)

Pull a new branch from the trunk branch as the release branch. If you want to release version 2.6.4 now, pull the new branch 2.6.4-release from 2.6.x. After that, the modifications and tagging involved in 2.6.4 Release Candidates are carried out in the 2.6.4-release branch, and finally merged into the trunk branch after the final release.

First of all, verify whether maven component packaging, source source code packaging, signature and so on are working properly in the 2.6.4-release branch.

$mvn clean install-Papache-release$ mvn deploy# pushes the snapshot package to the maven central warehouse, which is in the staging state

Publish with maven-release-plugin

$mvn release:clean$ mvn release:prepare-Papache-release-Darguments= "- DskipTests"-DautoVersionSubmodules=true-Dusername=YOUR GITHUB ID# after execution: 1. Generate source.zip package; 2. Type out tag and push it to github warehouse; 3. The branch version is automatically upgraded to 2.6.4-SNAPSHOT and changes are pushed to the github repository

Execute release:perform and make official release

$mvn-Prelease release:perform-Darguments= "- DskipTests"-DautoVersionSubmodules=true-Dusername=YOUR GITHUB ID# all artifacts published to the configured remote maven central repository, in staging status

First use dryRun to verify whether it is ok

$mvn release:prepare-Papache-release-Darguments= "- DskipTests"-DautoVersionSubmodules=true-Dusername=YOUR GITHUB ID-DdryRun=true

After the verification is passed, execute release:prepare

Prepare for Apache release

Prepare the svn native environment (Apache uses svn to host the project's publication)

Dubbo checkout to the local directory

$svn checkout https://dist.apache.org/repos/dist/dev/incubator/dubbo# assumes that the local directory is ~ / apache/incubator/dubbo

The current release is 2.6.4, create a new directory

$cd ~ / apache/incubator/dubbo # dubbo svn root directory $mkdir 2.6.4

Add public key to the KEYS file. KEYS mainly allows voters to import it locally to verify the correctness of sign.

Copy the source.zip package under the Dubbo root directory to the svn local warehouse dubbo/2.6.4

Generate sha512 signature

$shasum-a512 dubbo-incubating-2.6.4-source-release.zip > > dubbo-incubating-2.6.4-source-release.zip.sha512

If there is a binary release to be released at the same time

# under module of dubbo project distribution, execute: under the $mvn install# target directory, copy bin-release.zip and bin-release.zip.asc to svn local warehouse dubbo/2.6.4# reference step 6 to generate sha512 signature

Submit to Apache svn

$svn status$ svn commit-m 'prepare for 2.6.4 RC1' verify Release Candidates

The certificate link includes, but is not limited to, the following contents and forms:

Check signatures and hashes are good

Sha512 dubbo-incubating-$ {release_version}-bin-release.zip.sha512sha512 dubbo-incubating-$ {release_version}-source-release.zip.sha512

Unzip dubbo-incubating-$ {release_version}-source-release.zip to the default directory and check the following:

Directory with incubator in name

Dubbo-incubating-$ {release_version}-bin-release

DISCLAIMER file exists

LICENSE and NOTICE file exists and contents are good

All files and no binary files exist

All files has standard ASF License header

Can compile from source

All unit tests can pass

Mvn clean test # This will run all unit tests# you can also open rat and style plugin to check if every file meets requirements.mvn clean install-Drat.skip=false-Dcheckstyle.skip=false

Release candidates match with corresponding tags, you can find tag link and hash in vote email.

Enter the vote

Voting is divided into two stages:

Dubbo community voting, initiate voting email to dev@dubbo.apache.org. After the community developer Review, and counted three binding votes that agreed to release the version, you can proceed to the next stage of voting.

Apache community voting, initiate voting email to general@apache.org. In Apache PMC Review, and statistics to the three unified version of the binding vote, can be officially released.

Message template:

Hello Dubbo Community,This is a call for vote to release Apache Dubbo (Incubating) version 2.6.4.The release candidates: https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.4/Git tag for the release: https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.4Hash for the release tag:afab04c53edab38d52275d2a198ea1aff7a4f41eRelease Notes: https://github.com/apache/incubator-dubbo/releases/tag/untagged-4775c0a22c60fca55118The artifacts have been signed with Key: 28681CB1 Which can be found in the keys file: https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYSThe vote will be open for at least 72 hours or until necessary number of votes are reached.Please vote accordingly: [] + 1 approve [] + 0 no opinion []-1 disapprove with the reasonThanks,The Apache Dubbo (Incubating) Team officially released

Submit the release package under the https://dist.apache.org/repos/dist/dev/incubator/dubbo directory to https://dist.apache.org/repos/dist/release/incubator/dubbo/ to complete the official release.

Send an email to dev@dubbo.apache.org and general@apache.org to inform the community that the release is complete.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Servers

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report