remarshal_0_17: init at 0.17.1; pkgs.formats.yaml_1_1: rename from pkgs.formats.yaml (#354687)

This commit is contained in:
Martin Weinelt 2024-11-12 19:17:11 +01:00 committed by GitHub
commit 7661bb7fe9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 71 additions and 4 deletions

View File

@ -0,0 +1,62 @@
{
lib,
python3Packages,
fetchFromGitHub,
fetchPypi,
}:
let
python = python3Packages.python.override {
self = python3Packages.python;
packageOverrides = self: super: {
tomlkit = super.tomlkit.overridePythonAttrs (oldAttrs: rec {
version = "0.12.5";
src = fetchPypi {
pname = "tomlkit";
inherit version;
hash = "sha256-7vNPujmDTU1rc8m6fz5NHEF6Tlb4mn6W4JDdDSS4+zw=";
};
});
};
};
pythonPackages = python.pkgs;
in
pythonPackages.buildPythonApplication rec {
pname = "remarshal";
version = "0.17.1"; # last version with YAML 1.1 support, do not update
pyproject = true;
src = fetchFromGitHub {
owner = "dbohdan";
repo = "remarshal";
rev = "refs/tags/v${version}";
hash = "sha256-2WxMh5P/8NvElymnMU3JzQU0P4DMXFF6j15OxLaS+VA=";
};
pythonRemoveDeps = [ "pytest" ];
build-system = [ pythonPackages.poetry-core ];
dependencies = with pythonPackages; [
cbor2
colorama
python-dateutil
pyyaml
rich-argparse
ruamel-yaml
tomlkit
u-msgpack-python
];
nativeCheckInputs = [ pythonPackages.pytestCheckHook ];
passthru.updateScript = throw "This package is pinned to 0.17.1 for YAML 1.1 support";
meta = with lib; {
changelog = "https://github.com/remarshal-project/remarshal/releases/tag/v${version}";
description = "Convert between TOML, YAML and JSON";
license = licenses.mit;
homepage = "https://github.com/dbohdan/remarshal";
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -76,10 +76,11 @@ rec {
};
yaml = {}: {
yaml = yaml_1_1;
generate = name: value: pkgs.callPackage ({ runCommand, remarshal }: runCommand name {
nativeBuildInputs = [ remarshal ];
yaml_1_1 = {}: {
generate = name: value: pkgs.callPackage ({ runCommand, remarshal_0_17 }: runCommand name {
nativeBuildInputs = [ remarshal_0_17 ];
value = builtins.toJSON value;
passAsFile = [ "value" ];
preferLocalBuild = true;

View File

@ -118,7 +118,7 @@ in runBuildTests {
'';
};
yamlAtoms = shouldPass {
yaml_1_1Atoms = shouldPass {
format = formats.yaml {};
input = {
null = null;
@ -129,6 +129,8 @@ in runBuildTests {
attrs.foo = null;
list = [ null null ];
path = ./formats.nix;
no = "no";
time = "22:30:00";
};
expected = ''
attrs:
@ -138,9 +140,11 @@ in runBuildTests {
list:
- null
- null
'no': 'no'
'null': null
path: ${./formats.nix}
str: foo
time: '22:30:00'
'true': true
'';
};