> For the complete documentation index, see [llms.txt](https://docs.flatredball.com/gum/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flatredball.com/gum/gum-tool/upgrading/migrating-to-2026-july-2nd-release.md).

# Migrating to 2026 July - 2nd Release

## Introduction

This page discusses breaking changes and other considerations when migrating from the first `2026 July` release to the second `2026 July` release.

## What Changed at a Glance

This release renames the explicit-font-object property on `TextRuntime` to `Typeface`, unifying a name that previously differed per backend (`BitmapFont` on MonoGame/KNI/FNA, `CustomFont` on raylib) and adding the same capability to SkiaSharp for the first time. This is a **soft break**: the old names still compile and work, but now emit a `CS0618` obsolete warning.

## Upgrading the Gum Tool

{% tabs %}
{% tab title="Windows" %}
To upgrade the Gum tool:

1. Download Gum.zip from the [July 22, 2026 release on GitHub](https://github.com/vchelaru/Gum/releases/tag/Release_July_22_2026)
2. Delete the old tool from your machine
3. Unzip the gum tool to the same location as to not break any file associations
   {% endtab %}

{% tab title="Linux" %}
Run the upgrade `gum upgrade` or `~/bin/gum upgrade`
{% endtab %}
{% endtabs %}

## Upgrading the Runtime

This release's runtime ships as NuGet version **`2026.7.22.1`**. Upgrade your Gum NuGet packages to this version. For more information, see the NuGet packages for your particular platform:

* MonoGame - <https://www.nuget.org/packages/Gum.MonoGame/>
* KNI - <https://www.nuget.org/packages/Gum.KNI/>
* FNA - <https://www.nuget.org/packages/Gum.FNA/>
* raylib - <https://www.nuget.org/packages/Gum.raylib>
* .NET MAUI - <https://www.nuget.org/packages/Gum.SkiaSharp.Maui>
* SkiaSharp - <https://www.nuget.org/packages/Gum.SkiaSharp/>

If using GumCommon directly, you can update the GumCommon NuGet:

* GumCommon - <https://www.nuget.org/packages/FlatRedBall.GumCommon>

## Breaking Changes and Migrations

### `BitmapFont` / `CustomFont` Renamed to `Typeface`

`TextRuntime` has an explicit-font-object property for assigning an already-loaded font directly, bypassing the normal `Font`/`FontSize` name-based resolution. This property is also what you read to inspect whichever font object is actually active, whether it was resolved normally or assigned explicitly. It previously had a different name per backend:

* **MonoGame / KNI / FNA** — `BitmapFont` (type `BitmapFont`)
* **raylib** — `CustomFont` (type `Raylib_cs.Font`)
* **SkiaSharp** — no equivalent existed at all

All three backends now expose the same property name, `Typeface`, typed to each backend's own font object (`BitmapFont`, `Raylib_cs.Font`, or `SkiaSharp.SKTypeface`). `BitmapFont` and `CustomFont` still compile and work, but now emit a `CS0618` warning:

```
warning CS0618: 'TextRuntime.BitmapFont' is obsolete: 'Use Typeface instead.'
```

To migrate, rename the property at your call sites:

❌ Old (MonoGame/KNI/FNA):

```csharp
// Initialize
textRuntime.BitmapFont = myFont;
```

❌ Old (raylib):

```csharp
// Initialize
textRuntime.CustomFont = myFont;
```

✅ New (all backends):

```csharp
// Initialize
textRuntime.Typeface = myFont;
```

The static, constructor-time default (`TextRuntime.DefaultCustomFont` on MonoGame/KNI/FNA and raylib) is renamed the same way, to `TextRuntime.DefaultTypeface`, and is now also available on SkiaSharp.

{% hint style="info" %}
On SkiaSharp, `Typeface` is a new capability, not a rename — there is no obsolete alias to migrate from, since the property didn't exist there before.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.flatredball.com/gum/gum-tool/upgrading/migrating-to-2026-july-2nd-release.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
