chore(deps): update dependency knope to v0.22.2#18
Merged
Conversation
dbanty
approved these changes
Feb 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.10.0→0.22.2Release Notes
knope-dev/knope (knope)
v0.22.2Features
Add
[changes]config section withignore_conventional_commitssettingAdds a new top-level
[changes]configuration section to control how Knope processes changes. The first setting in this section isignore_conventional_commits, which when set totrue, makes Knope ignore conventional commits and only use changesets for determining version bumps and changelog entries.This replaces the deprecated step-level
ignore_conventional_commitsoption on thePrepareReleasestep. Useknope --upgradeto automatically migrate from the old format to the new one.Example configuration:
See the changes config documentation for more details.
Fixes
v0.22.1Features
Fixes
Fix
$versionvariable used after--override-versionPreviously, if you used
BumpVersionorPrepareReleasewith--override-versionand then used a$versionvariable witha
Command, the variable would still be set to the original version (pre-bump).Thanks @andrewmcgivery for the report!
v0.22.0Breaking Changes
Knope now specifies the current local commit when creating releases on GitHub or Gitea
Previously, releases were created at the head of the default branch.
v0.21.7Fixes
Require at least one package to be selected to create a change file
Fixes #1686. Thanks for the report @t-moe!
v0.21.6Fixes
v0.21.5Features
Add support for updating version numbers in arbitrary text files using regex patterns. You can now specify versioned files with a
regexfield containing a named capture group calledversion:This allows Knope to automatically update version numbers in documentation, installation instructions, and other text files that don't have a structured format.
v0.21.4Features
Add first-class Deno release support to Knope
##1577 by @jeckhart
v0.21.3Fixes
Fix pre-release versioning when there are no previous stable versions
Previously, if there was not a Git tag containing a previous stable version, Knope would default to "0.0.0".
Because of the special 1.0.0 rules, this also meant there was no way to start a project at a pre-release of 1.0.0
with no prior releases.
Now, if there are no previous stable releases, Knope will use the version in your files instead of calculating a version
based on "0.0.0".
Fixes #1515, thanks for the report @hazre!
v0.21.2Features
workspace.package.versionin Cargo.tomlv0.21.1Features
Add support for customizing release note entries
You can now customize individual entries in release notes to change the formatting or add authors/hashes to entries when available.
v0.21.0Breaking Changes
Change to default handling of top-level
package.jsonfilesWhen using the default config (no
[package]or[packages]), Knope will now treat a top-levelpackage.jsonfilewhich contains a
workspacesproperty as the entrypoint into a monorepo and not a single versioned_file package.Support
package-lock.jsonfilespackage-lock.jsonfiles are now supportedas
versioned_filesboth for single packages and dependencies (in monorepos).These files will be auto-detected and updated if using the default (no
[package]or[packages]) config, sothis is a breaking change for those users.
Features
Add support for dependencies in
package.jsonfilesYou can now update the
dependenciesanddevDependenciesof apackage.jsonlike this:Support for NPM workspaces
Knope now supports NPM-style workspaces when using the default config!
Fixes
Fix multiple versioned files with same path
Previously, if you referenced the same file multiple times in versioned_files, only the first instance would apply.
Now, if you reference the same path multiple times, each instance will be processed sequentially.
Consider a mono-repo where every package should be versioned in lockstep:
This use-case is now supported!
v0.20.0Breaking Changes
Add default variables
Default variables will now apply anywhere they can be
used—including the
CommandandCreatePullRequeststeps.If any of the defaults, like
$versionor$changelog, appear in a variable-supporting locationand you don't have explicit
variables =set for that step, this is a breaking change.Fixes
Fix detecting previous releases with no changelog
Previously, if you ran a
PrepareReleasestep with nochangelogto modify in one workflow and then aReleasestepin a separate workflow,
Releasewould fail to create a Git tag.Now, a release with "no notes" will properly be created if the last Git tag doesn't match the current version of
a file.
If a forge is configured, a release will be created on that forge without any notes,
and a title simply containing the version.
Fixes #1267
PrepareReleasewill allow empty releases when using--override-versionFixes #1423
v0.19.2Features
--verboseis set (#1399)v0.19.0Breaking Changes
Updated config locations
Knope is internally using a newer crate for storing persistent config, so some things (like GitHub tokens) may need to
be updated on next run.
Documentation
Document creating releases with Knope Bot
Knope Bot can make creating releases easier than ever now!
v0.18.5Features
Add versioning support for
gleam.tomlfiles##1352 by @dbanty
Closes #1350
v0.18.4Features
Add basic support for versioning of
pom.xmlfilespom.xmlmust contain a<version>field in the<project>section.Dependencies and multi-module projects are not yet supported.
Fixes
Don't normalize existing changeset file names
When a new change file is created via
CreateChangeFile,its name is generated by converting the summary of the change to all lowercase letters and underscores.
This same normalization was happening when opening an existing change file, which prevented that change file from
being deleted during a
PrepareReleasestep if it didn't match the normalized version(for example, was created with a different tool or by hand).
This has been fixed.
Fixes #1340
Notes
v0.18.3Fixes
v0.18.2Fixes
versionv0.18.1Features
Support glob patterns for package assets
You can now provide a glob pattern when defining package assets instead of specifying each file individually in a list.
This is especially useful when your asset names are dynamic (containing a version, date, or hash, for example) or
when different releases have different assets.
Knope will not error if the glob pattern doesn't match any files.
You can't combine glob patterns with individual file names.
v0.18.0Breaking Changes
Auto-update Cargo workspace dependencies when using default config
If using the Cargo workspace default configuration,
Knope will now attempt to automatically update the version of workspace members in dependencies and the workspace
Cargo.lock.To avoid this, use
knope --generateto create a manual config file and customize the behavior.Don't create any go module tags that match package names
Knope already avoided creating duplicate tags for Go modules which match tags that would be created by the
Releasestep for the package.Now, Knope won't create a Go module tag if it matches a release tag for any configured package, to avoid potential conflicts.
Features
Support for
Cargo.lockinversioned_filesDependencies within a
Cargo.lockcan now be updated.Support for dependencies within
Cargo.tomlDependencies within a
Cargo.tomlfile can now be updatedas part of
versioned_files.Fixes
Deduplicate release actions
Knope now collects all actions to be performed across all packages and runs them at once with deduplication.
This means that if multiple packages write to the same
versioned_file, for example, the file will only be writtena single time.
Changesets will also only be deleted once, files will be staged to Git only once, etc.
This mostly only impacts the output during
--dry-runor--verbose, but is especially important for the newdependency updating and lockfile support.
v0.17.0Breaking Changes
Forge date now matches CHANGELOG date
If you prepare a release and generate a changelog Markdown file in one workflow, then create a forge release in a
separate workflow, the forge release date will now match the changelog date (if any). Previously, the forge release got
the current date (at the time of running the workflow).
Match scope-filtering behavior to docs
The docs state, in regard to a
package.scopesconfig, "if not defined, Knope will consider all scopes."This is the intended behavior, but wasn't true until now. The actual behavior, for multi-package repos, was that if
any package had scopes defined, all would start filtering scopes.
This has been corrected, packages are now more independent in their scope filtering behavior.
Properly use case insensitivity when checking conventional commits
Per the conventional commits spec all units of a
conventional commit are case-insensitive.
Until now, Knope was treating commit footers and scopes as case-sensitive. This has been corrected, which may result
in different behavior for some projects.
v0.16.2Features
Add
get-versiondefault workflowFor single-package repositories with no custom workflows defined,
there is now a default workflow called
get-versionthatprints out the current package version.
If you want similar functionality for multi-package repositories, please add your ideas to issue #988.
Thanks to @BatmanAoD for the suggestion and @alex-way for the implementation!
PR #994 closed #885.
Add option to ignore conventional commits
You can now add
ignore_conventional_commits = trueto aPrepareReleasestepto ignore commit messages (and only consider changesets):
PR #1008 closes #924. Thanks for the suggestion @ematipico!
Fixes
variablesfield forCreatePullRequesttitle and bodyDocumentation
Created a new recipe for converting a single-package repo into a monorepo
Knope itself is now a monorepo—the process of converting it was documented here.
v0.16.1Compare Source
Features
Add
help_textoption to workflows[[workflows]]can now havehelp_text:Example:
The message is displayed when running
knope --help:PR #960 closes issue #959. Thanks @alex-way!
Use bullets to describe simple changes
The previous changelog & forge release format used headers for the summary of all changes, these entries were hard
to follow for simple changes like this:
Now, simple changes are described with bullets at the top of the section. More complex changes will come after
any bullets, using the previous format:
Right now, a simple change is any change which comes from a conventional commit (whether from the commit summary or
from a footer) or a changeset with only a header in it. Here are three simple changes:
A complex change is any changeset which has content (not just empty lines) below the header.
PR #969 implemented #930. Thanks for the suggestion @ematipico!
v0.16.0Compare Source
Breaking Changes
Don't delete changesets for prereleases
Previously, using
PrepareReleaseto create a prerelease (for example, with--prerelease-label) would delete allchangesets, just like a full release. This was a bug, but the fix is a breaking change if you were
relying on that behavior.
Features
Add a
shellvariable forCommandstepsYou can now add
shell=trueto aCommandstep to run the command in the current shell.This lets you opt in to the pre-0.15.0 behavior.
v0.15.0Compare Source
Breaking Changes
Don't run
Commandsteps in shellThe
Commandstep no longer attempts to run the command in a default shell for the detected operating system.This fixes a compatibility issue with Windows.
If this change doesn't work for your workflow, please open an issue describing your need so we can fix it.
Notably, using
&&in a command (as was the case for some default workflows) will no longer work. Instead, split thisinto multiple
Commandsteps.PR #919 closes issue #918. Thanks for reporting @alex-way!
v0.14.1Compare Source
Features
Add
ignore_go_major_versioningoptionYou can now set
ignore_go_major_versioning = truefor a package inknope.tomlto turn off the major version validation & updating ingo.modfiles.More details in the new docs.
Closes #863, thanks for the suggestion @BatmanAoD!
v0.14.0Compare Source
Breaking Changes
Cargo.tomlfiles must now have apackage.namepropertyThis was already required by Cargo, but wasn't enforced by Knope until now. Before, a
Cargo.tomlfile likewas acceptable, but now it must be
Features
Add basic Cargo workspace support
If you have a
Cargo.tomlfile in the working directory which represents a Cargo workspace containing fixed members, like:then Knope will now treat each member like a package.
There must be a
Cargo.tomlfile in each member directory, or Knope will error.This doesn't work with path globbing yet, only manual directory entries. See the new docs for more details.
Use default packages/workflows even when
knope.tomlexistsIf you define a
knope.tomlfile without any packages, Knope will assume the default packages (as if you had noknope.tomlfile at all).Likewise, if you have no
[[workflows]]in aknope.tomlfile, Knope will assume the default workflows.Fixes
Homebrew tap now contains Apple Silicon binaries and auto-publishes new versions (#827)
v0.13.4Compare Source
Features
Gitea support
PR #759 closed issue #743. Thank you, @FallenValkyrie!
CreatePullRequeststepReleasestepSelectGiteaIssuestepTo use these new steps, just add a new section to your configuration, like this:
You can now use the supported steps in the same way as their GitHub equivalents.
v0.13.3Compare Source
Features
Support
pubspec.yamlinversioned_filesKnope can now version Dart projects! You can now add a
pubspec.yamlfile to yourpackage.versioned_files.PR #732 closes #731. Thanks @FallenValkyrie!
v0.13.2Compare Source
Fixes
Add
[github]section withknope --generate(#666)--dry-runwill no longer report deleting the same changeset twice (#668)CreateChangeFile(likeknope document-change) now prints package names. (#669)v0.13.1Compare Source
Documentation
There is a new docs website
Check out https://knope.tech/ to see the new docs, and please report any errors or gaps!
All error messages within Knope should be updated to point to the new docs.
If any are still pointed at GitHub pages (as of this version), that's a bug!
As part of this, you can also now install Knope through Chocolatey and Homebrew!
v0.13.0Compare Source
Breaking Changes
Change changeset title level
The level of the title of a changeset no longer impacts the level of the release header in the changelog. To make this more obvious, changeset title are now level one headers by default. This is a breaking change because older versions of Knope will no longer properly handle the changesets from newer versions of Knope.
Change where new versions are inserted in changelog
In practice, this will not impact most changelogs, however, previous versions of Knope looked for the first header at a certain level (e.g., starting with
##) and inserted the new version right before that. Now, Knope looks for the first header that is parseable as a semver version (e.g.,## 1.2.3) and inserts the new version right before that.This will make it harder to adopt Knope in projects that have an existing changelog which is not of the same format,
but it makes inserting the new version in the changelog more robust.
Features
Allow overriding built-in changelog sections
If you don't want to use the default changelog sections of "Breaking changes", "Features",
and "Fixes", you can now override them by using the equivalent changeset types!
Overriding them resets their position in the changelog, so you probably want to reset all of them if you reset any.
This looks like:
Support level-one release headers in changelogs
If the last release in a changelog file has a level-one header instead of Knope's default of level-two, new releases will be created with level-one headers as well. Sections will then be level two instead of level three.
v0.12.0Compare Source
Breaking Changes
Prevent bumping major version of a
go.modfileAccording to the docs, aside from the
v0->v1transition,go.modfiles should not be updated for new major versions, but instead a newv{major}directory should be created with a newgo.modfile. This is for compatibility with older versions of Go tools.In order to prevent someone from accidentally doing the wrong thing, Knope will no longer bump a
go.modfile tov2unless--override-versionis used to bypass this check. Additionally, if ago.modfile is in the matching versioned directory (e.g., thego.modfile ending in/v2is under a directory calledv2), Knope will not allow the major version of that file to be bumped, as it would break the package.Fixes
Handle version-specific go modules correctly
Fixes #584 from @BatmanAoD.
If you have a
go.modfile representing a specific major version in a directory (as recommended in the go docs), Knope will now tag it correctly. Previously, av2/go.modfile would generate a tag likev2/v2.1.3. Now, it will generate a tag likev2.1.3.Additionally, when determining the current version for a
go.modfile, only tags which match the major version of thego.modfile will be considered.Properly version named packages containing a root
go.modfileConsider this package config in a
knope.toml:The
Releasestep previously (and will still) add a tag likesomething/v1.2.3, however the correct Go module tag isv1.2.3(without the package name prefix). Knope will now correctly add this second tag (previously, top-level tags were only added for single-package repos).Documentation
Document conflict between package names and go module names
It is possible to write a
knope.tomlfile which will cause conflicting tags during theReleasestep if you havego.modfiles in nested directories. This is now documented.v0.11.1Compare Source
Features
Add a
ChangelogEntryvariable for substitutionAnywhere that the existing
Versionvariable can be used (for example, in theCommandstep), you can now also useChangelogEntryto get the section of the changelog that corresponds to the current version. For example, you could (almost) replicate Knope's GitHub Release creation without Knope's GitHub integration with a workflow like this:Added an
allow_emptyoption to thePrepareReleasestepCloses #416
If you want to run
PrepareReleaseon every push to a branch without it failing when there's nothing to release, you can now include theallow_emptyoption like this:Then, you can use some logic to gracefully skip the rest of your CI process if there is nothing to release. For example, in GitHub Actions, you could do something like this:
This allows you to differentiate between there being nothing to release and the
PrepareReleasestep failing for other reasons.New
CreatePullRequeststepThe new
CreatePullRequeststep allows you to create or update a pull request on GitHub. It's designed to be a nice way to preview and accept new releases via a pull request workflow, but could certainly work for more contexts as well! To see an example of the new PR-based release workflow, check out Knope's prepare-release workflow and Knope's release workflow.Fixes
Only consider prereleases newer than the last stable
This fixes a regression in the previous version of Knope where all prereleases would be considered, rather than just those tagged after the latest stable version.
Documentation
GitHub Actions Recipes
There's a new section of the docs with some recipes for using Knope in GitHub Actions. If you have suggestions for additional recipes, please open a discussion!
v0.11.0Compare Source
Breaking Changes
Ignore unreachable tags when determining version
PR #574 fixes issue #505 from @BatmanAoD.
Previously, the latests tags were always used to determine the current version, even if those tags were not reachable from
HEAD. Now, only reachable tags will be considered. Use the--verboseflag to see tags which are being ignored.Fixes
Consistent commit selection in branching histories
PR #574 fixes issue #505 from @BatmanAoD.
Previous versions of Knope did not handle branching histories correctly. In some cases, this could result in commits from previous stable releases being included in a new release. It could also result in missing some commits that should have been included. This has been fixed—Knope should provide you the same commit list that
git rev-list {previous_stable_tag}..HEADwould.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.