I wish we would all start switching over to JSON for configuration files. It’s so much easier to parse, and you can’t screw it up with too many spaces or not enough.
piyuv@lemmy.world 1 day ago
I use homepage and pretty happy with it. “Drag and drop configuration, no yaml” actually put me off.
semperverus@lemmy.world 1 day ago
timbuck2themoon@sh.itjust.works 18 hours ago
No thanks. Yaml isn’t perfect but by God json is best used to return and parse data, not input it.
tiramichu@sh.itjust.works 12 hours ago
My biggest peeve with JSON when I’m forced to use it as a configuration file format is that it doesn’t have any syntactical support for comments.
So I can’t even add any notes to the file.
vinnymac@lemmy.world 7 hours ago
Yea, this is a deal breaker imo. My code tends to be 10 to 1 comments to lines of code ratio. Configuration even more so.
jsonc exists for this use case, but few tools actually use it, yaml is far more popular
lightnegative@lemmy.world 14 hours ago
I used to think that until I figured out yaml and now yaml isn’t so bad.
It helps that text editors know what yaml is now so insert spaces when you hit tab etc
tuhriel@infosec.pub 9 hours ago
My biggest gripe with yaml (especially in docker-compose files) is that l, for me at least, it is absolutely not clear when I need to add dahes (-) in front of multiple entries and when it’s just linebreaks.
And there are no easy accessible docker-compose validators…moonpiedumplings@programming.dev 3 hours ago
Try the yaml language server by red hat, it comes with a docker compose validator.
But in general, off the top of my head, dashes = list. No dashes is a dictionary.
So this is a list:
thing: - 1 - 2
And this is a dictionary:
dict: key1: value1 key2: value2
And then when they can be combined into a list of dictionaries.
listofdicts: - key1dict1: value1dict1 - key1dict2: value1dict2 key2dict2: value2dict2
And then abother thing to note is that yaml wilL convert things into a string. So if you have ports
8080:80
, this will be converted into a string, which is a clue that this is a string in a list, rather than a dictionary.moonpiedumplings@programming.dev 3 hours ago
Try the yaml language server by red hat, it comes with a docker compose validator.
But in general, off the top of my head, dashes = list. No dashes is a dictionary.
So this is a list:
thing: - 1 - 2
And this is a dictionary:
dict: key1: value1 key2: value2
And then when they can be combined into a list of dictionaries.
listofdicts: - key1dict1: value1dict1 - key1dict2: value1dict2 key2dict2: value2dict2
And then abother thing to note is that yaml wilL convert things into a string. So if you have ports
8080:80
, this will be converted into a string, which is a clue that this is a string in a list, rather than a dictionary.
FrederikNJS@lemmy.zip 6 hours ago
Why not just write your yaml files in JSON syntax?
JSON is a valid subset of YAML
iggy@lemmy.world 20 hours ago
No support for comments? Hard pass
Voroxpete@sh.itjust.works 18 hours ago
Yeah, this is my biggest annoyance with JSON. As a data structure it’s very elegant, but it only really makes sense to people who know how to code, and without the ability to add comments you have to rely heavily on external documentation to make it readable to most users.
cravl@slrpnk.net 18 hours ago
And like yeah, both the wonderful (and foss!)
.json5
and Microsoft’s semi-proprietary(?).jsonc
exist, but most projects just use their language’s default JSON parser that doesn’t recognize them. What I would personally love to see is.json5
support baked into the default JSON parsing libraries of Python, Go, etc. (Enabled by a flag, likely.) It’s a superset of regular JSON and fully ES2019 compatible, so there shouldn’t be any issues.
Voroxpete@sh.itjust.works 18 hours ago
Instead you can screw it up by having too many commas or not enough. Hardly that much of an improvement.
FooBarrington@lemmy.world 21 hours ago
It’s IMO also so much clearer regarding data types. You can’t accidentally write a boolean when you want a string.
curbstickle@lemmy.dbzer0.com 1 day ago
Same, homarr is decent but I prefer my configs, quick edits from whatever device is in hand, easy peasy.
Burn1ngBull3t@lemmy.world 1 day ago
Yeah i was wondering how you actually use versioning with that drag and drop. Homepage seems better for that IMO
TheBigRoomXXL@leminal.space 10 hours ago
Drag and drop isn’t for me either but it’s nice to have more beginners-friendly options in the self hosted community. Not everybody like to live in the terminal.