Knope cli tries to prepare a pre-release when changesets don't match and the behavior is really weird, It pulls changes from last versions.
for example:
I have this knope config:
[package]
versioned_files = ["package.json"]
changelog = "CHANGELOG.md"
extra_changelog_sections = [
{ name = "Documentation", types = ["docs"] },
{ name = "Notes", types = ["note"] },
]
[changes]
ignore_conventional_commits = true
[[workflows]]
name = "prepare-release"
help_text = "Prepare a release PR"
[[workflows.steps]]
type = "Command"
command = "git switch -c release"
[[workflows.steps]]
type = "PrepareRelease"
[[workflows.steps]]
type = "Command"
command = "git commit -m \"chore: prepare release $version\""
[[workflows.steps]]
type = "Command"
command = "git push --force --set-upstream origin release"
[[workflows.steps]]
type = "CreatePullRequest"
base = "dev"
[workflows.steps.title]
template = "chore: prepare release $version"
[workflows.steps.body]
template = """
> [!IMPORTANT]
> Merging this PR will create a new release.
$changelog"""
[[workflows]]
name = "release"
help_text = "Create a GitHub release"
[[workflows.steps]]
type = "Release"
[[workflows]]
name = "document-change"
help_text = "Create a new change file to be included in the next release"
[[workflows.steps]]
type = "CreateChangeFile"
[github]
owner = "SableClient"
repo = "Sable"
[release_notes]
# The <!-- commit:$commit_hash --> marker is used by prepare-release.yml
change_templates = [
"### $summary <!-- commit:$commit_hash -->\n\n$details",
"* $summary <!-- commit:$commit_hash -->",
]
Note that my package.json version right now is 1.7.0
and if I have a single change like it this in my changeset:
---
'default': minor
---
Show group DM participants with triangle avatar layout. Group DMs now display up to 3 member avatars in a triangle formation (most recent sender on top), with bot filtering and DM count badge support.
You can replace 'default' with anything but default.
I get this when I run knope prepare-release --dry-run:
> knope prepare-release --dry-run
Would run git switch -c release
Would run git commit -m "chore: prepare release 1.7.0"
Would run git push --force --set-upstream origin release
Would create or update a pull request from HEAD to dev:
Title: chore: prepare release 1.7.0
Body: > [!IMPORTANT]
> Merging this PR will create a new release.
## Features
* Added ability to start calls in DMs and rooms. DM calls will trigger a notification popup & ringtone (for other sable users/compatible clients, probably). <!-- commit:0110522 -->
* Merge in upstream call things and remove the duplicate new voice room button. <!-- commit:49af037 -->
* Add button to save a sticker you see in the message timeline to your personal account sticker pack. <!-- commit:e4fb834 -->
* Added config option `hideUsernamePasswordFields` for hosts to hide username and password fields from login page. <!-- commit:7a700ab -->
* Add silent replies when clicking the bell icon during composing a reply. <!-- commit:1647586 -->
* Device names are now dynamic, showing your browser and OS (e.g., "Sable on Firefox for Windows") instead of just "Sable Web". <!-- commit:b71320e -->
* Implement an interface to allow room/space profile customization without needing to call the relating commands directly. <!-- commit:4839466 -->
* Added hover menu inside Message Version Pop-out. <!-- commit:9562aa8 -->
## Fixes
* Added a few accessibility tags to the elements involved in message composing. <!-- commit:485834b -->
* Clarify notification settings and functionality once and for all. <!-- commit:8053c45 -->
* Fix DM notifications, encrypted event notifications, and enable reaction notifications <!-- commit:976d2e8 -->
* Fix images without an empty body display as "Broken Message" <!-- commit:b66f53a -->
* Prevent overly wide emotes from taking up the entire screen width. <!-- commit:bee0356 -->
* Change to more standard compliant msgtype `m.emote` for `/headpat` event. <!-- commit:399915d -->
* fix message forwarding metadata leak when forwarding from private rooms [see issue 190](https://github.com/SableClient/Sable/issues/190) <!-- commit:6ec4f99 -->
* "Underline Links" setting no longer affects the entire app, only links in chat, bios, and room descriptions. <!-- commit:c51e895 -->
it's pulling changelogs from 1.7.0, instead of creating 1.8.0 or even just erroring out.
If I fix the mistake in the changeset:
---
default: minor
---
Show group DM participants with triangle avatar layout. Group DMs now display up to 3 member avatars in a triangle formation (most recent sender on top), with bot filtering and DM count badge support.
I get this when I run knope prepare-release --dry-run:
> knope prepare-release --dry-run
Would run git switch -c release
Would add the following to package.json: version = 1.8.0
Would delete .changeset\feat-group-dm-triangle-avatars.md
Would add the following to CHANGELOG.md:
## 1.8.0 (2026-03-12)
### Features
* Show group DM participants with triangle avatar layout. Group DMs now display up to 3 member avatars in a triangle formation (most recent sender on top), with bot filtering and DM count badge support. <!-- commit:c6bb5ed -->
Would add files to git:
package.json
.changeset/feat-group-dm-triangle-avatars.md
CHANGELOG.md
Would run git commit -m "chore: prepare release 1.8.0"
Would run git push --force --set-upstream origin release
Would create or update a pull request from HEAD to dev:
Title: chore: prepare release 1.8.0
Body: > [!IMPORTANT]
> Merging this PR will create a new release.
## Features
* Show group DM participants with triangle avatar layout. Group DMs now display up to 3 member avatars in a triangle formation (most recent sender on top), with bot filtering and DM count badge support. <!-- commit:c6bb5ed -->
Which is the expected outcome.
sorry for the long issue, idk how else to explain this.
Knope cli tries to prepare a pre-release when changesets don't match and the behavior is really weird, It pulls changes from last versions.
for example:
I have this knope config:
Note that my package.json version right now is 1.7.0
and if I have a single change like it this in my changeset:
You can replace
'default'with anything but default.I get this when I run
knope prepare-release --dry-run:it's pulling changelogs from 1.7.0, instead of creating 1.8.0 or even just erroring out.
If I fix the mistake in the changeset:
I get this when I run
knope prepare-release --dry-run:Which is the expected outcome.
sorry for the long issue, idk how else to explain this.