Breaking changes:
- Remarshal 0.18 finally encodes and decodes YAML as **YAML 1.2** rather than YAML 1.1 like earlier versions. It means no more "Norway problem" (unquoted `NO`, `No`, and `no` being decoded as boolean false). Remarshal can now correctly process GitHub Actions YAML. To implement this, we have migrated from PyYAML to [ruamel.yaml](https://pypi.org/project/ruamel.yaml/). The option `--sort-keys` no longer affects YAML output due to a lack of support in the new YAML library. Because ruamel.yaml is not yet considered stable, the 1.0 release of Remarshal is postponed.
- Multiple small changes to the Python API when using Remarshal as a library. For example, the order of the arguments to the function `remarshal` has changed. A type checker like mypy or Pyright can help you upgrade. We hope to make this the biggest change before the API is declared stable in version 1.0.
- Support for Python 3.7 has been dropped.
Non-breaking changes:
- **TOML decoding speed-up:** TOML decoding should be at least 10× faster on average. Encoding is unaffected.
- There are new format command-line options `-f`/`--from` and `-t`/`--to` like in Pandoc and iconv(1). We have hidden (but kept) `-if` and `-of` with a single dash. Those are legacy options from the Go days of Remarshal.
- A new `--verbose` command-line option has been added for debugging.
- The command-line interface and the help message have color. Color is used sparingly. You can disable it by setting the environment variable `NO_COLOR`.
- Remarshal is now tested with PyPy and on macOS.