Add First Class BuildConfig file support #5384
DamianReeves
started this conversation in
Ideas
Replies: 1 comment 2 replies
-
Do you have a more concrete example, that makes it more clear what kind of setup and workflow you do expect? |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
I've been thinking of a common pattern in build systems and IDE integration and if there is something mill can do to help. Often times there is a config file that represents a project config (this may be a JSON, YAML, TOML, XML, or HOCON file for example or even a custom format like go.mod). Language support in IDEs usually expect this file to exist beside the program sources (think package.json for Node, cargo.toml for Rust, go.mod for Go Lang, requirements.txt for Python, or moon.mod.json/moon.pkg.json for Moonbit). You are often in the case where you want to have build tasks that can change aspects of the build, but you also need the developer to be able to modify the file (it is a source file in a way and a build config in another way).
One can try and copy the file into the task destination folder and manually sync things so mill maintains build isolation, but what if the user or IDE changes a setting that modifies the config. This feels like a common and fundamental concept in adding mill integration with existing language ecosystems, and I wonder if similar to
Task.sources
if mill should have native support forTask.buildConfig
to make synchronization, maintaining the incremental build support of mill, and proper dependency invalidation in these cases simple.I feel like this foundational tool would make it easier to add support to mill for a large set of tools that function as build config without mill users having to setup their own process of appeasing the IDE by keeping files where it expects it (i.e. mot in mill's
out
folder), but also appeasing mill by maintaining some form of isolation to support incremental builds.Thoughts?
Beta Was this translation helpful? Give feedback.
All reactions