From 2c271f97c6d75e81a84f6eba632ab286511c8b8f Mon Sep 17 00:00:00 2001 From: Olivier Biot Date: Sat, 17 Oct 2026 15:41:31 +0800 Subject: [PATCH 1/2] Release 20.9.0 Dates the changelog section. 24 commits since 20.8.0. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01NGvtaUNATVCVxD2qcbiY4t --- packages/melonjs/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/melonjs/CHANGELOG.md b/packages/melonjs/CHANGELOG.md index a64057b43..ed3671cbc 100644 --- a/packages/melonjs/CHANGELOG.md +++ b/packages/melonjs/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [20.9.0] (melonJS 2) - _unreleased_ +## [20.9.0] (melonJS 2) - _2026-10-17_ ### Added - **Sprite-sheet particles** (`framewidth`, `frameheight`, `frames`, `randomFrame` on `ParticleEmitter`): a particle plays a frame sequence once over its own lifetime, or holds one frame picked at random when it is born. One sheet is one image, so a burst of varied debris still batches into a single draw call ([#1610](https://github.com/melonjs/melonJS/issues/1610), thanks @snowyukitty) From cfcd5b968f933dfe5ada5f70b9321d0f168ee20e Mon Sep 17 00:00:00 2001 From: Olivier Biot Date: Sun, 18 Oct 2026 17:03:51 +0800 Subject: [PATCH 2/2] Release: date 20.9.0 as the day it actually ships The release was prepared on the 17th and is going out on the 18th. The date in the changelog is the one readers use to place a version against their own history, so it tracks the release, not the preparation. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01NGvtaUNATVCVxD2qcbiY4t --- packages/melonjs/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/melonjs/CHANGELOG.md b/packages/melonjs/CHANGELOG.md index ed3671cbc..ed1afb3b7 100644 --- a/packages/melonjs/CHANGELOG.md +++ b/packages/melonjs/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [20.9.0] (melonJS 2) - _2026-10-17_ +## [20.9.0] (melonJS 2) - _2026-10-18_ ### Added - **Sprite-sheet particles** (`framewidth`, `frameheight`, `frames`, `randomFrame` on `ParticleEmitter`): a particle plays a frame sequence once over its own lifetime, or holds one frame picked at random when it is born. One sheet is one image, so a burst of varied debris still batches into a single draw call ([#1610](https://github.com/melonjs/melonJS/issues/1610), thanks @snowyukitty)