[[bin]]
name = "polkadot"
path = "src/main.rs"

[package]
name = "polkadot"
description = "Implementation of a https://polkadot.network node in Rust based on the Substrate framework."
license = "GPL-3.0-only"
version = "0.8.27"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
readme = "README.md"

[dependencies]
cli = { package = "polkadot-cli", path = "cli" }
color-eyre = "0.5.10"
thiserror = "1.0.22"
futures = "0.3.8"
service = { package = "polkadot-service", path = "node/service" }
parity-util-mem = { version = "*", default-features = false, features = ["jemalloc-global"] }

[dev-dependencies]
assert_cmd = "1.0.2"
nix = "0.19.1"
tempfile = "3.1.0"

[workspace]
members = [
	"cli",
	"core-primitives",
	"erasure-coding",
	"primitives",
	"runtime/common",
	"runtime/parachains",
	"runtime/polkadot",
	"runtime/kusama",
	"runtime/rococo",
	"runtime/westend",
	"runtime/test-runtime",
	"statement-table",
	"validation",
	"xcm",
	"xcm/xcm-builder",
	"xcm/xcm-executor",
	"node/collation-generation",
	"node/core/av-store",
	"node/core/backing",
	"node/core/bitfield-signing",
	"node/core/candidate-selection",
	"node/core/candidate-validation",
	"node/core/chain-api",
	"node/core/proposer",
	"node/core/provisioner",
	"node/core/runtime-api",
	"node/network/bridge",
	"node/network/pov-distribution",
	"node/network/protocol",
	"node/network/statement-distribution",
	"node/network/bitfield-distribution",
	"node/network/availability-distribution",
	"node/network/collator-protocol",
	"node/overseer",
	"node/primitives",
	"node/service",
	"node/subsystem",
	"node/subsystem-test-helpers",
	"node/subsystem-util",
	"node/test/client",
	"node/test/service",
	"parachain/test-parachains",
	"parachain/test-parachains/adder",
	"parachain/test-parachains/adder/collator",
]

[badges]
maintenance = { status = "actively-developed" }

# make sure dev builds with backtrace do
# not slow us down
[profile.dev.package.backtrace]
opt-level = 3

[profile.release]
# Polkadot runtime requires unwinding.
panic = "unwind"

[features]
runtime-benchmarks=["cli/runtime-benchmarks"]
real-overseer=["cli/real-overseer"]

# Configuration for building a .deb package - for use with `cargo-deb`
[package.metadata.deb]
name = "polkadot"
extended-description = "Implementation of a https://polkadot.network node in Rust based on the Substrate framework."
section = "misc"
maintainer = "martin@parity.io"
license-file = ["LICENSE", "0"]
# https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html
maintainer-scripts = "scripts/packaging/deb-maintainer-scripts"
assets = [
	["target/release/polkadot", "/usr/bin/", "755"],
	["scripts/packaging/polkadot.service", "/lib/systemd/system/", "644"]
]
conf-files = [
	"/etc/default/polkadot"
]

# Configuration for building an .rpm package - for use with `cargo-rpm`
[package.metadata.rpm]
package = "polkadot"

[package.metadata.rpm.cargo]
buildflags = ["--release"]

[package.metadata.rpm.targets]
polkadot = { path = "/usr/bin/polkadot" }

[package.metadata.rpm.files]
"../scripts/packaging/polkadot.service" = { path = "/usr/lib/systemd/system/polkadot.service", mode = "644" }
