From 38e2c48b68892505256ee40d4f9f1d20a7be0613 Mon Sep 17 00:00:00 2001 From: eljamm Date: Sat, 8 Nov 2025 21:53:29 +0100 Subject: [PATCH] gdtoolkit_3: 3.5.0 -> 3.6.0 Changelog; https://github.com/Scony/godot-gdscript-toolkit/blob/3.6.0/CHANGELOG.md Diff: https://github.com/Scony/godot-gdscript-toolkit/compare/3.5.0...3.6.0 --- ...th-importlib-instead-of-pkg_resource.patch | 149 ++++++++++++++++++ pkgs/by-name/gd/gdtoolkit_3/package.nix | 34 ++-- 2 files changed, 166 insertions(+), 17 deletions(-) create mode 100644 pkgs/by-name/gd/gdtoolkit_3/0001-Get-version-with-importlib-instead-of-pkg_resource.patch diff --git a/pkgs/by-name/gd/gdtoolkit_3/0001-Get-version-with-importlib-instead-of-pkg_resource.patch b/pkgs/by-name/gd/gdtoolkit_3/0001-Get-version-with-importlib-instead-of-pkg_resource.patch new file mode 100644 index 000000000000..6789306d9124 --- /dev/null +++ b/pkgs/by-name/gd/gdtoolkit_3/0001-Get-version-with-importlib-instead-of-pkg_resource.patch @@ -0,0 +1,149 @@ +From c27d6b2f66b26860ddd3811df7a5d02bc59a897c Mon Sep 17 00:00:00 2001 +From: eljamm +Date: Sun, 9 Nov 2025 20:48:07 +0100 +Subject: [PATCH] Get version with importlib instead of pkg_resource + +--- + gdtoolkit/formatter/__main__.py | 4 ++-- + gdtoolkit/gd2py/__main__.py | 4 ++-- + gdtoolkit/gdradon/__main__.py | 4 ++-- + gdtoolkit/linter/__main__.py | 4 ++-- + gdtoolkit/parser/__main__.py | 4 ++-- + gdtoolkit/parser/parser.py | 4 ++-- + 6 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/gdtoolkit/formatter/__main__.py b/gdtoolkit/formatter/__main__.py +index f71d1e3..7a6b0e4 100644 +--- a/gdtoolkit/formatter/__main__.py ++++ b/gdtoolkit/formatter/__main__.py +@@ -23,7 +23,7 @@ Examples: + echo 'tool' | gdformat - # reads from STDIN + """ + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + import difflib + from typing import List, Tuple + +@@ -50,7 +50,7 @@ def main(): + arguments = docopt( + __doc__, + version="gdformat {}".format( +- pkg_resources.get_distribution("gdtoolkit").version ++ pkg_version("gdtoolkit") + ), + ) + +diff --git a/gdtoolkit/gd2py/__main__.py b/gdtoolkit/gd2py/__main__.py +index 47b85b2..bb69c7a 100644 +--- a/gdtoolkit/gd2py/__main__.py ++++ b/gdtoolkit/gd2py/__main__.py +@@ -17,7 +17,7 @@ Examples: + gd2py ./addons/gut/gut.gd | radon cc -s - + """ + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + + from docopt import docopt + +@@ -28,7 +28,7 @@ def main(): + sys.stdout.reconfigure(encoding="utf-8") + arguments = docopt( + __doc__, +- version="gd2py {}".format(pkg_resources.get_distribution("gdtoolkit").version), ++ version="gd2py {}".format(pkg_version("gdtoolkit")), + ) + with open(arguments[""], "r", encoding="utf-8") as fh: + print(convert_code(fh.read())) +diff --git a/gdtoolkit/gdradon/__main__.py b/gdtoolkit/gdradon/__main__.py +index d9a2567..289c26e 100644 +--- a/gdtoolkit/gdradon/__main__.py ++++ b/gdtoolkit/gdradon/__main__.py +@@ -13,7 +13,7 @@ Examples: + gdradon cc file1.gd file2.gd path/ + """ + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + from typing import List + + from docopt import docopt +@@ -32,7 +32,7 @@ def main(): + arguments = docopt( + __doc__, + version="gdradon {}".format( +- pkg_resources.get_distribution("gdtoolkit").version ++ pkg_version("gdtoolkit") + ), + ) + +diff --git a/gdtoolkit/linter/__main__.py b/gdtoolkit/linter/__main__.py +index 90a8b4d..136aa5e 100644 +--- a/gdtoolkit/linter/__main__.py ++++ b/gdtoolkit/linter/__main__.py +@@ -16,7 +16,7 @@ Options: + """ + import sys + import os +-import pkg_resources ++from importlib.metadata import version as pkg_version + import logging + import pathlib + from typing import List, Optional +@@ -43,7 +43,7 @@ CONFIG_FILE_NAME = "gdlintrc" + def main(): + arguments = docopt( + __doc__, +- version="gdlint {}".format(pkg_resources.get_distribution("gdtoolkit").version), ++ version="gdlint {}".format(pkg_version("gdtoolkit")), + ) + + if arguments["--verbose"]: +diff --git a/gdtoolkit/parser/__main__.py b/gdtoolkit/parser/__main__.py +index 132dfc4..9914817 100644 +--- a/gdtoolkit/parser/__main__.py ++++ b/gdtoolkit/parser/__main__.py +@@ -13,7 +13,7 @@ Options: + --version Show version. + """ + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + from typing import Dict + + import lark +@@ -30,7 +30,7 @@ def main(): + arguments = docopt( + __doc__, + version="gdparse {}".format( +- pkg_resources.get_distribution("gdtoolkit").version ++ pkg_version("gdtoolkit") + ), + ) + files = arguments[""] +diff --git a/gdtoolkit/parser/parser.py b/gdtoolkit/parser/parser.py +index 37cc544..51021ec 100644 +--- a/gdtoolkit/parser/parser.py ++++ b/gdtoolkit/parser/parser.py +@@ -6,7 +6,7 @@ and to get an intermediate representation as a Lark Tree. + import os + import pickle + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + + from lark import Lark, Tree, indenter + from lark.grammar import Rule +@@ -77,7 +77,7 @@ class Parser: + add_metadata: bool = False, + grammar_filename: str = "gdscript.lark", + ) -> Tree: +- version: str = pkg_resources.get_distribution("gdtoolkit").version ++ version: str = pkg_version("gdtoolkit") + + tree: Tree = None + cache_filepath: str = ( +-- +2.50.1 + diff --git a/pkgs/by-name/gd/gdtoolkit_3/package.nix b/pkgs/by-name/gd/gdtoolkit_3/package.nix index db3d0dee96df..b1220017c691 100644 --- a/pkgs/by-name/gd/gdtoolkit_3/package.nix +++ b/pkgs/by-name/gd/gdtoolkit_3/package.nix @@ -16,35 +16,41 @@ let src = fetchFromGitHub { owner = "lark-parser"; repo = "lark"; - rev = version; + tag = version; hash = "sha256-KN9buVlH8hJ8t0ZP5yefeYM5vH5Gg7a7TEDGKJYpozs="; fetchSubmodules = true; }; - patches = [ ]; }); }; }; in python.pkgs.buildPythonApplication rec { pname = "gdtoolkit3"; - version = "3.5.0"; - format = "setuptools"; + version = "3.6.0"; + pyproject = true; # If we try to get using fetchPypi it requires GeoIP (but the package dont has that dep!?) src = fetchFromGitHub { owner = "Scony"; repo = "godot-gdscript-toolkit"; tag = version; - hash = "sha256-cMGD5Xdf9ElS1NT7Q0NPB//EvUO0MI0VTtps5JRisZ4="; + hash = "sha256-DRZgjCrz/U6jPx1grNuhZTx9iXNyxzR6xWoAm5DKtoA="; }; - disabled = python.pythonOlder "3.7"; + # pkg_resources is deprecated and causes tests to fail + patches = [ + ./0001-Get-version-with-importlib-instead-of-pkg_resource.patch + ]; - propagatedBuildInputs = with python.pkgs; [ + build-system = with python.pkgs; [ + setuptools + ]; + + dependencies = with python.pkgs; [ docopt lark pyyaml - setuptools + radon ]; doCheck = true; @@ -60,12 +66,6 @@ python.pkgs.buildPythonApplication rec { writableTmpDirAsHomeHook ]; - # The tests are not working on NixOS - disabledTests = [ - "test_cc_on_empty_file_succeeds" - "test_cc_on_file_with_single_function_succeeds" - ]; - pythonImportsCheck = [ "gdtoolkit" "gdtoolkit.formatter" @@ -73,11 +73,11 @@ python.pkgs.buildPythonApplication rec { "gdtoolkit.parser" ]; - meta = with lib; { + meta = { description = "Independent set of tools for working with Godot's GDScript - parser, linter and formatter"; homepage = "https://github.com/Scony/godot-gdscript-toolkit"; - license = licenses.mit; - maintainers = with maintainers; [ + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ shiryel tmarkus ];