-
-
Notifications
You must be signed in to change notification settings - Fork 15.8k
Releasing new version
-
Configure your
~/.m2/settings.xml
contains the following configuration:<?xml version="1.0" encoding="UTF-8"?> <settings> <servers> <server> <id>sonatype-nexus-snapshots</id> <username>myusername</username> <password>mypassword</password> </server> <server> <id>sonatype-nexus-staging</id> <username>myusername</username> <password>mypassword</password> </server> </servers> ... </settings>
The release procedure is currently a mix of executing a GitHub Action workflow and running a few scripts to finish the release process on macOS (64-bit). Install the required packages as well.
The release is mostly automated these days (and will be fully automated in the future hopefully). To start a release all you need to do is to run the GitHub Action release workflow. The workflow will take care of building all the native libraries and also the normal jars. Once complete it will automatically stage everything to the nexus staging repository. Monitor the GitHub Action release workflow and wait till it's complete.
Netty 4.x releases must be done by using OpenJDK8 which can be downloaded from AdoptOpenJDK. Once downloaded and installed create a JAVA8_HOME
env which points to the installation.
For example:
export JAVA8_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
Once this is done you are ready to finish the release.
First get the name of the current staged release (this release was staged by the GitHub workflow before).
./scripts/list_staged_release.sh
Now with this staging id you can run the script to finish the release. The script takes the staging id as first argument and the name of the tag as the second. So for example if you would try to finish the release of netty 4.1.64.Final you would run the following command:
./scripts/finish_release.sh ionetty-1395 netty-4.1.64.Final
Once the script completes the release of netty itself is done and it will be "promoted" to maven central.
Now it's time to copy over all the apidocs and xref files to the netty website (if you didn't checkout the website yet read [Update the web site|Releasing-new-version#update-the-web-site]).
For this we have another script that you need to run:
./scripts/generate_docs.sh ../netty-website netty-4.1.64.Final
Our official web site is built with Awestruct. Please make sure you are familiar with Awestruct and its related markup languages such as HAML and Markdown.
If you did not yet, clone the web site project:
git clone git@github.com:netty/netty-website.git
cd netty-website
_config/site.yml
contains important metadata about the latest Netty versions. For example, it has the following section:
releases:
- version: 5.0.0.Alpha1
date: 22-Dec-2013
stable: false
branch: master
- version: 4.0.21.Final
date: 01-Jul-2014
stable: true
- version: 3.9.2.Final
date: 11-Jun-2014
stable: true
Update it with the new version number and release date.
After this add a new entry to the news/ folder which has the release details.
Make sure the file name does not contains a dot (.) or a whitespace (e.g. OK: 2014-07-04-4-1-0-Beta1-released.html.md
NOT OK: 2014-07-04-4.1.0.Beta1-released.html.md
Try to generate the web site to confirm that the new version shows up in the generated web site.
This can done via:
awestruct -d -u https://netty.io
Now you should be able to access the website via http://localhost:4242.
If everything looks like expected its time to commit the changes:
git add *
git commit -m "Release 4.1.64.Final"
git push
Now you are ready to push the web site:
_bin/deploy.sh
TODO: Write me