Third-party notices

Copy Markdown View Source

Formata has no runtime dependencies. Its codec and schema backends are maintained forks of the packages below, copied from the published Hex releases, renamed into the Formata namespace, and modified as described. The original license texts are in LICENSES/ and are shipped in the Hex package.

Upstream packageVersionSourceLicenseFormata location
jason1.4.5https://github.com/michalmuskala/jason (tag v1.4.5, 4ede428)Apache-2.0 (LICENSES/jason.txt, LICENSES/Apache-2.0.txt)Formata.Jason* — lib/formata/jason*
gsmlg_toml1.0.0https://github.com/gsmlg-dev/gsmlg_umbrella (apps/gsmlg_toml; no release tag — lib/ identical to the Hex release at ce41864 except the unforked provider.ex)Apache-2.0 (package metadata; the repository LICENSE at ce41864 is Apache-2.0 followed by a retained MIT notice) — the Hex 1.0.0 release shipped only the MIT notice (LICENSES/gsmlg_toml.txt); both texts are included (LICENSES/Apache-2.0.txt)Formata.Toml* — lib/formata/toml*
yaml_elixir2.12.2https://github.com/KamilLelonek/yaml-elixir (tag v2.12.2, 4c5ee04)MIT (LICENSES/yaml_elixir.txt)Formata.YamlElixir* — lib/formata/yaml_elixir*
yamerl0.10.0https://github.com/yakaz/yamerl (tag v0.10.0, 39981b9)BSD-2-Clause (LICENSES/yamerl.txt)formata_yamerl* — src/, include/
ymlr5.1.6https://github.com/ufirstgroup/ymlr (tag v5.1.6, 85bdb49)MIT (LICENSES/ymlr.txt)Formata.Ymlr* — lib/formata/ymlr*
backplane_schema1.10.76https://github.com/gsmlg-opt/backplane (tag v1.10.76, 8330b68, apps/backplane_schema)MIT (LICENSES/backplane_schema.txt)Formata.Backplane.Schema* — lib/formata/backplane/schema*
backplane_json_schema1.10.76https://github.com/gsmlg-opt/backplane (tag v1.10.76, 8330b68, apps/backplane_json_schema)Apache-2.0, declared in package metadata; no license file or copyright notice is shipped upstream (LICENSES/Apache-2.0.txt)Formata.Backplane.JsonSchema* — lib/formata/backplane/json_schema*
ex_json_pointer0.9.0https://github.com/xinz/ex_json_pointerMIT (LICENSES/ex_json_pointer.txt)Formata.ExJSONPointer* — lib/formata/ex_json_pointer*

Modifications common to all forks

  • Modules renamed into the Formata namespace (Jason → Formata.Jason, Backplane.Schema → Formata.Backplane.Schema, …); yamerl's Erlang modules, header files and record names are prefixed formata_.
  • Reformatted with mix format.
  • Compile-time optional integrations removed, because their presence would depend on the consumer's dependency tree: Decimal (Jason, Ymlr, JSON Schema multipleOf), :idna (JSON Schema idn-hostname), and the Jason/JSON selection in backplane_json_schema (Elixir's built-in JSON is used).
  • No application environment: Jason's integer digit limit is fixed at 1024; yamerl's application callback, supervisor and global node_mods parameter are removed (node modules are passed per call).
  • gsmlg_toml's release configuration provider (Toml.Provider) is not included.
  • Upstream moduledocs that were read from README files are replaced by @moduledoc false.

Bug fixes made in Formata after forking are listed in CHANGELOG.md.

Original implementation

Formata.Codec.TOML.Encoder is an original implementation written against the TOML 1.0.0 specification.

Test fixtures

test/fixtures/toml-test/ contains the TOML 1.0.0 valid and invalid cases (.toml inputs and tagged-JSON expectations) from toml-lang/toml-test at commit 96fd088448ec0f4d9f061c730ed7854399c46faf, MIT licensed (Copyright (c) 2018 TOML authors). See test/fixtures/toml-test/PROVENANCE.md for the file list and license text. Fixtures for the forked packages' own test suites are described by the PROVENANCE.md file in each test/fixtures/<package>/ directory. Test fixtures are not included in the Hex package.