<commit_before># How to Release

## Prerequisites

- Sign up for a Sonatype account [here](https://issues.sonatype.org/secure/Signup!default.jspa)
- Ask for permissions to push to com.spotify domain like in this [ticket](https://issues.sonatype.org/browse/OSSRH-20689)
- Add Sonatype credentials to `~/.sbt/1.0/credentials.sbt`

```scala
credentials ++= Seq(
Credentials(
    "Sonatype Nexus Repository Manager",
    "oss.sonatype.org",
    "$USERNAME",
    "$PASSWORD"))
```
    
- Create a PGP key, for example on [keybase.io](https://keybase.io/), and [distribute](https://www.gnupg.org/gph/en/manual/x457.html) it to a public keyserver 

## Update documentation and version matrix

- Pick a release name from [here](https://en.wikipedia.org/wiki/List_of_Latin_phrases_%28full%29), [here](https://en.wikipedia.org/wiki/List_of_songs_with_Latin_lyrics), [here](https://harrypotter.fandom.com/wiki/List_of_spells), [here](https://en.wikipedia.org/wiki/List_of_Latin_names_of_cities), [here](https://en.wikipedia.org/wiki/List_of_Latin_names_of_countries), or other interesting sources<sup>*</sup>
- Update the list of release names below
- If the release includes a Beam version bump, update the @ref:[version matrix](../Apache-Beam.md)

## Automatic (CI)

Checkout and update the `main` branch.

```bash
git checkout main

git pull
```

Create and push a new version tag

```bash
git tag -a vX.Y.Z -m "vX.Y.Z"

git push origin vX.Y.Z
```

## Manual 

- Run the slow integration tests with `SLOW=true sbt it:test`
- Run `release skip-tests` in sbt console and follow the instructions
- Go to [oss.sonatype.org](https://oss.sonatype.org/), find the staging repository, "close" and "release"
- When the tag build completes, update release notes with name and change log
- Run `./scripts/make-site.sh` to update documentation

## After successfully published artifacts

- Run @github[scripts/bump_scio.sh](/scripts/bump_scio.sh) to update [homebrew formula](https://github.com/spotify/homebrew-public/blob/master/scio.rb) and `scioVersion` in downstream repos including [scio.g8](https://github.com/spotify/scio.g8), [featran](https://github.com/spotify/featran), etc.
- Send external announcement to <EMAIL> and <EMAIL>
- Announce on public [Slack](https://slackin.spotify.com/)
- Announce on Twitter

<sup>*</sup>Starting with `0.4.0` all release names are scientific names of animals with genus and species starting with the same letter, in ascending alphabetical order; Harry Potter spells starting with `0.8.0`; Latin names of cities in ascending alphabetical order starting `0.10.0`; Latin names of countries in ascending alphabetical order starting `0.11.0`.

## Past release names

### 0.11.x

- [v0.11.1](https://github.com/spotify/scio/releases/tag/v0.11.1) - _"Armorica"_
- [v0.11.0](https://github.com/spotify/scio/releases/tag/v0.11.0) - _"Ariana"_

### 0.10.x

- [v0.10.4](https://github.com/spotify/scio/releases/tag/v0.10.4) - _"Edessa"_
- [v0.10.3](https://github.com/spotify/scio/releases/tag/v0.10.3) - _"Dallasium"_
- [v0.10.2](https://github.com/spotify/scio/releases/tag/v0.10.2) - _"Cantabrigia"_
- [v0.10.1](https://github.com/spotify/scio/releases/tag/v0.10.1) - _"<NAME>"_
- [v0.10.0](https://github.com/spotify/scio/releases/tag/v0.10.0) - _"<NAME>"_

### 0.9.x<commit_msg>Update How-to-Release.md with 0.11.2 (#4154)<commit_after># How to Release

## Prerequisites

- Sign up for a Sonatype account [here](https://issues.sonatype.org/secure/Signup!default.jspa)
- Ask for permissions to push to com.spotify domain like in this [ticket](https://issues.sonatype.org/browse/OSSRH-20689)
- Add Sonatype credentials to `~/.sbt/1.0/credentials.sbt`

```scala
credentials ++= Seq(
Credentials(
    "Sonatype Nexus Repository Manager",
    "oss.sonatype.org",
    "$USERNAME",
    "$PASSWORD"))
```
    
- Create a PGP key, for example on [keybase.io](https://keybase.io/), and [distribute](https://www.gnupg.org/gph/en/manual/x457.html) it to a public keyserver 

## Update documentation and version matrix

- Pick a release name from [here](https://en.wikipedia.org/wiki/List_of_Latin_phrases_%28full%29), [here](https://en.wikipedia.org/wiki/List_of_songs_with_Latin_lyrics), [here](https://harrypotter.fandom.com/wiki/List_of_spells), [here](https://en.wikipedia.org/wiki/List_of_Latin_names_of_cities), [here](https://en.wikipedia.org/wiki/List_of_Latin_names_of_countries), or other interesting sources<sup>*</sup>
- Update the list of release names below
- If the release includes a Beam version bump, update the @ref:[version matrix](../Apache-Beam.md)

## Automatic (CI)

Checkout and update the `main` branch.

```bash
git checkout main

git pull
```

Create and push a new version tag

```bash
git tag -a vX.Y.Z -m "vX.Y.Z"

git push origin vX.Y.Z
```

## Manual 

- Run the slow integration tests with `SLOW=true sbt it:test`
- Run `release skip-tests` in sbt console and follow the instructions
- Go to [oss.sonatype.org](https://oss.sonatype.org/), find the staging repository, "close" and "release"
- When the tag build completes, update release notes with name and change log
- Run `./scripts/make-site.sh` to update documentation

## After successfully published artifacts

- Run @github[scripts/bump_scio.sh](/scripts/bump_scio.sh) to update [homebrew formula](https://github.com/spotify/homebrew-public/blob/master/scio.rb) and `scioVersion` in downstream repos including [scio.g8](https://github.com/spotify/scio.g8), [featran](https://github.com/spotify/featran), etc.
- Send external announcement to <EMAIL> and <EMAIL>
- Announce on public [Slack](https://slackin.spotify.com/)
- Announce on Twitter

<sup>*</sup>Starting with `0.4.0` all release names are scientific names of animals with genus and species starting with the same letter, in ascending alphabetical order; Harry Potter spells starting with `0.8.0`; Latin names of cities in ascending alphabetical order starting `0.10.0`; Latin names of countries in ascending alphabetical order starting `0.11.0`.

## Past release names

### 0.11.x

- [v0.11.2](https://github.com/spotify/scio/releases/tag/v0.11.2) - _"Batavia"_
- [v0.11.1](https://github.com/spotify/scio/releases/tag/v0.11.1) - _"Armorica"_
- [v0.11.0](https://github.com/spotify/scio/releases/tag/v0.11.0) - _"Ariana"_

### 0.10.x

- [v0.10.4](https://github.com/spotify/scio/releases/tag/v0.10.4) - _"Edessa"_
- [v0.10.3](https://github.com/spotify/scio/releases/tag/v0.10.3) - _"Dallasium"_
- [v0.10.2](https://github.com/spotify/scio/releases/tag/v0.10.2) - _"Cantabrigia"_
- [v0.10.1](https://github.com/spotify/scio/releases/tag/v0.10.1) - _"<NAME>"_
- [v0.10.0](https://github.com/spotify/scio/releases/tag/v0.10.0) - _"Aquae Sextiae"_

### 0.9.x
{'fraction_non_alphanumeric': 0.1589216562406911, 'fraction_numerical': 0.03038427167113494, 'mean_word_length': 4.274941084053417, 'pattern_counts': {'":': 0, '<': 18, '<?xml version=': 0, '>': 18, 'https://': 43, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3620586', 'n_tokens_mistral': 2562, 'n_tokens_neox': 2375, 'n_words': 558}