Our great sponsors
ron | yamllint | |
---|---|---|
24 | 11 | |
3,118 | 2,706 | |
2.5% | - | |
7.9 | 8.3 | |
13 days ago | about 2 months ago | |
Rust | Python | |
Apache License 2.0 | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ron
-
XML is better than YAML
Whenever this kind of arguments come up, I am sad that RON (https://github.com/ron-rs/ron) is not better known. To me it feels like a cleaner and better JSON.
In any case, my little experience with it had made me hate YAML. Generally speaking, I have come to dislike any language with significant whitespace other than Haskell.
-
What config format do you prefer?
Part of the reason why I migrated away from RON in system76-scheduler is because I needed to rely on the 253-untagged-enums branch from https://github.com/MomoLangenstein/ron. Which still isn't resolved today: https://github.com/ron-rs/ron/pull/451.
-
Ron: Rusty Object Notation
Serde is strongly, strictly typed: you have to specify what type you want to decode to. It’s nothing like Python’s Pickle protocol.
See, for example, https://github.com/ron-rs/ron/blob/484fcab0686dfd18c7e29b6c1..., where it (in a type-inferency way) says “parse as Config”.
- JSON vs. XML with Douglas Crockford
- Ron – Rusty Object Notation
- They're rebuilding the Death Star of complexity
yamllint
- yamllint – A Linter for YAML Files
-
IT Pro Tuesday #227 - Notification Tool, SPF/DKIM/DMARC Tutorial, YAML Linter & More
yamllint, as the name suggests, is a linter for YAML files. It checks syntax validity, as well as looking for more-complex errors like key repetition and cosmetic problems such as line length, trailing spaces, indentation etc. This one was indly recommended by yankdevil.
-
StrictYAML
StrictYAML removes features that might be useful for some usecases, such as Node anchors+Refs and Flow Style.
I don't think the cost of an additional standard is worth it in this case.
While YAML has issues, they aren't much of problem if you use a linter, such as yamllint [1].
1. https://github.com/adrienverge/yamllint
-
Data and System Visualization Tools That Will Boost Your Productivity
On top of the above-mentioned tools, it's also a good idea to use YAML linter such this one or its CLI equivalent, which will validate and cleanup your documents.
- Anyone actually fluent in YAML?
-
Let CI check & fix your yamls
yamlfixer automates the fixing of problems reported by yamllint by parsing its output.
-
Modern Python setup for quality development
repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.0.1 hooks: - id: check-added-large-files - id: check-ast - id: check-builtin-literals - id: check-case-conflict - id: check-docstring-first - id: check-executables-have-shebangs - id: check-json - id: check-merge-conflict - id: check-symlinks - id: check-toml - id: check-vcs-permalinks - id: check-xml - id: check-yaml args: [--allow-multiple-documents] - id: debug-statements - id: detect-aws-credentials args: [--allow-missing-credentials] - id: destroyed-symlinks - id: end-of-file-fixer - id: fix-byte-order-marker - id: fix-encoding-pragma args: [--remove] - id: forbid-new-submodules - id: mixed-line-ending args: [--fix=auto] - id: name-tests-test args: [--django] - id: requirements-txt-fixer - id: trailing-whitespace - repo: local hooks: - id: black name: black entry: poetry run black language: system types: [python] - id: flake8 name: flake8 entry: poetry run flake8 language: system types: [python] - repo: https://github.com/pycqa/isort rev: "5.9.1" hooks: - id: isort args: - --profile - black - --filter-files - repo: https://github.com/adrienverge/yamllint.git rev: v1.26.1 hooks: - id: yamllint args: [-c=.yamllint.yaml] - repo: https://gitlab.com/devopshq/gitlab-ci-linter rev: v1.0.2 hooks: - id: gitlab-ci-linter args: - "--server" - "https://your.gitlab.server" # Need env var GITLAB_PRIVATE_TOKEN with gitlab api read token - repo: https://github.com/commitizen-tools/commitizen rev: v2.17.11 hooks: - id: commitizen stages: [commit-msg] - repo: https://github.com/jumanjihouse/pre-commit-hooks rev: 2.1.5 # or specific git tag hooks: - id: forbid-binary - id: shellcheck - id: shfmt
-
YAML formatter recommendation
If you wanted a linter.
-
CloudFormation Noob - using YAML
Or, run Yamllint externally. I do this, because I have more control: https://github.com/adrienverge/yamllint
-
The Norway Problem
You can catch this with yamllint (https://github.com/adrienverge/yamllint):
% cat countries.yml
What are some alternatives?
toml.io - Source Code for toml.io
pyyaml - Canonical source repository for PyYAML
json5 - JSON5 — JSON for Humans
cue - CUE has moved to https://github.com/cue-lang/cue
kdl - the kdl document language specifications
pre-commit - A framework for managing and maintaining multi-language pre-commit hooks.
minimal-yaml - A minimalist, zero-copy parser for a strict subset of the Yaml specification.
Flake8 - flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code.
yaml-reference-parser
edn - Extensible Data Notation
typescript-json-schema - Generate json-schema from your Typescript sources
kubernetes - Production-Grade Container Scheduling and Management