Skip to content

Biome step empties files when the file is ignored since biome 1.5.0  #1987

@blutorange

Description

@blutorange

Please feel free to assign this issue to me.

The biome step uses the following command to format files via biome:

biome format --stdin-file-path [fileName] --config-path [PathToBiomeConfig] < [InputFile]

The biome.json config file can contain an ignore field with files that should not be processed. When the given file name matches that ignore list, biome won't format the file. In biome versions <1.5.0, it would still output the input file unchanged to stdout, and log a warning to stderr.

Since version 1.5.0, biome does not output anything to stdout, and only print a warning to stderr

⚠ The file localization.ts was ignored.

As a result, when trying to format a file via the biome step that is ignored, the file will be emptied, without the user noticing.


I would consider this a misconfiguration, as the includes/excludes defined for the spotless plugin conflict with the includes from the biome configuration. Still, it's not good to destroy data without the user being aware that something went wrong (I accidentally committed something, only to realize this later).

Ideally, we would just ignore the include/exclude list from the biome configuration. Since the biome CLI doesn't have such a flag, my suggestion is to check whether the biome output is empty; and if it is, use the original file content instead. In addition, we could either output a warning on our own, or forward the warning from the stderr stream from biome (if that's not already being done).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions