anodizer v0.2.0
Changelog
Features
- f6798a1 apply strict_guard to missing-required UX (TJ Smith)
- 7512379 finish strict_guard rollout + pin anodize-additive UX divergences (C-new-25..28) (TJ Smith)
- ca69c8e GR-align FormatOverride match + extra-files order; pin auto-inject (TJ Smith)
- 7f525da GR-align universal binary metadata copy + id-only filter (TJ Smith)
- 5728086 glob-match build.env target keys (TJ Smith)
- 860c243 pre-empt SCM API call when no previous tag (C-new-19) (TJ Smith)
- 4322fa4 cross-link source-list with release_uploadable_kinds() (TJ Smith)
- 28c3832 WAVE 2 follow-up — wire PublishDefaults.cargo (defers rename to WAVE 3) (TJ Smith)
- 08c8a36 WAVE 2 — defaults system foundation (path-mirror inheritance) (TJ Smith)
- 19c4d2e WAVE 3 — cargo publisher rename + flag expansion (DEC-1/10, ITEM-3, FOLL-1) (TJ Smith)
- 2968fcf WAVE 5.3 — field-add batch (SCH-12/17/24) (TJ Smith)
- 206aeb3 WAVE 5.7 — behavior-toggle field (SCH-26) (TJ Smith)
- bf5fb68 accept GR back-compat archive/snapshot/build aliases (F3) (TJ Smith)
- 7aab778 add goamd64 field on DMG/MSI/NSIS/nfpm configs (M8) (TJ Smith)
- 711ad65 add mcp configuration schema (TJ Smith)
- aeba670 reject GR V1 dockers: block with migration error (M3) (TJ Smith)
- d37419c validate archives/universal_binaries id uniqueness (Q-arch2) (TJ Smith)
- 891c4a9 wire defaults.env into per-crate env resolution (TJ Smith)
- a74b5ef add retry config + is_retriable predicate (TJ Smith)
- 7a6bdf1 GR-align DockerV2 SBOM default + nFPM Libdirs gate (TJ Smith)
- f61e0a4 publish anodizer's MCP server entry (TJ Smith)
- 7842752 pre-flight repo resolution at validate time (TJ Smith)
- a1ece19 generate per-crate README.md so crates.io renders pages (TJ Smith)
- 6d700ce include changelog.header/footer in release notes (C-new-18) (TJ Smith)
- c343841 inject buildx-version probe through DockerStage for test seam (TJ Smith)
- 05d12e5 probe docker buildx version when any docker_v2 config exists (P6.1 + Q4.1) (TJ Smith)
- c70d359 add MCP registries publisher (TJ Smith)
- 4c101cb log auth.token empty -> env fallback path (TJ Smith)
- 2f18c84 redact body in mcp error messages (TJ Smith)
- e7dd81c wire ctx.fail_fast into try_publish! macro (TJ Smith)
- f21b993 wire goamd64 filter on DMG/MSI/NSIS/nfpm (M8) (TJ Smith)
Bug Fixes
- 66976f7 AN-series parity sweep across 13 providers (TJ Smith)
- dbaa2f9 accept legacy Teams webhook URLs with deprecation warn (TJ Smith)
- f90f06b correct is_retriable chain walk + linkedin typed fallback + smtp auth + dry retry (TJ Smith)
- b1c5c77 mirror upstream error categorisation for linkedin / webhook / opencollective (Q7.1) (TJ Smith)
- d55f3e5 plug 4 GoReleaser-parity gaps in announcers (TJ Smith)
- f43ce2f scope default-extra-files glob to crate dir, not CWD (TJ Smith)
- 4f01f5f warn-and-fallback on aur.name template render error (TJ Smith)
- 91c72af close L+B-series parity gaps with validation, dedup, and preflight (TJ Smith)
- c49b155 skip default-inherited builds for library crates with no bin target (TJ Smith)
- 95df109 drain Group D review findings (TJ Smith)
- cd8319c plug audit-1 gaps for register_artifact name, dry-run validation, missing-file ratio, duplicate universal output (TJ Smith)
- c17643b route full-Config deserialization through an 8 MiB worker thread (TJ Smith)
- 23247b3 add github_native module for /releases/generate-notes endpoint (TJ Smith)
- 5140ceb bind AuthorUsername alias to Login for GR-default-format parity (TJ Smith)
- c4628a9 tolerate bad regex, surface errors, validate github-native, write release-notes in dry-run (TJ Smith)
- a3615fe dedup extra files across crates, refuse split-overwrite, use UploadableFile kind (TJ Smith)
- ae9d4c1 drain Group B review findings (TJ Smith)
- b2bee50 preserve HttpError chain on force-retry + correct retry comment (TJ Smith)
- d408d75 surface moderation queue + fail on no-windows-artifact + retry edge 403 (TJ Smith)
- 2e13b61 WAVE 3 follow-up — wire FOLL-1 publisher skip names + parse rejection tests (TJ Smith)
- fe4838e wire retry policy through milestone close HTTP calls (TJ Smith)
- 52be5cd WAVE 5 follow-up — Notarize deny_unknown + Logins doc fixes (TJ Smith)
- e0f1c1e add disable serde alias on skip fields (F2) (TJ Smith)
- aa8df91 add missing Wave B submodule files (TJ Smith)
- 98429c9 close validation gaps in defaults block (format_overrides + deny_unknown_fields) (TJ Smith)
- 777b2e1 source.prefix_template defaults to name_template (Q-src3) (TJ Smith)
- f2e3776 address Impl-A review findings (I1, I2, M1, M2, M5) (TJ Smith)
- 8dcc0b3 lift env passthrough + binary-like dedup helpers to core (B8/B10) (TJ Smith)
- 087ff72 migrate all is_disabled/evaluates_to_true callers to fallible try_* variants (TJ Smith)
- 2697cef migrate stage-notarize + stage-sbom to try_is_disabled (TJ Smith)
- 00f9957 propagate template render errors from is_disabled (TJ Smith)
- b173b99 address Impl-D review findings (TJ Smith)
- 2a3f62d v2 dockerfile/parsePlatform/digest-log fixes + v1 healthcheck/deprecation + P1.6 retry wiring (TJ Smith)
- febd489 drain Group C review findings (TJ Smith)
- 2956ce1 correct opencollective abort-on-errors docstring + strip parity tags / em-dashes (TJ Smith)
- 5f799f5 preserve git error in detect_git_info ls-remote lookup (TJ Smith)
- 7b550f6 bin .exe on windows + per-archive binary name + hard fail on no archives (TJ Smith)
- 2e41172 single-pass repo resolve, log not-found, drop title from Gitea PATCH (TJ Smith)
- 09cbfdd emit umask as decimal int, not quoted string (TJ Smith)
- 637f8be wire apk-private-key + attach public key via anodizer-action (TJ Smith)
- 72e6a15 make timestamp_url overridable, lift defaults to consts, refuse macos+macos_native conflict, broaden redact list (TJ Smith)
- b25591a initialize tracing-subscriber so library warnings reach the user (TJ Smith)
- 4f27330 route stage warnings through StageLogger / tracing instead of eprintln (TJ Smith)
- 513fc30 config-first password cascade + installers in release-uploadable (TJ Smith)
- 118db19 chocolatey repository.owner/name is optional (F4) (TJ Smith)
- 0704158 close P-series parity gaps across publishers (TJ Smith)
- 3b03710 extract shared HTTP credential cascade into http_upload module (TJ Smith)
- f0f9908 per-publisher second wave (artifactory/upload/dockerhub) (TJ Smith)
- 90e8ced propagate template render errors in scoop/nix/krew homepage (TJ Smith)
- d9ce3a5 tighten artifactory/dockerhub/upload validation (TJ Smith)
- 48c69f9 cask ordering + completions + announcer error wrapping + retry wiring (Q1+Q6+Q7+Q8+P1.3) (TJ Smith)
- 1cfbed8 GitHub publish-fields + retry + audit fixes (P2/P3/P10/Q5/Q11/Q12 + P1.4 wiring) (TJ Smith)
- c9aa9a3 P1.4 retry wiring for GitLab + Gitea + add retry_http_async core helper (TJ Smith)
- 21dee31 address Impl-B review findings (un-draft retry classifier + SIGTERM + log surface) (TJ Smith)
- 7fe10db address Impl-B2 review findings (retry_upload classifier + comments + transport tests + ctx structs) (TJ Smith)
- 46bd02c aggregate workspace combined-checksum files (TJ Smith)
- c6db731 render owner/name templates, expose ReleaseURL, validate skip_upload, paragraph-pad release body (TJ Smith)
- 42b1df9 classify Windows ErrorKind::TimedOut + connection-* as transient (TJ Smith)
- ff6a1c5 redact full bail string in git/gh sites, not just stderr portion (P7.1 followup) (TJ Smith)
- f1719ce redact subprocess output + audit log statements for secret leakage (P7.1 + P7.4) (TJ Smith)
- 0c6d098 redact tokens in clone stderr + telegram URL + review findings (TJ Smith)
- 4a4e5c1 cache default_sign_cmd, refuse unknown docker_signs.artifacts, lossy file_name fallbacks (TJ Smith)
- 0215a66 wire retry policy through gitlab + gitea compare API (TJ Smith)
- ee9fca3 wire lintian_overrides through to setupLintian-equivalent (M5) (TJ Smith)
- e10d550 3-attempt 30s exponential retry around Apple-network calls (M6) (TJ Smith)
- f7f21c9 Tera-render commit author and add use_github_app_token (Q-author1) (TJ Smith)
- 073ba61 align mcp audience semantics + parse docstring (TJ Smith)
- 96c4464 redact bearer tokens in HTTP publisher error bodies (TJ Smith)
- ae68d06 wire retry policy through cargo + chocolatey HTTP (TJ Smith)
- 1939373 wire retry policy through dockerhub HTTP calls (TJ Smith)
- d01e077 address P1.4 review findings (get_by_tag retry, typed error, hygiene) (TJ Smith)
- a910668 redact bearer tokens in gitlab/gitea error bodies (TJ Smith)
- 94a3ee9 wire ctx.config.retry through every GitHub octocrab call site (TJ Smith)
- 2923fb3 break cwd dependency in tests so parallel runs are race-free (TJ Smith)
- 0197554 blob force-default content_disposition + docker manifest use validation (TJ Smith)
- b207bf7 add Ppc64/Riscv64 to per-target var set (TJ Smith)
- ab3a75b incpatch/incminor/incmajor reject non-semver input (TJ Smith)
- 13844da propagate render errors instead of falling back to raw template (TJ Smith)
- 745efc0 use RFC 2606 .invalid DNS in transport-error tests; classify DNS errors (TJ Smith)
- 4ddd456 fail fast on bad provider/cert/key/subreddit/token (TJ Smith)
- 7193d93 address Impl-G review findings (DRY retry + Q9 e2e + cap + comment + tests) (TJ Smith)
- 21eede5 misc parity fixes + xz archive + HTTP retry wiring (Q9+Q10+Q15+Q17+Q18+P1.5) (TJ Smith)
- 51503f1 sign all-filter excludes Signature/Certificate + sbom name + aur/krew template skip_upload + checksum sort tolerance (TJ Smith)
Performance
- 189397f reuse one tokio runtime across all blob upload jobs (TJ Smith)
- 27c58cf reuse one tokio runtime across all close calls (TJ Smith)
Others
- 9505686 land 2026-04-config-gaps audits + batch 10/1/5 fixes (TJ Smith)
- 6e27633 hygiene sweep — DRY token validator, ignore dist/, track migrations in known-bugs (TJ Smith)
- 544a414 drain all 9 actionable items (TJ Smith)
- f2510fe bump workspace → 0.2.0 (github-actions[bot])
- 23e529f cite GR changelog.go:54-61 in config.rs format docstring (TJ Smith)
- 37cfd8d drain Stream 2 final review minors 1-3 (TJ Smith)
- 06726f8 close 🚧 entries after final-four implementation (TJ Smith)
- f7ca8da document prerelease auto per-tag divergence from GR (TJ Smith)
- c902bdd retighten precedence comments + track Group F·3 review deferrals (TJ Smith)
- 3f8f2a8 single source of truth for brand display-name default (TJ Smith)
- 73d7776 split aur_default_package_name out of aur_resolve_defaults (TJ Smith)
- c496fe8 lift Command::new sites out of cli/commands per module-boundaries.md + update allow-list (TJ Smith)
- a94ec8d carve stage-build prod code into 7 submodules (TJ Smith)
- 8a3c7a4 externalize stage-build tests to tests.rs (TJ Smith)
- 0a4082d replace tests.rs use super::* glob with explicit imports (TJ Smith)
- 4b421ba replace use super::* wildcards with explicit per-file imports (TJ Smith)
- a19f15e drain remaining 2 TestContextBuilder + CwdGuard sites missed in 5ecb406 (TJ Smith)
- 5ecb406 migrate tests to TestContextBuilder + add panic-safe CwdGuard (TJ Smith)
- 5c1dd82 route default-resolution through resolved_*() accessors (TJ Smith)
- ff3be47 route default-resolution through resolved_*() accessors (TJ Smith)
- 1395876 DEC-5 hard-break — drop GR back-compat aliases + deprecation surface (TJ Smith)
- ddaf840 WAVE 1 — DEC-6 skip rename + DEC-7 env Vec migration (TJ Smith)
- 488fd62 WAVE 1.5 follow-up — drain remaining log strings + helper migrations (TJ Smith)
- 77501c4 WAVE 1.5 mop-up — final vocabulary + helper consolidation (TJ Smith)
- 5142346 WAVE 1.5 — vocabulary closure (skip rename + env helper) (TJ Smith)
- 9fa0648 WAVE 2 mop-up — broader skip suppression + path-mirror cleanup (TJ Smith)
- 9e01bcf WAVE 4 follow-up — enforce cask url-template precedence + nested-merge test (TJ Smith)
- 9163691 WAVE 4 — unify HomebrewCaskConfig (collapse top-level + per-crate types) (TJ Smith)
- 2232e11 WAVE 5 mop-up — close 3 critical + 6 important + 3 minor review findings (TJ Smith)
- 0188e45 WAVE 5.1 — type-coercion batch (SCH-1/3/7/15/25/29) (TJ Smith)
- 336dee7 WAVE 5.2 — type-constraint batch (SCH-27/31) (TJ Smith)
- 1d02282 WAVE 5.4 — DRY-merge batch (SCH-8/9) (TJ Smith)
- c203edf WAVE 5.5 — hard-break legacy-field batch (SCH-4/13/16/21/30, DEC-12/13) (TJ Smith)
- e2a7eb8 WAVE 5.6 — alias batch (SCH-5/11/34) (TJ Smith)
- 2433cd6 align publisher keying with GoReleaser conventions (TJ Smith)
- d3c2fd0 carve Wave B bottom-half (dockerhub, artifactory, cloudsmith, publisher, hooks, git, monorepo, tag, workspace, milestone, upload, aur_source) (TJ Smith)
- 20a5e5f carve Wave B mid-half (installers, blob, partial, binstall, source, sbom, version_sync, upx, snapshot_nightly, templatefiles) (TJ Smith)
- 35d7ecf carve Wave B top-half (env_files, defaults, build, archives, release, publishers/, docker) (TJ Smith)
- 7ab18f4 drop stale 'pending future split' comments + restore blank lines (TJ Smith)
- 31093fa narrow string_or_bool helpers from pub(crate) to pub(super) (TJ Smith)
- f2f264f promote config.rs to module, carve 6 heavy sections + externalize tests (TJ Smith)
- 1db9b64 replace tests.rs use super::* glob with explicit imports (TJ Smith)
- cefbafc replace use super::* with explicit imports in 10 small submodules (batch A1) (TJ Smith)
- eed5c07 replace use super::* with explicit imports in 13 submodules (batch B) (TJ Smith)
- 55ad7a0 replace use super::* with explicit imports in 7 large submodules (batch C) (TJ Smith)
- fe93408 replace use super::* with explicit imports in 9 submodules (batch A2) (TJ Smith)
- 74ce963 always-render templates in StringOrBool skip-gates (TJ Smith)
- dbfd40e carve git.rs into git/{semver,detect,status,remote,tags,commits,github_api} + tests.rs (TJ Smith)
- 684afc6 carve template.rs into template/{static_render,base_tera,vars,render} + tests.rs (TJ Smith)
- fe56e8a carve template_preprocess.rs into template_preprocess/{tokens,go_blocks,dots_dollars,builtins,positional,methods} + tests.rs (TJ Smith)
- 6d91a6d lift KrewConfig + NixConfig into config/publishers/ (TJ Smith)
- 4ee7c4c lift changelog stage outputs into Context::stage_outputs (TJ Smith)
- 2595484 carve stage-docker prod code into 8 submodules (TJ Smith)
- 3922bbb externalize stage-docker tests into tests.rs (TJ Smith)
- e357e29 replace tests.rs use super::* glob with explicit imports (TJ Smith)
- 8d5b8bc allow_empty is plain bool, not Option (TJ Smith)
- cf86448 route config-resolution failures through strict_guard (TJ Smith)
- 01c7926 hoist tokio runtime out of loop to eliminate Option-init dance (TJ Smith)
- c322e12 externalize stage-nfpm tests to tests.rs (TJ Smith)
- 89b5811 replace tests.rs use super::* glob with explicit imports (TJ Smith)
- bf38828 route default-resolution through resolved_*() accessors (TJ Smith)
- 9f7bf4f WAVE 3 mop-up — dispatcher DRY + Linux test fix + docs sync (TJ Smith)
- 43fa1b4 collapse resolve_repo_owner_name to single arg + drop dead Result wrapper (TJ Smith)
- 98c30f0 hoist render_or_warn to util; drop aur prefix; doc O(n) header bound (TJ Smith)
- 218f501 route default-resolution through resolved_*() accessors (TJ Smith)
- 10b4c66 route default-resolution through resolved_*() accessors (TJ Smith)
- 5d105dc externalize stage-sign tests to tests.rs (TJ Smith)
- 2390161 replace tests.rs use super::* glob with explicit imports (TJ Smith)
- a30153c route default-resolution through resolved_*() accessors (TJ Smith)
- d5de0ca carve lib.rs into helpers/dispatch/run + tests.rs (TJ Smith)
- 0cf1c8f externalize tests to tests.rs + carve Stage::run into run.rs (TJ Smith)
- 96d08db split monolith into formats/entries/file_specs modules (TJ Smith)
- 3b7220f carve lib.rs into provider/kms/store/upload/run + tests.rs (TJ Smith)
- a163ce3 carve lib.rs into group/render/fetch/run (TJ Smith)
- c5afb12 carve lib.rs into hashing/run + tests.rs (TJ Smith)
- 78eb3f5 carve lib.rs into yaml/generate/builders/command/run (TJ Smith)
- 79fb6c4 carve chocolatey.rs into chocolatey/{nuspec,install,package,publish} + tests.rs (TJ Smith)
- b9a4de3 carve homebrew.rs into homebrew/ (TJ Smith)
- 6503e02 carve nix.rs into nix/{binary,hashing,generate,publish} + tests.rs (TJ Smith)
- dc0de39 carve util.rs into util/ (TJ Smith)
- a34d847 use Context::retry_policy() everywhere (TJ Smith)
- b6a63ec carve lib.rs into github/ + run.rs + tests.rs (TJ Smith)
- 4d1ddd8 extract release_body module from lib.rs (TJ Smith)
- 9094e9b replace too_many_arguments suppressions with ctx + spec structs (TJ Smith)
- d2a65d2 split monolith into helpers/process modules (TJ Smith)
- d210bf5 carve lib.rs into yaml/arch/generate/command/build_stage/publish_stage + tests.rs (TJ Smith)
- 5b25663 carve lib.rs into archive/sbom/run + tests.rs (TJ Smith)
- fa55534 drain every too_many_arguments suppression workspace-wide via ctx + spec structs (TJ Smith)
- f4d41c8 drop residual journal comments + GR-historical vocab in dogfooding matrix (TJ Smith)
- 5a51f78 lower redact threshold + redact log leaks (P7+Q13+Q14) (TJ Smith)
- 860e65b tighten reddit strict-mode + mattermost render-error coverage; track header case-sensitivity (Group G review) (TJ Smith)
- 1e98536 pin Default()-time defaults for Name/Conflicts/Provides/Rel (C-new-12) (TJ Smith)
- 4ca7cce add e2e test for
release --prepare(TJ Smith) - e2e019b add smoke test for
anodizer manroff output (TJ Smith) - 62d0ea8 assign unique archive ids in multi-format e2e test (Q-arch2 fixup) (TJ Smith)
- 1bc5065 pin HomebrewConflict accepts string + object shapes (Q-brew1) (TJ Smith)
- 8c81d04 add 4 edge-case tests for redact_url_credentials terminator scan (TJ Smith)
- 2622285 pin hash-match idempotency parsing helpers (C-new-11 + C-new-13) (TJ Smith)
- 61b9aae tighten pre-flight coverage from review findings (TJ Smith)
- 33115c1 rename misleading buildx-probe test, narrow to direct invocation (TJ Smith)
- cb0c916 cover infer_repository + dry-run + race-safe warn-once (TJ Smith)
Full Changelog: v0.1.1...v0.2.0