> This page is for SDKs, version Legacy.
> For other versions, use one of these documentation indexes:
> - Current (default): https://buildwithfern.com/learn/sdks/current/llms.txt
> - Legacy: https://buildwithfern.com/learn/sdks/legacy/llms.txt

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

# Fern Autorelease

> Automate SDK releases with Fern Autorelease. Detects API spec changes, regenerates SDKs, determines version bumps, and publishes to package registries.

> **You're viewing the legacy SDK docs**
>
> These pages cover SDK generation configured with `generators.yml`. New projects use `sdk-config.yml`, so see [the Current version of this page](/learn/sdks/overview/autorelease) for up-to-date guidance. To move an existing project, follow the [SDK Config migration guide](/learn/sdks/legacy/generators/migration-guides/sdk-config), which walks through `fern sdk migrate`, and review the [`sdk-config.yml` reference](/learn/sdks/reference/sdk-config).

> **Early Access**
>
> Fern Autorelease is in early access. [Contact us](https://buildwithfern.com/book-demo) to get started.

Fern Autorelease automates SDK releases end-to-end. When your API specification changes, Autorelease regenerates SDKs, determines the version bump, and publishes to package registries.

## How it works

When changes to your API specification are committed, Autorelease:

1. Regenerates SDKs for all configured languages
2. Analyzes the API diff and determines the appropriate [semantic version](https://semver.org/) bump
3. Commits to repositories, tags releases, and publishes packages
4. Updates changelogs automatically

If a release fails, Autorelease pauses and sends alerts via Slack (if configured) or the Fern Dashboard where you can review and retry.

## Setup

To enable Autorelease, add `autorelease: true` to your `generators.yml` and ensure the [Fern GitHub App](https://github.com/apps/fern-api) is installed on your SDK repositories. Releases trigger automatically on commits to your spec repository and appear as commit status checks. No changes to your CI/CD setup are required.

#### Enable globally for all generators

**`generators.yml`**

```yaml generators.yml
autorelease: true
```

#### Enable per-generator

**`generators.yml`**

```yaml generators.yml {6}
groups:
  python-sdk:
    generators:
      - name: fern-python-sdk
        version: 5.41.4
        autorelease: true
```

![Autorelease commit status check](/learn/_fern-img/4fb6d6f1e8c713d5accb06cf0a684a90aac9a01d511bc1558ed7b02cc0adf460.webp)

### Review releases before publishing

[Set `mode: pull-request`](/learn/sdks/legacy/reference/generators-yml#pull-request-recommended) to review releases before publishing. Autorelease opens a pull request for you to review instead of publishing directly.

**`generators.yml`**

```yaml generators.yml {8}
groups: 
  ts-sdk:
    generators:
      - name: fern-typescript-sdk
      ...
        github: 
          repository: your-org/your-repo-name
          mode: pull-request
```

### Disable autorelease

To disable Autorelease for a specific generator while keeping it enabled globally, set `autorelease: false` on that generator:

**`generators.yml`**

```yaml generators.yml {6}
groups:
  internal-sdk:
    generators:
      - name: fern-python-sdk
        version: 5.41.4
        autorelease: false
```