Skip to content

check and release ignore missing versionedFiles that validate rejects #983

Description

@BryanFRD

ferrflow validate and ferrflow doctor both detect a versionedFiles entry whose path does not
exist, and validate exits 1 for it. check and release skip that check entirely: they plan and
perform a bump against a file that is never written, and exit 0.

Reproduce

Monorepo config with a package-relative path instead of a repo-root-relative one, which is the easy
mistake to make since package.path is its own prefix:

[[package]]
name = "api"
path = "packages/api"

[[package.versioned_files]]
path = "Cargo.toml"      # should be packages/api/Cargo.toml
format = "toml"
$ ferrflow validate
  ✗ Cargo.toml: versioned file "Cargo.toml" does not exist
$ echo $?
1

$ ferrflow check
● api  2.4.0 → 2.5.0  (minor, from tag api@v2.4.0)
$ echo $?
0

Note the missing over <file> suffix on the api line: every correctly configured package prints
over packages/sdk/pyproject.toml, api prints nothing. That is the only signal, and it is easy to
miss in a list of packages. When no tag exists yet, the same misconfiguration surfaces as
Version: unknown in ferrflow why, with no indication that a configured file is missing.

Impact

The release runs, tags are created and the changelog is written, but the version file is never
bumped. The repo ends up tagged at a version its manifest does not carry, which is exactly the
drift FerrFlow exists to prevent.

Suggested fix

Run the existence check that validate already implements at the start of check and release,
and fail with the same message. A missing versioned file is a configuration error, not something to
silently work around.

Reproduced with ferrflow 7.13.1 (ferrflow-windows-x64).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium prioritybugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions