[package]
edition = "2024"
rust-version = "1.90.0"
name = "monochange"
version = "0.6.2"
build = false
include = [
"src/**/*.rs",
"src/**/*.yml",
"src/**/*.toml",
"src/**/*.template",
"tests/**/*.rs",
"benches/**/*.rs",
"Cargo.toml",
"readme.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Manage versions and releases for your multiplatform, multilanguage monorepo"
documentation = "https://docs.rs/monochange"
readme = "readme.md"
keywords = [
"cli",
"changelog",
"releases",
"versioning",
"monorepo",
]
categories = ["development-tools"]
license = "Unlicense"
repository = "https://github.com/monochange/monochange"
resolver = "2"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }-v{ version }{ archive-suffix }"
pkg-fmt = "tgz"
bin-dir = "{ bin }{ binary-ext }"
[features]
cargo = ["monochange_cargo"]
dart = ["monochange_dart"]
default = [
"cargo",
"npm",
"deno",
"dart",
"python",
"go",
"github",
"gitlab",
"gitea",
"forgejo",
"mcp",
]
deno = ["monochange_deno"]
forgejo = [
"monochange_forgejo",
"monochange_core/http",
]
gitea = [
"monochange_gitea",
"monochange_core/http",
]
github = [
"monochange_github",
"monochange_core/http",
]
gitlab = [
"monochange_gitlab",
"monochange_core/http",
]
go = ["monochange_go"]
mcp = ["rmcp"]
npm = ["monochange_npm"]
python = ["monochange_python"]
[lib]
name = "monochange"
path = "src/lib.rs"
[[bin]]
name = "mc"
path = "src/bin/mc.rs"
[[bin]]
name = "monochange"
path = "src/main.rs"
[[test]]
name = "affected"
path = "tests/affected.rs"
[[test]]
name = "benchmark_cli_comment"
path = "tests/benchmark_cli_comment.rs"
[[test]]
name = "cargo_lockfile_fast_path"
path = "tests/cargo_lockfile_fast_path.rs"
[[test]]
name = "changelog_formats"
path = "tests/changelog_formats.rs"
[[test]]
name = "changeset_context"
path = "tests/changeset_context.rs"
[[test]]
name = "changeset_policy"
path = "tests/changeset_policy.rs"
[[test]]
name = "changeset_target_metadata"
path = "tests/changeset_target_metadata.rs"
[[test]]
name = "cli_help"
path = "tests/cli_help.rs"
[[test]]
name = "cli_main_binary"
path = "tests/cli_main_binary.rs"
[[test]]
name = "cli_output"
path = "tests/cli_output.rs"
[[test]]
name = "cli_progress"
path = "tests/cli_progress.rs"
[[test]]
name = "cli_step_input_overrides"
path = "tests/cli_step_input_overrides.rs"
[[test]]
name = "cli_step_when"
path = "tests/cli_step_when.rs"
[[test]]
name = "github_releases"
path = "tests/github_releases.rs"
[[test]]
name = "hosted_release_benchmarks"
path = "tests/hosted_release_benchmarks.rs"
[[test]]
name = "manifest_formatting"
path = "tests/manifest_formatting.rs"
[[test]]
name = "pre_stable_versioning"
path = "tests/pre_stable_versioning.rs"
[[test]]
name = "prepared_release_artifacts"
path = "tests/prepared_release_artifacts.rs"
[[test]]
name = "release_apply"
path = "tests/release_apply.rs"
[[test]]
name = "release_group_propagation"
path = "tests/release_group_propagation.rs"
[[test]]
name = "release_notes_and_propagation"
path = "tests/release_notes_and_propagation.rs"
[[test]]
name = "release_pull_requests"
path = "tests/release_pull_requests.rs"
[[test]]
name = "release_record"
path = "tests/release_record.rs"
[[test]]
name = "source_providers"
path = "tests/source_providers.rs"
[[test]]
name = "telemetry"
path = "tests/telemetry.rs"
[[test]]
name = "test_support"
path = "tests/test_support.rs"
[[bench]]
name = "cli_commands"
path = "benches/cli_commands.rs"
harness = false
[dependencies.anstyle]
version = "1.0"
default-features = false
[dependencies.chrono]
version = "0.4"
features = [
"clock",
"std",
]
default-features = false
[dependencies.clap]
version = "4"
features = [
"derive",
"color",
]
default-features = true
[dependencies.glob]
version = "0.3"
default-features = false
[dependencies.inquire]
version = "0.9"
features = ["crossterm"]
default-features = true
[dependencies.minijinja]
version = "2"
default-features = false
[dependencies.monochange_analysis]
version = "0.6.2"
[dependencies.monochange_cargo]
version = "0.6.2"
optional = true
[dependencies.monochange_changelog]
version = "0.6.2"
[dependencies.monochange_config]
version = "0.6.2"
[dependencies.monochange_core]
version = "0.6.2"
[dependencies.monochange_dart]
version = "0.6.2"
optional = true
[dependencies.monochange_deno]
version = "0.6.2"
optional = true
[dependencies.monochange_forgejo]
version = "0.6.2"
optional = true
[dependencies.monochange_gitea]
version = "0.6.2"
optional = true
[dependencies.monochange_github]
version = "0.6.2"
optional = true
[dependencies.monochange_gitlab]
version = "0.6.2"
optional = true
[dependencies.monochange_go]
version = "0.6.2"
optional = true
[dependencies.monochange_graph]
version = "0.6.2"
[dependencies.monochange_lint]
version = "0.6.2"
[dependencies.monochange_npm]
version = "0.6.2"
optional = true
[dependencies.monochange_publish]
version = "0.6.2"
[dependencies.monochange_python]
version = "0.6.2"
optional = true
[dependencies.monochange_semver]
version = "0.6.2"
[dependencies.monochange_telemetry]
version = "0.6.2"
[dependencies.monochange_test_helpers]
version = "0.6.2"
[dependencies.rayon]
version = "1.10"
default-features = false
[dependencies.regex]
version = "1"
features = [
"std",
"unicode-perl",
]
default-features = false
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"rustls-no-provider",
]
default-features = false
[dependencies.ring]
version = "0.17"
default-features = false
[dependencies.rmcp]
version = "1"
features = [
"server",
"transport-io",
"macros",
]
optional = true
default-features = false
[dependencies.rustls]
version = "0.23"
features = [
"ring",
"logging",
"std",
"tls12",
]
default-features = false
[dependencies.semver]
version = "1"
features = ["serde"]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
default-features = false
[dependencies.serde_json]
version = "1"
default-features = false
[dependencies.serde_yaml_ng]
version = "0.10"
default-features = false
[dependencies.shlex]
version = "1"
default-features = false
[dependencies.similar]
version = "3.0.0"
features = [
"inline",
"text",
]
default-features = false
[dependencies.tempfile]
version = "3"
default-features = false
[dependencies.termimad]
version = "0.34"
default-features = false
[dependencies.thiserror]
version = "2.0.18"
default-features = false
[dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"macros",
"process",
"fs",
"time",
"sync",
"rt-multi-thread",
"macros",
"process",
]
default-features = false
[dependencies.toml]
version = "1.1.2"
default-features = false
[dependencies.toml_edit]
version = "0.25.10"
features = ["parse"]
default-features = false
[dependencies.tracing]
version = "0.1"
features = ["attributes"]
default-features = false
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"fmt",
"ansi",
]
default-features = false
[dependencies.typed-builder]
version = "0.23.2"
default-features = false
[dependencies.urlencoding]
version = "2"
default-features = false
[dev-dependencies.criterion]
version = "0.8.2"
features = ["async_tokio"]
default-features = true
[dev-dependencies.etest]
version = "0.3"
default-features = true
[dev-dependencies.httpmock]
version = "0.8.3"
default-features = true
[dev-dependencies.insta]
version = "1"
features = [
"filters",
"json",
]
default-features = true
[dev-dependencies.insta-cmd]
version = "0.6"
default-features = true
[dev-dependencies.monochange_config]
version = "0.6.2"
[dev-dependencies.portable-pty]
version = "0.9"
default-features = true
[dev-dependencies.rstest]
version = "0.26.1"
default-features = true
[dev-dependencies.similar-asserts]
version = "2.0.0"
default-features = true
[dev-dependencies.temp-env]
version = "0.3"
features = ["async_closure"]
default-features = true
[lints.clippy]
blocks_in_conditions = "allow"
cargo_common_metadata = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
expl_impl_clone_on_copy = "allow"
indexing_slicing = "deny"
items_after_statements = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
no_effect_underscore_binding = "allow"
tabs-in-doc-comments = "allow"
too_many_lines = "allow"
wildcard_dependencies = "deny"
wildcard_imports = "allow"
[lints.clippy.complexity]
level = "warn"
priority = -1
[lints.clippy.correctness]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.clippy.perf]
level = "warn"
priority = -1
[lints.clippy.style]
level = "warn"
priority = -1
[lints.clippy.suspicious]
level = "warn"
priority = -1
[lints.rust]
edition_2024_expr_fragment_specifier = "allow"
unsafe_code = "deny"
unstable_features = "deny"
unused_extern_crates = "warn"
unused_import_braces = "warn"
unused_lifetimes = "warn"
unused_macro_rules = "warn"
unused_qualifications = "warn"
variant_size_differences = "warn"
[lints.rust.rust_2021_compatibility]
level = "warn"
priority = -1
[lints.rust.rust_2024_compatibility]
level = "warn"
priority = -1