# Gum

### Gum Runtimes (NuGet Packages)

Gum's repository includes a GitHub Action yaml file which builds and uploads NuGet packages. If the build succeeds and if the NuGet numbers are new, then new NuGet packages are uploaded.

The automated build will not upload a new NuGet if the version number is not manually increased first. Also note, this DOES NOT currently upload a new Gum tool - this is a separate process (see below).

To upload a new NuGet packages, follow these steps:

1. Create a new branch like `ReleaseCode_2025_11_30` . This is `ReleaseCode_YYYY_MM_DD`.
2. Open AllLibraries.sln in Visual Studio - this links MonoGame/FNA/Kni Gum and the projects it depends on. It is at \<GumRoot>\MonoGameGum.sln
3. Double-click GumCommon and find the version. Copy this, then do a global find/replace to update all versions to the latest version.\
   \
   \ <br>

   <figure><img src="https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2F6Ljtlh9pjdXA3eNWdF1l%2Fimage.png?alt=media&#x26;token=dee983a3-51fe-451c-9276-3ba919441dd4" alt=""><figcaption><p>Setting GumCommon's Version number</p></figcaption></figure>

   at the time of this writing, 8 projects will be updated.
4. Save the files and push the commit
5. Run the github action on this branch, it's faster than merging first, so you don't have to wait
6. Merge the commit to `Master`

### Gum Tool

To release Gum tool:

1. Run the **Build and Release Gum Tool** action
   1. Run a **prerelease** build
2. Create new release notes on GitHub including
   1. Screenshots for new features
   2. Breaking changes
3. Create migration doc on gitbook
4. Run the action to release the Gum tool
5. Copy the release notes onto the new release
6. Add a new page in the Gum Upgrade section explaining how to upgrade this version. If no changes are needed, explain that the upgrade can happen without any changes.&#x20;
7. Announce on FRB discord
8. Announce on MonoGame discord
9. Announce on MGE discord
10. Announce on Kni discord
11. Announce on twitter
12. Announce on Blue Sky
13. Post on <https://community.monogame.net/>

This file is used when creating FlatRedBall builds, so Gum must first be built and uploaded to the FlatRedBall FTP prior to running the FlatRedBall Github Actions. Otherwise, an old Gum will be included in FRBDK. This may be okay depending on if Gum has important new features.
