Files
inbuxa-server/Cargo.toml
T
jcoffey-dev 3a2836ef24 One version for the workspace: 27.1.0-rc.1, shown as 27.1-rc.1
The version is set once, in [workspace.package] in Cargo.toml, and every
member inherits it. brand_version! now comes from it through a small proc
macro (proc_macros::display_version) that names it the way tags and images
will: 27.1.0 is "27.1", 27.1.3 is "27.1.3", 27.1.0-rc.1 is "27.1-rc.1".
Anything else, including the old dated scheme, fails the build.

brand_version_full! is gone, and with it the "(upstream 0.16.27)" suffix
in --version, the startup banner, the data-store console, telemetry, the
JMAP session's "implementation" field and IMAP ID. 0.16.27 was the last
import, so there is no upstream version left to show.

Semver's parser skips a pre-release or build suffix, so Semver::current()
can't panic on an RC. It has no callers today; it gets a test anyway.
2026-10-28 08:38:45 -07:00

111 lines
3.0 KiB
TOML

[workspace]
resolver = "2"
# Vendored crates are patched in below, not built as members.
exclude = ["vendor"]
members = [
"crates/main",
"crates/types",
"crates/http",
"crates/http-proto",
"crates/jmap",
"crates/jmap-proto",
"crates/email",
"crates/imap",
"crates/imap-proto",
"crates/smtp",
"crates/managesieve",
"crates/pop3",
"crates/dav-proto",
"crates/scim-proto",
"crates/scim",
"crates/dav",
"crates/groupware",
"crates/spam-filter",
"crates/nlp",
"crates/store",
"crates/coordinator",
"crates/directory",
"crates/registry",
"crates/services",
"crates/utils",
"crates/common",
"crates/trc",
"crates/migration",
"crates/features",
"tests",
]
# inbuxa: the one place the version is set. Every member inherits it, and
# brand_version! shows it the way tags and images name it: 27.1.0 is "27.1",
# 27.1.3 is "27.1.3", 27.1.0-rc.1 is "27.1-rc.1". tools/release/version.py
# reads and bumps it.
[workspace.package]
version = "27.1.0-rc.1"
[workspace.lints.clippy]
result_unit_err = "allow"
[profile.dev]
opt-level = 0
debug = 1
#codegen-units = 4
lto = false
incremental = true
panic = 'unwind'
debug-assertions = true
overflow-checks = false
rpath = false
[profile.release]
opt-level = 3
debug = false
codegen-units = 1
lto = true
incremental = false
panic = 'unwind'
debug-assertions = false
overflow-checks = false
rpath = false
strip = true
[profile.test]
opt-level = 0
debug = 1
#codegen-units = 16
lto = false
incremental = true
debug-assertions = true
overflow-checks = true
rpath = false
[profile.bench]
opt-level = 3
debug = false
codegen-units = 1
lto = true
incremental = false
debug-assertions = false
overflow-checks = false
rpath = false
# inbuxa: sieve-rs spells upstream's name into its Sieve extension names
# (vnd.stalwart.*), which scripts `require` and ManageSieve advertises.
# vendor/sieve-rs is the published 0.7.3 with those renamed; see its
# VENDORED.md. Re-vendor when the version in Cargo.lock moves.
#
# inbuxa: hickory and opentelemetry are upstream's patched branches, vendored
# at the commits upstream pins so builds never fetch from upstream's
# repositories; see vendor/hickory-dns/VENDORED.md and
# vendor/opentelemetry-rust/VENDORED.md.
[patch.crates-io]
sieve-rs = { path = "vendor/sieve-rs" }
hickory-proto = { path = "vendor/hickory-dns/hickory-proto" }
hickory-net = { path = "vendor/hickory-dns/hickory-net" }
hickory-resolver = { path = "vendor/hickory-dns/hickory-resolver" }
opentelemetry = { path = "vendor/opentelemetry-rust/opentelemetry" }
opentelemetry_sdk = { path = "vendor/opentelemetry-rust/opentelemetry_sdk" }
opentelemetry-otlp = { path = "vendor/opentelemetry-rust/opentelemetry-otlp" }
opentelemetry-proto = { path = "vendor/opentelemetry-rust/opentelemetry-proto" }
opentelemetry-http = { path = "vendor/opentelemetry-rust/opentelemetry-http" }
opentelemetry-semantic-conventions = { path = "vendor/opentelemetry-rust/opentelemetry-semantic-conventions" }