This document describes the steps to cut a release of Raygun4CFML.
Before starting the release process:
- All features and fixes for this release are merged to
develop -
CHANGELOG.mdis up to date with all changes -
README.mdreflects the current API and features - Samples in
samples/are updated for any new features -
box run-script format:checkpasses with no issues - All tests pass on all 11 engines:
./run-tests.sh
The version string is tracked in two files — always keep them in sync:
| File | Field |
|---|---|
src/com/raygun/environment/RaygunConfig.cfc |
RAYGUN_CLIENT_VERSION (in static {} block) |
box.json |
version and location |
The test in tests/specs/com/raygun/environment/RaygunConfigTest.cfc asserts the version — update it too.
Use when the code is feature-complete but needs real-world validation before a final release.
Use when confident the release is production-ready.
Replace the current version in all three locations:
src/com/raygun/environment/RaygunConfig.cfc→RAYGUN_CLIENT_VERSIONbox.json→versionandlocation(e.g.,MindscapeHQ/raygun4cfml#3.0.0)tests/specs/com/raygun/environment/RaygunConfigTest.cfc→ version assertion
Change the (Unreleased) marker to the version and date:
3.0.0 (April 15, 2026)
./run-tests.shAll 11 engines must pass. Do not proceed if any engine fails.
git add src/com/raygun/environment/RaygunConfig.cfc box.json CHANGELOG.md tests/specs/com/raygun/environment/RaygunConfigTest.cfc
git commit -m "chore: release x.y.z"git tag -a x.y.z -m "Release x.y.z"git push origin develop --tagsWait for the GitHub Actions CI to pass on all 11 engines before proceeding.
# Log in if not already authenticated
box forgebox login
# Publish
box publishVerify the package at https://www.forgebox.io/view/raygun4cfml
Go to https://github.com/MindscapeHQ/raygun4cfml/releases and create a release from the tag. Copy the relevant section from CHANGELOG.md as the release notes.
After a final release:
- Bump version to the next snapshot (e.g.,
3.1.0-snapshot) inRaygunConfig.cfc,box.json, and the test - Add a new
(Unreleased)section toCHANGELOG.md - Commit:
git commit -m "chore: bump version to x.y.z-snapshot" - Push:
git push origin develop
To promote a release candidate to final:
- Follow the same steps above, changing
x.y.z-rc.Ntox.y.z - Update
CHANGELOG.mddate to the final release date - Run the full test matrix, tag, push, and publish
When announcing a release:
- Twitter/X: Tag
@rayguniofor Raygun. Keep under 280 chars or use a thread. - LinkedIn: Longer format with feature highlights, engine coverage, and install command.
- Include the GitHub URL and ForgeBox URL.
- Include the install command:
box install raygun4cfml@x.y.z
box forgebox login
box forgebox whoami # verify you're logged in
box publishCheck that the version assertion in RaygunConfigTest.cfc matches the new version string.
Run that engine individually and inspect the output:
box server start serverConfigFile=server-adobe-2025.json
curl -s "http://localhost:9198/tests/runner.cfm?reporter=json" | python3 -m json.tool
box server stop serverConfigFile=server-adobe-2025.json