Skip to content

mint does not fail when Mintfile does not exists at the specified path #262

@Skoti

Description

@Skoti

This check is hiding the error when the Mintfile does not exists:

if mintFilePath.exists,
let mintfile = try? Mintfile(path: mintFilePath),
let mintFilePackage = mintfile.package(for: package.repo) {

Causing commands like:
mint run --no-install -m incorrect/path packageNameToRun
to fail because the newest version of the package was not found.
The bootstrap was done earlier with the correct Mintfile path.

Or commands like:
mint run -m incorrect/path packageNameToRun
to install the undesired newest version of the specified package and run with it ❗

Seems like the fix is not as easy as:

        let mintfile = try Mintfile(path: mintFilePath)
        if let mintFilePackage = mintfile.package(for: package.repo) {

because then 6 tests fail, I guess in some contexts it is expecting to run without Mintfile, but I don't know the internal assumptions of this project.

Anyway, surely when you specify Mintfile explicitly via -m option then it must fail if that file does not exist.
Regardless of whether it is the default path specified -m Mintfile or a custom one.

In the current state, it leads to confusion and hard-to-understand behaviours.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions