pub struct CrateConfig {Show 31 fields
pub name: String,
pub path: String,
pub tag_template: String,
pub version: Option<String>,
pub depends_on: Option<Vec<String>>,
pub builds: Option<Vec<BuildConfig>>,
pub cross: Option<CrossStrategy>,
pub archives: ArchivesConfig,
pub checksum: Option<ChecksumConfig>,
pub release: Option<ReleaseConfig>,
pub publish: Option<PublishConfig>,
pub dockers_v2: Option<Vec<DockerV2Config>>,
pub docker_digest: Option<DockerDigestConfig>,
pub docker_manifests: Option<Vec<DockerManifestConfig>>,
pub nfpms: Option<Vec<NfpmConfig>>,
pub snapcrafts: Option<Vec<SnapcraftConfig>>,
pub dmgs: Option<Vec<DmgConfig>>,
pub msis: Option<Vec<MsiConfig>>,
pub pkgs: Option<Vec<PkgConfig>>,
pub nsis: Option<Vec<NsisConfig>>,
pub app_bundles: Option<Vec<AppBundleConfig>>,
pub flatpaks: Option<Vec<FlatpakConfig>>,
pub blobs: Option<Vec<BlobConfig>>,
pub binstall: Option<BinstallConfig>,
pub version_sync: Option<VersionSyncConfig>,
pub version_files: Option<Vec<String>>,
pub universal_binaries: Option<Vec<UniversalBinaryConfig>>,
pub no_unique_dist_dir: Option<StringOrBool>,
pub before: Option<HooksConfig>,
pub after: Option<HooksConfig>,
pub before_publish: Option<HooksConfig>,
}Fields§
§name: StringCrate name as published (must match the Cargo.toml package name).
path: StringRelative path to the crate directory from the project root.
tag_template: StringGit tag template used to tag and identify releases (supports templates).
version: Option<String>Pinned semver version. When set, anodizer bump --strict refuses to
edit this crate’s Cargo.toml to anything other than this value;
without --strict, the bump proceeds with a warning. Lets a release
captain freeze a crate’s version while still running broad
--workspace bumps.
depends_on: Option<Vec<String>>Other crates this crate depends on; ensures release ordering.
builds: Option<Vec<BuildConfig>>Build configurations for this crate. One entry per binary by default.
cross: Option<CrossStrategy>Cross-compilation strategy for this crate: auto, zigbuild, cross, or cargo.
archives: ArchivesConfig§checksum: Option<ChecksumConfig>Checksum configuration for this crate.
release: Option<ReleaseConfig>GitHub release configuration for this crate.
publish: Option<PublishConfig>Publishing targets (Homebrew, Scoop, AUR, etc.) for this crate.
dockers_v2: Option<Vec<DockerV2Config>>Docker V2 image build configurations for this crate (canonical API:
images+tags, annotations, build_args, sbom, disable). The legacy
docker: block was removed; this is the only docker surface. The
docker_v2: spelling is still accepted via serde alias for back-compat.
docker_digest: Option<DockerDigestConfig>Docker image digest file configuration for this crate.
docker_manifests: Option<Vec<DockerManifestConfig>>Docker multi-platform manifest configurations for this crate.
nfpms: Option<Vec<NfpmConfig>>Linux package (deb, rpm, apk) configurations for this crate. Renamed
from nfpm: (singular) for spelling parity with Defaults.nfpms and
the rest of the plural-name per-crate packaging lists (dmgs, msis,
pkgs, nsis, …). The nfpm: spelling is still accepted via serde
alias for back-compat.
snapcrafts: Option<Vec<SnapcraftConfig>>Snapcraft package configurations for this crate.
dmgs: Option<Vec<DmgConfig>>macOS DMG disk image configurations for this crate.
msis: Option<Vec<MsiConfig>>Windows MSI installer configurations for this crate.
pkgs: Option<Vec<PkgConfig>>macOS PKG installer configurations for this crate.
nsis: Option<Vec<NsisConfig>>NSIS installer configurations for this crate.
app_bundles: Option<Vec<AppBundleConfig>>macOS app bundle configurations for this crate.
flatpaks: Option<Vec<FlatpakConfig>>Linux Flatpak bundle configurations for this crate.
blobs: Option<Vec<BlobConfig>>Cloud storage (S3/GCS/Azure) upload configurations for this crate.
binstall: Option<BinstallConfig>cargo-binstall metadata configuration for this crate.
version_sync: Option<VersionSyncConfig>Automatic version number synchronization configuration for this crate.
version_files: Option<Vec<String>>Repo-committed files that embed this crate’s release version outside
Cargo.toml (repo-root-relative path strings). At tag time each file
has its occurrences of the old version rewritten to the new version —
both bare and v-prefixed forms, word-boundary anchored — and is staged
into the same bump commit as this crate’s Cargo.toml. Overrides the
workspace-level defaults.version_files.
universal_binaries: Option<Vec<UniversalBinaryConfig>>macOS universal binary (fat binary) configurations for this crate.
no_unique_dist_dir: Option<StringOrBool>When true (or template evaluating to “true”), all build outputs are
placed in a flat dist/ directory instead of dist/{target}/.
before: Option<HooksConfig>Hooks that run inside THIS crate’s scope at the start of the release,
before the build. Distinct from the top-level before:, which fires
ONCE around the whole release; these fire once per crate with that
crate’s version/tag template vars anchored, so cmd / dir / env /
if render against the crate’s own Version / Tag / ProjectName.
A non-zero exit aborts the release.
Fires once per crate in EVERY multi-crate mode — workspace per-crate
AND workspace lockstep with multiple publisher crates — in both a full
anodizer release and anodizer release --publish-only, matching the
per-crate iteration of before_publish: and the publishers. With an
explicit --crate subset only the selected crates’ hooks fire. No-op
in a single-crate config with no crates: block (use the top-level
before: there).
after: Option<HooksConfig>Hooks that run inside THIS crate’s scope at the end of the release,
after the crate’s publish dispatch (and post-publish verification)
completes. Per-crate counterpart of the top-level after: (which fires
once around the whole release). Same per-crate firing semantics across
all modes, template surface, and abort semantics as the per-crate
before:.
before_publish: Option<HooksConfig>Hooks that run immediately before THIS crate’s publishers dispatch,
once per matching artifact (the same per-artifact semantics as the
top-level before_publish:), scoped to the crate’s own artifacts and
template vars. Honors the per-entry ids: / artifacts: filters. A
non-zero exit aborts the release before that crate publishes to any
registry. The top-level before_publish: still fires once over the
full artifact set; this one targets a single crate’s artifacts.
Trait Implementations§
Source§impl Clone for CrateConfig
impl Clone for CrateConfig
Source§fn clone(&self) -> CrateConfig
fn clone(&self) -> CrateConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CrateConfig
impl Debug for CrateConfig
Source§impl Default for CrateConfig
impl Default for CrateConfig
Source§impl<'de> Deserialize<'de> for CrateConfigwhere
CrateConfig: Default,
impl<'de> Deserialize<'de> for CrateConfigwhere
CrateConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for CrateConfig
impl JsonSchema for CrateConfig
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read more