◐ Shell
clean mode source ↗

tools: update gyp-next to 0.22.1 · nodejs/node@9354bf4

Original file line numberDiff line numberDiff line change

@@ -1,5 +1,12 @@

11

# Changelog

22
3+

## [0.22.1](https://github.com/nodejs/gyp-next/compare/v0.22.0...v0.22.1) (2026-04-21)

4+
5+
6+

### Bug Fixes

7+
8+

* use floor division when escaping command-line arguments ([#338](https://github.com/nodejs/gyp-next/issues/338)) ([cadca24](https://github.com/nodejs/gyp-next/commit/cadca2416dc13e117e035ad6dd2b471a86d0430f))

9+
310

## [0.22.0](https://github.com/nodejs/gyp-next/compare/v0.21.1...v0.22.0) (2026-04-02)

411
512
Original file line numberDiff line numberDiff line change

@@ -857,7 +857,7 @@ def _EscapeCommandLineArgumentForMSBuild(s):

857857

"""Escapes a Windows command-line argument for use by MSBuild."""

858858
859859

def _Replace(match):

860-

return (len(match.group(1)) / 2 * 4) * "\\" + '\\"'

860+

return (len(match.group(1)) // 2 * 4) * "\\" + '\\"'

861861
862862

# Escape all quotes so that they are interpreted literally.

863863

s = quote_replacer_regex2.sub(_Replace, s)

Original file line numberDiff line numberDiff line change

@@ -39,7 +39,7 @@ def test_BinaryNamesWindows(self):

3939

"executable": ".exe",

4040

"shared_library": ".dll",

4141

"static_library": ".lib",

42-

}:

42+

}.items():

4343

self.assertTrue(writer.ComputeOutputFileName(spec, key).endswith(ext))

4444
4545

def test_BinaryNamesLinux(self):

Original file line numberDiff line numberDiff line change

@@ -24,8 +24,8 @@ def deepcopy(x):

2424

return _deepcopy_dispatch[type(x)](x)

2525

except KeyError:

2626

raise Error(

27-

"Unsupported type %s for deepcopy. Use copy.deepcopy "

28-

+ "or expand simple_copy support." % type(x)

27+

f"Unsupported type {type(x)} for deepcopy. Use copy.deepcopy "

28+

+ "or expand simple_copy support."

2929

)

3030
3131
Original file line numberDiff line numberDiff line change

@@ -21,27 +21,10 @@

2121

from . import requirements, specifiers, utils, version as version_module

2222
2323

T = typing.TypeVar("T")

24-

if sys.version_info[:2] >= (3, 8): # pragma: no cover

25-

from typing import Literal, TypedDict

26-

else: # pragma: no cover

27-

if typing.TYPE_CHECKING:

28-

from typing_extensions import Literal, TypedDict

29-

else:

30-

try:

31-

from typing_extensions import Literal, TypedDict

32-

except ImportError:

33-
34-

class Literal:

35-

def __init_subclass__(*_args, **_kwargs):

36-

pass

37-
38-

class TypedDict:

39-

def __init_subclass__(*_args, **_kwargs):

40-

pass

41-
24+

from typing import Literal, TypedDict

4225
4326

try:

44-

ExceptionGroup

27+

ExceptionGroup # Added in Python 3.11+

4528

except NameError: # pragma: no cover

4629
4730

class ExceptionGroup(Exception): # noqa: N818

@@ -504,7 +487,7 @@ def __set_name__(self, _owner: "Metadata", name: str) -> None:

504487

self.raw_name = _RAW_TO_EMAIL_MAPPING[name]

505488
506489

def __get__(self, instance: "Metadata", _owner: Type["Metadata"]) -> T:

507-

# With Python 3.8, the caching can be replaced with functools.cached_property().

490+

# With Python 3.8+, the caching can be replaced with functools.cached_property().

508491

# No need to check the cache as attribute lookup will resolve into the

509492

# instance's __dict__ before __get__ is called.

510493

cache = instance.__dict__

Original file line numberDiff line numberDiff line change

@@ -127,10 +127,8 @@ def _normalize_string(string: str) -> str:

127127

def _abi3_applies(python_version: PythonVersion) -> bool:

128128

"""

129129

Determine if the Python version supports abi3.

130-
131-

PEP 384 was first implemented in Python 3.2.

132130

"""

133-

return len(python_version) > 1 and tuple(python_version) >= (3, 2)

131+

return len(python_version) > 1

134132
135133
136134

def _cpython_abis(py_version: PythonVersion, warn: bool = False) -> List[str]:

@@ -146,17 +144,7 @@ def _cpython_abis(py_version: PythonVersion, warn: bool = False) -> List[str]:

146144

has_ext = "_d.pyd" in EXTENSION_SUFFIXES

147145

if with_debug or (with_debug is None and (has_refcount or has_ext)):

148146

debug = "d"

149-

if py_version < (3, 8):

150-

with_pymalloc = _get_config_var("WITH_PYMALLOC", warn)

151-

if with_pymalloc or with_pymalloc is None:

152-

pymalloc = "m"

153-

if py_version < (3, 3):

154-

unicode_size = _get_config_var("Py_UNICODE_SIZE", warn)

155-

if unicode_size == 4 or (

156-

unicode_size is None and sys.maxunicode == 0x10FFFF

157-

):

158-

ucs4 = "u"

159-

elif debug:

147+

if debug:

160148

# Debug builds can also load "normal" extension modules.

161149

# We can also assume no UCS-4 or pymalloc requirement.

162150

abis.append(f"cp{version}")

Original file line numberDiff line numberDiff line change

@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"

44
55

[project]

66

name = "gyp-next"

7-

version = "0.22.0"

7+

version = "0.22.1"

88

authors = [

99

{ name="Node.js contributors", email="ryzokuken@disroot.org" },

1010

]

1111

description = "A fork of the GYP build system for use in the Node.js projects"

1212

readme = "README.md"

1313

license = { file="LICENSE" }

14-

requires-python = ">=3.8"

14+

requires-python = ">=3.9"

1515

dependencies = ["packaging>=24.0", "setuptools>=69.5.1"]

1616

classifiers = [

1717

"Development Status :: 3 - Alpha",

@@ -21,10 +21,12 @@ classifiers = [

2121

"Natural Language :: English",

2222

"Programming Language :: Python",

2323

"Programming Language :: Python :: 3",

24-

"Programming Language :: Python :: 3.8",

2524

"Programming Language :: Python :: 3.9",

2625

"Programming Language :: Python :: 3.10",

2726

"Programming Language :: Python :: 3.11",

27+

"Programming Language :: Python :: 3.12",

28+

"Programming Language :: Python :: 3.13",

29+

"Programming Language :: Python :: 3.14",

2830

]

2931
3032

[project.optional-dependencies]