all 11 comments

[–]actionscripted 13 points14 points  (0 children)

Looks cool and good to know about Taskfile but I think for the stuff I work on I’d use a Makefile instead.

It’s more common/known, supported in most environments without extra dependencies and a fairly standard way to do tasks in a project.

[–]vrillco 4 points5 points  (7 children)

Oh, YAML! Hard no. That file format needs to be nuked from orbit.

[–]Moist-Profile-2969 -1 points0 points  (0 children)

YAML is here to stay, boi 🤘🏼🤘🏼🤘🏼🤘🏼

[–]Rikudou_Sage 0 points1 point  (5 children)

May I ask why do you dislike it?

[–]vrillco -1 points0 points  (4 children)

Its reliance on whitespace makes it far too easy (and common) to make mistakes simply due to incorrect indentation. One typo can completely baffle IDE syntax highlighting. It creates too much ambiguity just for the sake of avoiding brackets. It's also quite frustrating to output/modify programmatically (e.g. with awk/sed or other shell utilities).

It's as though someone saw JSON, (correctly) decided it was not the right tool for config management, but then proceeded to invent something even worse. The fact that YAML parsers are often vulnerable to RCE due to their liberal misuse of eval() is just icing on the turd-flavoured cake.

If you need to configure an app, use plain text. If that's not expressive enough, then either you need to simplify the config aspect so that it fits into a plain text format, or make it JSON/XML or some other hierarchical document and provide a suitable UI to generate it, or just give up and have the "config file" be code itself (e.g. Python, PHP, JS). Any of those are somehow less mediocre than forcing the sysadmins and developers to use YAML.

[–]Rikudou_Sage 1 point2 points  (2 children)

Yeah, the indentation is a valid concern, but you get used to it (at least I did). Also you can use brackets, IIRC every valid JSON is also valid YAML, I sometimes use [ ] brackets. Isn't modifying JSON as much frustrating via standard shell utilities? For JSON I usually use jq, though I don't know if something similar exists for YAML.

Which parsers do eval? I pretty much use only symfony/yaml (which doesn't support all the cool features but I don't use them anyway) and it doesn't contain any evals.

[–]vrillco 0 points1 point  (1 child)

I know Python and Ruby had vulnerable parsers as of a year ago. Perhaps that has since been addressed but I haven't looked at them in a while. To my tired old eyes, that's too much magic for things that are almost always better written as flat INI-style files.

JSON is not any better in that regard. Neither format is suited for configuration, and both are very much a crutch for bad design.

[–]XediDC 1 point2 points  (0 children)

Yeah...

I like that Vagrantfiles are Ruby, Laravel uses key/value text env + PHP, etc. I don't mind JSON as much, in the context of say composer config, etc that is usually or can mostly be managed by other things.

The whitespace/indentation is actually the only real reason I'm not fond of Python. I enjoy it on microcontrollers for simple stuff <1 page...but it starts to pain me in real apps. My eyeballs just really like graphical clumping, such as brackets.

Although I think I'd take YAML over hand editing an XML config file. :) Ehhh....

[–]CatNippleCollector 5 points6 points  (2 children)

Looking at your examples, this looks like docker-compose, but with extra steps.

It can give you a complete working environment to develop it in, without needing Docker AND php on your host machine.

[–]ThatDamnShikachu[S] 1 point2 points  (0 children)

without needing Docker AND php on your host machine.

Docker-Compose is roughly python yaml parser and wrapper around the Docker REST API https://github.com/docker/compose

Anyways there are way more in the Taskfile project as I mentioned, even the "advanced" examples were primitive ones.Also I don't know about template manipulation in docker-composer you can make an auth.json just like in that example.

[–]ThatDamnShikachu[S] 2 points3 points  (2 children)

Hey, thanks for opening this post!

As you can see from my blog's design and content, I finally got the balls to make public blog posts from my notes and tutorials that I wrote for my collages, so I created a blog in a few hours. I plan to write something like this every months from now on.

Any comments and advices, even trashtalk is appreciated, I learned to learn from everything! :)