mise
mise copied to clipboard
Expand configuration discovery to allow `.rtx.dist.toml` for default project configuration/tasks
This new file name, .rtx.dist.toml
(intended to be included in the repositories), if finally introduced, I think it adds more semantics because it's more clear that this file is intended to be delivered with the project.
Although the semantic meaning of file names often depends on established conventions within a specific context, the use of .dist
in filenames is a well-established convention in various software projects — indicating a distribution or default configuration. Additionally, it suggests that this file serves as a template or baseline configuration that can be distributed with the software.
Basically, what I'm trying to explain is that having an .rtx.dist.toml
conveys more the intended purpose and usage, making it clear that this file is meant as a starting point for users. On the other hand, .rtx.toml
seems more to be a user-specific configuration file — because the absence of a suffix (like .dist
) implies that this file is intended for individual customization rather than serving as a default or baseline. Likewise, anything declared in .rtx.toml
expands/overwrites what's in .rtx.dist.toml
.
so I get that this is a convention and I like sticking with conventions. That said, it goes against the grain a little bit because my intention was that .rtx.toml
would generally be committed but .rtx.local.toml
would be used for config you don't want to share (likely in people's global gitignore).
I am also conscious of the current table listing out all the load order: https://mise.jdx.dev/profiles.html. It's a mess, hard to read, and it's actually missing a lot of undocumented files anyway.
I think where I struggle with .mise.dist.toml
is I don't see a use-case where someone would need .mise.dist.toml
, .mise.toml
, and .mise.local.toml
—except one where .mise.dist.toml
isn't actually loaded but a template that people are expected to copy into place (where we wouldn't want to automatically load it anyways).
Anyhow. I'm definitely leaning towards not doing this, but very open to being persuaded. If we do decide to do this, a prerequisite is going to require that we clean up that load order into something that is a lot clearer.
so I get that this is a convention and I like sticking with conventions. That said, it goes against the grain a little bit because my intention was that
.rtx.toml
would generally be committed but.rtx.local.toml
would be used for config you don't want to share (likely in people's global gitignore).
I'm aware there is already a combination (e.g.: .mise.toml
and .mise.local.toml
) to achieve something similar.
Still, I created the issue because the introduction of .rtx.dist.toml
is aiming to provide semantic clarity by indicating a default or baseline configuration for distribution with the software. I really think this can enhance understanding, especially for those new to the project in question.
I am also conscious of the current table listing out all the load order: https://mise.jdx.dev/profiles.html. It's a mess, hard to read, and it's actually missing a lot of undocumented files anyway.
Actually, this was the main motive for the issue.
Moreover, it's a little bit weird (to me) to have profiles/environments at this level, but some type of applications will definitely get advantage of this behavior. In general, modern applications follow the twelve-factor methodology so there will be something similar to what mise
is providing for profiles/environments, but the support is slightly different with a heavy usage on environment variables. In any case, that's subjective because in the end, all the tools converge and provide the same functionality.
I think where I struggle with
.mise.dist.toml
is I don't see a use-case where someone would need.mise.dist.toml
,.mise.toml
, and.mise.local.toml
—except one where.mise.dist.toml
isn't actually loaded but a template that people are expected to copy into place (where we wouldn't want to automatically load it anyways).
Agreed. I don't see either a need for .mise.local.toml
because .mise.toml
will fill that gap.
Since this is merely subjective (till certain extent), I suggest to leave it open, if you are not completely onboard, to gather more input and preferences.
I think we can keep it open for a few days as I mull it over. It's definitely worth considering.