Versions Compared

Key

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

...

Code Block
Host *.apache.org
IdentityFile ~/.ssh/<apache-ssh-key>
  • 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
    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
    <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


Cut Branches

Skip this section if you are releasing a bug fix version (e.g. 2.2.1).

...

  • 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 partternpattern.
  • 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.

Website update process

Note: Unlike the Kafka sources (kafka repo), the content of the Apache Kafka website kafka.apache.org is backed by a separate git repository (kafka-site repo). Today, any changes to the content and docs must be kept manually in sync between the two repositories.

...

  • For major releases, consider writing a blog in https://blogs.apache.org/kafka/. If you don't have a blog account, just log into blogs.apache.org once with your Apache credential and notify the Kafka PMC chair, who can then invite you to the blog space. Follow the instructions for creating a preview.  Send the a link to the preview blog post to dev mailing for comments before publishing. (See INFRA-20646 for an issue about previews of blog entry drafts.)
  • Consider incorporating any suggestions from the dev thread until release is annouannounced

Announce the RC

  • Send an email announcing the release candidate.

...