# Releasing Tactility 1. Test the latest SDK build from GitHub with the CDN as a SNAPSHOT version: 1. Download it from the [main branch](https://github.com/ByteWelder/Tactility/actions/workflows/build-sdk.yml) 2. Upload it to the [CDN](https://dash.cloudflare.com) 3. Update `sdk.json` from [TactilityTool](https://github.com/ByteWelder/TactilityTool) and upload it to [CDN](https://dash.cloudflare.com) 4. Test it with `ExternalApps/HelloWorld` (clear all its cache and update the SDK version) 2. Build the SDK locally and test it with `ExternalApps/HelloWorld` 3. Download the latest firmwares [main branch](https://github.com/ByteWelder/Tactility/actions/workflows/build-firmware.yml) 4. Test the latest version of Tactility on several devices 5. Prepare a new version of [TactilityWebInstaller](https://github.com/ByteWelder/TactilityWebInstaller) locally: 1. Copy the GitHub firmwares into `scripts/` in the `TactilityWebInstaller` project 2. Run `python release-all.py` 3. Copy the unpacked files to `/rom/(device)/(version)/` and copy in `manifest.json` from existing release 1. **WARNING** If the partitions have changed, update the json! 4. Update the version in `manifest.json` 5. Update `version.json` for the device 6. Test the firmwares on all devices with the local web installer 7. If all went well: release the web installer 8. Test web installer in production (use popular devices) 9. Make a new version of the docs available at [TactilityDocs](https://github.com/ByteWelder/TactilityDocs) 10. Make a new [GitHub release](https://github.com/ByteWelder/Tactility/releases/new) ### Post-release 1. Mention on Discord 2. Consider notifying vendors/stakeholders 3. Update SDK updates to CDN at [TactilityTool](https://github.com/ByteWelder/TactilityTool) and upload it to [CDN](https://dash.cloudflare.com)