-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consolidate project files #159
Conversation
This consolidates the multiple project files we have right now, embellishing further the Lumi.yaml/json project file as the place for all things project and package related. Although I suspect we will revist some of this during next sprint's package management work, this is a step in the right direction. As a result, we can rip out all the tsconfig.json files scattered throughout. The new structure adds two top-level sections to the Lumi.yaml/json file: language: compiler: lumixx settings: a: foo b: bar z: baz files: - index.xx - config.xx The idea here is that the manifest self-describes three things: 1) the compiler used to build the package, 2) the settings to pass to that compiler (an opaque bag to Lumi, since these are specific to the compiler), and 3) the source files that comprise the project. This helps to unify the different compilers. This accomplishes work item #49. It also enables #98, the `lumi compile` and automatic recompilation commands, which will come soon.
I definitely like removing some config files. However, removing That may be acceptable in order to reduce boilerplate, but it is a notable loss. |
Can the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Drats; I do feel like the loss of a good editor experience is a deal breaker. @ericrudder, who is consistently smarter than me, had previously suggested hijacking the tsconfig file, rather than the opposite (which is what I did). Frankly I'm inclined to stick to the "individual files for individual tools" philosophy we have today and which seems to be serving us well (even if it leads to a bit more boilerplate moving pieces). Thanks for the thoughtful review! |
I tried out VS Code and verified that the absence of Bummer. Just having a single |
Yeah - the fact that it only break Find All References and Refactoring makes it more tempting to just drop this, or at least not have it be standard, and let folks add it if they want those features. Note that you can also have an empty So if we left this file out by default in examples, folks could still add their own empty file if they want the additional IDE features, without any duplication of compiler options or file lists. |
I'm still mulling this over. "Accidentally" getting Find All References and Refactoring is actually a pretty cool aspect of our system -- one that I probably vastly under-appreciated since I am stuck in the 1970s editor-wise. I wish there was some way to get the best of both worlds. |
I really don't want to lose this great tooling experience, so I'm punting on this for now. More details in #49. |
This consolidates the multiple project files we have right now, embellishing
further the Lumi.yaml/json project file as the place for all things project
and package related. Although I suspect we will revist some of this during
next sprint's package management work, this is a step in the right direction.
As a result, we can rip out all the tsconfig.json files scattered throughout.
The new structure adds two top-level sections to the Lumi.yaml/json file:
The idea here is that the manifest self-describes three things: 1) the compiler
used to build the package, 2) the settings to pass to that compiler (an opaque
bag to Lumi, since these are specific to the compiler), and 3) the source files
that comprise the project. This helps to unify the different compilers.
This accomplishes work item #49. It also enables #98,
the
lumi compile
and automatic recompilation commands, which will come soon.