Skip to content

anodizer v0.2.0

Choose a tag to compare

@tj-smith47 tj-smith47 released this 12 May 19:03

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 man roff 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