-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BREAKING CHANGE] Simplified the release process #12903
Changes from 4 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,46 +3,12 @@ Apache SkyWalking release guide | |
If you're a committer, you can learn how to release SkyWalking in The Apache Way and start the voting process by reading this document. | ||
|
||
|
||
## Set up your development environment | ||
Follow the steps in the [Apache maven deployment environment document](http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env) | ||
to set gpg tool and encrypt passwords. | ||
## Prerequisites | ||
Add your GPG public key into the [SkyWalking GPG KEYS](https://dist.apache.org/repos/dist/release/skywalking/KEYS) file. | ||
- If you are a PMC member, use your Apache ID and password to log in this svn, and update the file. **Don't override the existing file.** | ||
- If you are a committer, please ask a PMC member to help you. | ||
|
||
Use the following block as a template and place it in `~/.m2/settings.xml`. | ||
|
||
``` | ||
<settings> | ||
... | ||
<servers> | ||
<!-- To publish a snapshot of some part of Maven --> | ||
<server> | ||
<id>apache.snapshots.https</id> | ||
<username> <!-- YOUR APACHE LDAP USERNAME --> </username> | ||
<password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password> | ||
</server> | ||
<!-- To stage a release of some part of Maven --> | ||
<server> | ||
<id>apache.releases.https</id> | ||
<username> <!-- YOUR APACHE LDAP USERNAME --> </username> | ||
<password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password> | ||
</server> | ||
... | ||
</servers> | ||
</settings> | ||
``` | ||
|
||
## Add your GPG public key | ||
1. Add your GPG public key into the [SkyWalking GPG KEYS](https://dist.apache.org/repos/dist/release/skywalking/KEYS) file. | ||
If you are a committer, use your Apache ID and password to log in this svn, and update the file. **Don't override the existing file.** | ||
1. Upload your GPG public key to the public GPG site, such as [MIT's site](http://pgp.mit.edu:11371/). This site should be in the | ||
Apache maven staging repository checklist. | ||
|
||
## Test your settings | ||
This step is only for testing purpose. If your env is correctly set, you don't need to check every time. | ||
``` | ||
./mvnw clean install -Pall (this will build artifacts, sources and sign) | ||
``` | ||
|
||
## Prepare for the release | ||
## Tag for the release | ||
|
||
- Set the version number that you are about to release. | ||
|
||
|
@@ -76,24 +42,14 @@ git tag v${RELEASE_VERSION} | |
git push origin v${RELEASE_VERSION} | ||
``` | ||
|
||
## Stage the release | ||
## Build the binary package | ||
|
||
```bash | ||
./mvnw flatten:flatten install deploy -DskipTests | ||
./mvnw install package -DskipTests | ||
``` | ||
|
||
This command will build, sign, and deploy the release to the Apache staging repository. | ||
You should be prompted for your GPG passphrase during the deployment process. | ||
If no prompt is present, you can set the passphrase in the environment variable `MAVEN_GPG_PASSPHRASE`: | ||
The release will be packaged locally as `apache-skywalking-apm-x.y.z.tar.gz` in the `{PROJECT_ROOT}/dist` directory. | ||
|
||
```bash | ||
MAVEN_GPG_PASSPHRASE=<your-gpg-passphrase> ./mvnw flatten:flatten install deploy -DskipTests | ||
``` | ||
|
||
- The release will be automatically inserted into a temporary staging repository. | ||
|
||
`apache-skywalking-apm-x.y.z.tar.gz` with its `.asc` size could be found in https://repository.apache.org/ staging repo. | ||
Create shasum through `shasum -a 512 apache-skywalking-apm-x.y.z.tar.gz > apache-skywalking-apm-x.y.z.tar.gz.sha512` | ||
|
||
## Build and sign the source code package | ||
```bash | ||
|
@@ -111,7 +67,7 @@ This script takes care of the following things: | |
|
||
## Start the next iteration | ||
|
||
Once the release is deployed to the staging repositories, you can start updating the version to the next number and open a pull request. | ||
Once the binary and source packages are created, you can start updating the version to the next number and open a pull request. | ||
|
||
```bash | ||
# Update the version to the next snapshot version still in the same branch, such as 10.1.0-release | ||
|
@@ -130,15 +86,6 @@ git push | |
gh pr create --fill # If you have gh cli installed and configured, or open the pull request in https://github.com/apache/skywalking/pulls | ||
``` | ||
|
||
## Locate and download the distribution package in Apache Nexus Staging repositories | ||
1. Use your Apache ID to log in to `https://repository.apache.org/`. | ||
1. Go to `https://repository.apache.org/#stagingRepositories`. | ||
1. Search `skywalking` and find your staging repository. | ||
1. Close the repository and wait for all checks to pass. In this step, your GPG KEYS will be checked. See the [set PGP document](#add-your-gpg-public-key), | ||
if you haven't done it before. | ||
1. Go to `{REPO_URL}/org/apache/skywalking/apache-skywalking-apm/x.y.z`. | ||
1. Download `.tar.gz` and `.zip` and files ending with `.asc` and `.sha1`. | ||
|
||
|
||
## Upload to Apache svn | ||
1. Use your Apache ID to log in to `https://dist.apache.org/repos/dist/dev/skywalking/`. | ||
|
@@ -148,7 +95,6 @@ if you haven't done it before. | |
* See Section "Build and sign the source code package" for more details | ||
1. Upload the distribution package to the folder with files ending with `.asc` and `.sha512`. | ||
* Package name: `apache-skywalking-bin-x.y.z.tar.gz`. | ||
* See Section "Locate and download the distribution package in Apache Nexus Staging repositories" for more details. | ||
* Create a `.sha512` package: `shasum -a 512 file > file.sha512` | ||
|
||
## Call a vote in dev | ||
|
@@ -172,10 +118,6 @@ Release Candidate: | |
- sha512xxxxyyyzzz apache-skywalking-apm-x.x.x-src.tgz | ||
- sha512xxxxyyyzzz apache-skywalking-apm-bin-x.x.x.tar.gz | ||
|
||
Maven 2 staging repository: | ||
|
||
* https://repository.apache.org/content/repositories/xxxx/org/apache/skywalking/ | ||
|
||
Release Tag : | ||
|
||
* (Git Tag) vx.y.z | ||
|
@@ -206,7 +148,6 @@ Voting will start now (xxxx date) and will remain open for at least 72 hours, Re | |
All PMC members and committers should check these before casting +1 votes. | ||
|
||
1. Features test. | ||
1. All artifacts in staging repository are published with `.asc`, `.md5`, and `*sha1` files. | ||
1. Source code and distribution package (`apache-skywalking-x.y.z-src.tar.gz`, `apache-skywalking-bin-x.y.z.tar.gz`, `apache-skywalking-bin-x.y.z.zip`) | ||
are found in `https://dist.apache.org/repos/dist/dev/skywalking/x.y.z` with `.asc` and `.sha512`. | ||
1. `LICENSE` and `NOTICE` are in the source code and distribution package. | ||
|
@@ -231,15 +172,12 @@ enter your apache password | |
.... | ||
|
||
``` | ||
2. Release in the nexus staging repo. | ||
3. Public download source and distribution tar/zip are located in `http://www.apache.org/dyn/closer.cgi/skywalking/x.y.z/xxx`. | ||
2. Public download source and distribution tar/zip with asc and sha512 are located in `http://www.apache.org/dyn/closer.cgi/skywalking/x.y.z/xxx`. | ||
The Apache mirror path is the only release information that we publish. | ||
4. Public asc and sha512 are located in `https://www.apache.org/dist/skywalking/x.y.z/xxx`. | ||
5. Public KEYS point to `https://www.apache.org/dist/skywalking/KEYS`. | ||
6. Update the website download page. http://skywalking.apache.org/downloads/ . Add a new download source, distribution, sha512, asc, and document | ||
3. Update the website download page. http://skywalking.apache.org/downloads/ . Add a new download source, distribution, sha512, asc, and document | ||
links. The links can be found following rules (3) to (6) above. | ||
7. Add a release event on the website homepage and event page. Announce the public release with changelog or key features. | ||
8. Send ANNOUNCE email to `[email protected]`, `[email protected]`. The sender should use the Apache email account. | ||
4. Add a release event on the website homepage and event page. Announce the public release with changelog or key features. | ||
5. Send ANNOUNCE email to `[email protected]`, `[email protected]`. The sender should use the Apache email account. | ||
``` | ||
Mail title: [ANNOUNCE] Apache SkyWalking x.y.z released | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,7 +20,7 @@ | |
# This script relies on few environment variables to determine source code package | ||
# behavior, those variables are: | ||
# RELEASE_VERSION -- The version of this source package. | ||
# For example: RELEASE_VERSION=5.0.0-alpha | ||
# For example: RELEASE_VERSION=10.0.0 | ||
|
||
|
||
RELEASE_VERSION=${RELEASE_VERSION} | ||
|
@@ -32,7 +32,7 @@ echo "Source tag "${TAG_NAME} | |
|
||
if [ "$RELEASE_VERSION" == "" ]; then | ||
echo "RELEASE_VERSION environment variable not found, Please setting the RELEASE_VERSION." | ||
echo "For example: export RELEASE_VERSION=5.0.0-alpha" | ||
echo "For example: export RELEASE_VERSION=10.0.0" | ||
exit 1 | ||
fi | ||
|
||
|
@@ -75,5 +75,7 @@ tar czf ${PRODUCT_NAME}-src.tgz \ | |
${PRODUCT_NAME} | ||
|
||
gpg --armor --detach-sig ${PRODUCT_NAME}-src.tgz | ||
gpg --armor --detach-sig ${PRODUCT_NAME}.tgz | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The file name is There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I prefer rename the script file. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @kezhenxu94 I updated the docs a little bit more, to move binary into releasing folder. |
||
|
||
shasum -a 512 ${PRODUCT_NAME}-src.tgz > ${PRODUCT_NAME}-src.tgz.sha512 | ||
shasum -a 512 ${PRODUCT_NAME}.tgz > ${PRODUCT_NAME}.tgz.sha512 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GPG related is not needed anymore, it was for maven verification. Now we will only sign the final tar.