| 
									
										
										
										
											2024-07-05 20:01:13 +08:00
										 |  |  | Releasing Apache Kafka | 
					
						
							|  |  |  | ====================== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This directory contains the tools used to publish a release. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Requirements
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * python 3.12 | 
					
						
							|  |  |  | * git | 
					
						
							|  |  |  | * gpg 2.4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The full instructions for producing a release are available in | 
					
						
							|  |  |  | https://cwiki.apache.org/confluence/display/KAFKA/Release+Process. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Setup
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Create a virtualenv for python, activate it and install dependencies: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | python3 -m venv .venv | 
					
						
							|  |  |  | source .venv/bin/activate | 
					
						
							|  |  |  | pip install -r requirements.txt | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Usage
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To start a release, first activate the virutalenv, and then run | 
					
						
							|  |  |  | the release script. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | source .venv/bin/activate | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | You'll need to setup `PUSH_REMOTE_NAME` to refer to | 
					
						
							|  |  |  | the git remote for `apache/kafka`. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | export PUSH_REMOTE_NAME=<value> | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | It should be the value shown with this command: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | git remote -v | grep -w 'github.com' | grep -w 'apache/kafka' | grep -w '(push)' | awk '{print $1}' | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Then start the release script: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | python release.py | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-17 22:45:32 +08:00
										 |  |  | Should you encounter some problem, where re-running the script doesn't work, look at the following steps: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - The script remembers data inputted previously if you need to correct it, it is saved under the | 
					
						
							|  |  |  | `.release-settings.json` file in the `release` folder. | 
					
						
							|  |  |  | - If the script is interrupted you might need to manually delete the tag named after the release candidate name and | 
					
						
							|  |  |  | branch named after the release version. |