## 0.5.1 (2025-08-10)

### Features

- Support `workspace.package.version` in Cargo.toml

## 0.5.0 (2025-08-10)

### Breaking Changes

- `Change` now has `summary` and `details` instead of `description`
- `Change` no longer impls `From<changesets::PackageChange>`
- `ChangeSource` variants are now a struct style instead of tuple style
- `Package::get_changes` has a completely different signature, to support providing commit info for each change
- `ReleaseNotes` has new, required `change_templates` field
- Swapped `From<ChangeType>` to `From<&ChangeType>` for `changesets::ChangeType`

#### `ReleaseNotes::create_release` is no longer `pub`

This wasn't being used by Knope or Knope Bot directly, and non-pub functions give better lints.
If anyone is using this crate and needed that function, let me know!

### Features

- `impl Default for ReleaseNotes`

## 0.4.2 (2025-06-23)

### Features

#### Add support for dependencies in `package.json` files

You can now update the `dependencies` and `devDependencies` of a `package.json` like this:

```toml
[package]
versioned_files = [
  # Update @my/package-name in dependencies and devDependencies whenever this package version updates
  { path = "package.json", dependency = "@my/package-name" }
]
```

#### Support `package-lock.json` files

`package-lock.json` files are [now supported](https://knope.tech/reference/config-file/packages/#package-lockjson)
as `versioned_files` both for single packages and dependencies (in monorepos).

These files will be auto-detected and updated if using the default (no `[package]` or `[packages]`) config, so
this is a breaking change for those users.

### 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:

```toml
[package]
versioned_files = [
  "package.json",
  { path = "package.json", dependency = "aDependency" },  # Before this fix, this was ignored
  "aDependency/package.json"
]
```

This use-case is now supported!

## 0.4.1 (2025-04-05)

### Features

- Print each step before it runs when `--verbose` is set (#1399)

## 0.4.0 (2025-04-05)

### Breaking Changes

- Change the return type of `Config::defaults`

### Features

#### Add support for Tauri config files

Supports [Tauri configuration files](https://v1.tauri.app/v1/references/configuration-files) in json format named `tauri.conf.json`, `tauri.macos.conf.json`, `tauri.windows.conf.json`, and `tauri.linux.conf.json`.

## 0.3.3 (2025-03-12)

### Features

#### Add versioning support for `gleam.toml` files

##1352 by @dbanty

Closes #1350

## 0.3.2 (2025-03-08)

### Features

#### Add basic support for versioning of `pom.xml` files

`pom.xml` must 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 `PrepareRelease` step 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

- Update to Rust edition 2024 and MSRV 1.85

## 0.3.1 (2025-01-01)

### Fixes

- Fix panic when Cargo.toml is missing a `version`
- Remove warning for Cargo.lock version 4

## 0.3.0 (2024-08-18)

### Breaking Changes

#### Support for dependencies within `Cargo.toml`

Dependencies within a `Cargo.toml` file [can now be updated](https://knope.tech/reference/config-file/packages/)
as part of `versioned_files`.

### Features

#### Support for `Cargo.lock` in `versioned_files`

Dependencies within a `Cargo.lock` [can now be updated](https://knope.tech/reference/config-file/packages#cargolock).

## 0.2.0 (2024-08-10)

### Breaking Changes

- Move HeaderLevel to internal, parse with Changelog::new

### Features

- `impl From<ReleaseTag> for String`

## 0.1.0 (2024-08-04)

### Breaking Changes

#### Everything has changed

And hopefully it won't break anyone since this crate isn't ready for external consumers yet!

### Features

- Add handling of changes (conventional commits, changesets)

## 0.0.1 (2024-04-14)

### Features

- Initial release
