Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • You will need to upload your maven credentials and signatory credentials for the release script by editing your `~/.gradle/gradle.properties` with:

    Code Block
    title~/.gradle/gradle.properties
    mavenUrl=https://repository.apache.org/service/local/staging/deploy/maven2                                                                                                                                
    mavenUsername=your-apache-id
    mavenPassword=your-apache-passwd
    signing.keyId=your-gpgkeyId # <- needs to be the 8-letter key ID
    signing.password=your-gpg-passphrase
    signing.secretKeyRingFile=/Users/your-id/.gnupg/secring.gpg

    If you don't already have a secret key ring under ~/.gnupg (which will be the case with GPG 2.1 and beyond), you will need to manually create it with `gpg --export-secret-keys -o ~/.gnupg/secring.gpg`. Obviously, be careful not to publicly upload your passwords. You should be editing the `gradle.properties` file under your home directory, not the one in Kafka itself.

  • Make sure your `~/.m2/settings.xml` is configured for pgp signing and uploading to the apache release maven:

    Code Block
    title~/.m2/settings.xml
    <servers> 
      <server>
        <id>apache.releases.https</id>
        <username>your-apache-id</username>
        <password>your-apache-passwd</password>
      </server>
      <server>
        <id>your-gpgkeyId</id>
        <passphrase>your-gpg-passphrase</passphrase>
      </server>
    </servers>
    <profiles>
      <profile>
        <id>gpg-signing</id>
        <properties>
          <gpg.keyname>your-gpgkeyId</gpg.keyname>
          <gpg.passphraseServerId>your-gpgkeyId</gpg.passphraseServerId>
        </properties>
      </profile>
    </profiles>


  • You may also need to update some gnupgp configs:

    Code Block
    echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf
    
    echo "use-agent" >> ~/.gnupg/gpg.conf
    echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
    
    echo RELOADAGENT | gpg-connect-agent


...

  • Send email announcing the new branch:

    No Format
    To: dev@kafka.apache.org
    Subject: New release branch 0.10.0
    
    Hello Kafka developers and friends,
    
    As promised, we now have a release branch for 0.10.0 release (with 0.10.0.0
    as the version).
    Trunk has been bumped to 0.10.1.0-SNAPSHOT.
    
    I'll be going over the JIRAs to move every non-blocker from this release to
    the next release.
    
    From this point, most changes should go to trunk.
    *Blockers (existing and new that we discover while testing the release)
    will be double-committed. *Please discuss with your reviewer whether your
    PR should go to trunk or to trunk+release so they can merge accordingly.
    
    *Please help us test the release! *
    
    Thanks!
    
    $RM
    


Create Release Artifacts

  • Set environment variable `PUSH_REMOTE_NAME` to the remote you want to push to, e.g., export PUSH_REMOTE_NAME=origin (default is apache-github).
  • Run the `release.py` script in the root of the kafka repository and follow the instructions. NOTE that if you are releasing a version prior to 1.0.x, you need to have minor edits on the script to change the three-digits pattern checking to four-digits pattern.
  • Until
    Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyKAFKA-12622
    is complete, you will have to manually verify the binary artifact's LICENSE file matches its own packaged dependencies. See that ticket for an example of how to do this.
  • If any step fails, make sure you have everything set up as described in the Prerequisites section and are using the correct passphrase for each config.
  • This script will created a hidden directory called .release_work_dir. Don't delete this as you may need the contents later (for example the kafka-stream-x.x.x-test.jar)

...