Skip to content

chore: delete deprecated --experimental-lockfile aliases and dormant scaffolding#51

Merged
pofallon merged 2 commits into
mainfrom
chore-trim-dead-code
May 26, 2026
Merged

chore: delete deprecated --experimental-lockfile aliases and dormant scaffolding#51
pofallon merged 2 commits into
mainfrom
chore-trim-dead-code

Conversation

@pofallon
Copy link
Copy Markdown
Contributor

Audit gap #11 + user directive: aggressively delete dormant / deprecation-tracked scaffolding since nobody is using deacon yet — no back-compat to preserve.

Deleted CLI flags (Up + Build)

  • --experimental-lockfile (hidden alias for the legacy <PATH> form; emitted a deprecation WARN)
  • --experimental-frozen-lockfile (hidden alias for --frozen-lockfile)
  • --omit-syntax-directive (Build) — was never read in any code path
  • --skip-persisting-customizations-from-features (Build) — was never read

Replaced by the graduated --no-lockfile / --frozen-lockfile flags and the default-derived lockfile path (next to the config file).

Deleted code following the flags

  • crates/deacon/src/cli.rs: removed 2 deprecation-WARN blocks, the effective_frozen_lockfile = frozen || experimental_frozen OR, and the fields from Up + Build dispatchers + enum variants.
  • crates/deacon/src/commands/up/args.rs: removed experimental_lockfile, experimental_frozen_lockfile, omit_syntax_directive from UpArgs and NormalizedUpInput. Dropped the stale #[allow(dead_code)] // TODO: T009 on update_remote_user_uid_default (it IS actually consumed downstream).
  • crates/deacon/src/commands/up/mod.rs: simplified pre-build validation — (frozen_lockfile || experimental_lockfile.is_some())frozen_lockfile.
  • crates/deacon/src/commands/up/helpers.rs: removed the experimental_lockfile branch in handle_lockfile_post_build and the corresponding test.
  • crates/deacon/src/commands/build/mod.rs: removed the 4 fields from BuildArgs + Default impl. Tightened no_lockfile / frozen_lockfile comments to point at the actual followup (lifting the byte-compare helper from up::helpers into a shared module).
  • crates/core/src/build/mod.rs: removed experimental_lockfile, experimental_frozen_lockfile, omit_syntax_directive from BuildRequest and updated 2 test fixtures.
  • crates/deacon/tests/up_lockfile_frozen.rs: removed test_experimental_frozen_lockfile_defaults_to_false; updated 2 other tests to use frozen_lockfile instead.

Deleted dead module

  • crates/deacon/src/commands/up/dotfiles.rs (245 LoC) — marked #[deprecated] since T009 with dotfiles execution now in deacon_core::container_lifecycle::execute_dotfiles_in_container. Confirmed zero callers via grep. Removed mod dotfiles; registration in up/mod.rs.

Net diff

8 files changed, +29 / -434.

Verification

  • cargo build
  • cargo fmt --all -- --check
  • cargo clippy --all-targets -- -D warnings
  • cargo test --lib → 284 deacon + 1081 deacon-core pass

Refs: gap #11 from the post-1.0 audit.

🤖 Generated with Claude Code

…liases and dormant scaffolding

Audit gap #11 + user directive: aggressively delete dormant /
deprecation-tracked scaffolding since nobody is using deacon yet — no
back-compat to preserve.

## Deleted CLI flags (Up + Build)

- `--experimental-lockfile` (hidden alias for the legacy `<PATH>` form,
  emitted a deprecation WARN) — replaced by `--no-lockfile` and the
  default-derived path next to the config file.
- `--experimental-frozen-lockfile` (hidden alias for `--frozen-lockfile`)
  — replaced by `--frozen-lockfile` directly.
- `--omit-syntax-directive` (Build) — was never read in any code path.
- `--skip-persisting-customizations-from-features` (Build) — was never
  read.

## Deleted code following the flags

- `crates/deacon/src/cli.rs`: removed the 2 deprecation-WARN blocks,
  the `effective_frozen_lockfile = frozen || experimental_frozen` OR,
  and the corresponding fields from the Up + Build dispatchers + enum
  variants.
- `crates/deacon/src/commands/up/args.rs`: removed `experimental_lockfile`,
  `experimental_frozen_lockfile`, and `omit_syntax_directive` from
  `UpArgs` and `NormalizedUpInput` (+ their Default impl + the
  normalize-and-validate threading). Removed the `#[allow(dead_code)]
  // TODO: Will be wired in T009` on `update_remote_user_uid_default`
  (it IS actually consumed downstream — no allow needed).
- `crates/deacon/src/commands/up/mod.rs`: simplified the frozen-lockfile
  pre-build validation — `(args.frozen_lockfile || args.experimental_lockfile.is_some())`
  → `args.frozen_lockfile`, and dropped the experimental_lockfile path
  derivation.
- `crates/deacon/src/commands/up/helpers.rs`: removed the
  `experimental_lockfile` branch in `handle_lockfile_post_build` and
  the `experimental_lockfile_path_overrides_derivation` test.
- `crates/deacon/src/commands/build/mod.rs`: removed `experimental_lockfile`,
  `experimental_frozen_lockfile`, `omit_syntax_directive`, and
  `skip_persisting_customizations_from_features` from `BuildArgs` and
  its Default impl. Tightened the `no_lockfile` / `frozen_lockfile`
  doc comments to point at the actual followup (lifting the
  byte-compare helper from `up::helpers` into a shared module).
- `crates/core/src/build/mod.rs`: removed `experimental_lockfile`,
  `experimental_frozen_lockfile`, `omit_syntax_directive` from the
  `BuildRequest` struct and updated the 2 test fixtures accordingly.
- `crates/deacon/tests/up_lockfile_frozen.rs`: removed the
  `test_experimental_frozen_lockfile_defaults_to_false` test;
  updated 2 other tests that referenced the deleted field to use
  `frozen_lockfile`.

## Deleted dead module

- `crates/deacon/src/commands/up/dotfiles.rs` (245 LoC) — module was
  marked `#[deprecated]` since T009 with dotfiles execution now in
  `deacon_core::container_lifecycle::execute_dotfiles_in_container`.
  Confirmed zero callers via grep. Removed `mod dotfiles;` registration
  in `up/mod.rs` and the matching doc-comment line.

## Verification

- `cargo build`
- `cargo fmt --all -- --check`
- `cargo clippy --all-targets -- -D warnings`
- `cargo test --lib` → 284 deacon + 1081 deacon-core pass

Refs: gap #11 from the post-1.0 audit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts:
#	crates/deacon/src/commands/up/dotfiles.rs
@pofallon pofallon merged commit f845985 into main May 26, 2026
10 checks passed
@pofallon pofallon deleted the chore-trim-dead-code branch May 26, 2026 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant