lando / lando

A development tool for all your projects that is fast, easy, powerful and liberating
https://lando.dev
GNU General Public License v3.0
4.03k stars 541 forks source link

Level up DX #620

Closed dustinleblanc closed 6 years ago

dustinleblanc commented 6 years ago

After a little bit of time contributing to Lando in small ways, there are a few ways I think we could improve the developer experience which should pay off in spades for offloading development burden from core maintainers. A few of the things I think would be useful.

what say ye merry ladies and gents?

uberhacker commented 6 years ago

I'm all for improvements. The problem with .editorconfig and why you cannot commit it in the repo is because developers tend to prefer different editors/IDEs. Unless, of course, you require all the devs to use a specific editor/IDE. What would be really awesome is if you could detect which editor/IDE the developer is using and then download the appropriate .editorconfig from https://github.com/editorconfig.

dmsmidt commented 6 years ago

We could work with .editorconfig.example.sublime etc. or something. And gitignore .editorconfig. So provide the example for multiple much used IDE's.

dustinleblanc commented 6 years ago

@uberhacker isn't .editorconfig designed to be IDE/editor agnostic?

as in the file is one format, and different editors are supposed to implement a plugin to consume the declared styles. I believe that is 100% the point of .editorconfig

dmsmidt commented 6 years ago

I currently use yarn to manage my deps, so would prefer a yarn.lock instead of a package-lock.json. Any more takers?

dustinleblanc commented 6 years ago
# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8

[*.js]
indent_style = space
indent_size = 2

should be sufficient for all editors to pick up on

dustinleblanc commented 6 years ago

@dmsmidt Yarn is great, though I am wavering a bit lately on which lockfile to use given that NPM now has them. I have no preference and would rather use what makes the majority of maintainers happy there.

uberhacker commented 6 years ago

@dustinleblanc: You are right about that. "EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs.". I guess I worded it incorrectly. Since different editors require plugins in order to import the .editorconfig settings, we would need to make sure each editor/IDE has the appropriate plugin installed.

dustinleblanc commented 6 years ago

@uberhacker I don't think you'd need to ensure anything, its more of an incremental improvement thing. Providing the file as part of the repo makes things easier and causes no extra problems. Its an opt-in helper. The make-or-break comes when the test suite / linter is run. That is where enforcement happens. This is less about enforcement, and more about improving the experience for developers who can make use of some helpful tools.

uberhacker commented 6 years ago

@dustinleblanc: Fair enough. I'll continue on with my day. :)

pirog commented 6 years ago

Totally plus +1 on the .editorconfig, definitely good to have along with the js linting and standards files that are already in there.

Regarding locking down the developer experience (i know @uberhacker will be annoyed by this suggestion but...) we could always use lando to develop lando.

dustinleblanc commented 6 years ago

Working on exactly that 💃

pirog commented 6 years ago

image

dustinleblanc commented 6 years ago

added a few more items to the list based on issues I am running into. We might want to focus on this more for 3.1 as per what @pirog was saying in slack today. My approach in #602 has surfaced a few linting issues because I am jumping whole hog into ES6 land, and since jscs is deprecated, it is proving to be interesting to figure out how to fix them.

FYI at @pirog, I also got Lando-in-Lando to run, and I would love to use that specifically for running the 'linux client' tests so to speak, but there are probably more t's to cross and i's to dot to make sure that works right

dustinleblanc commented 6 years ago

I'm at 3/5 on current items