| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,12 @@ | |||
| 1 | 1 | # Changelog | |
| 2 | 2 | ||
| 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 | + | ||
| 3 | 10 | ## [0.22.0](https://github.com/nodejs/gyp-next/compare/v0.21.1...v0.22.0) (2026-04-02) | |
| 4 | 11 | ||
| 5 | 12 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -857,7 +857,7 @@ def _EscapeCommandLineArgumentForMSBuild(s): | |||
| 857 | 857 | """Escapes a Windows command-line argument for use by MSBuild.""" | |
| 858 | 858 | ||
| 859 | 859 | def _Replace(match): | |
| 860 | - return (len(match.group(1)) / 2 * 4) * "\\" + '\\"' | ||
| 860 | + return (len(match.group(1)) // 2 * 4) * "\\" + '\\"' | ||
| 861 | 861 | ||
| 862 | 862 | # Escape all quotes so that they are interpreted literally. | |
| 863 | 863 | s = quote_replacer_regex2.sub(_Replace, s) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -39,7 +39,7 @@ def test_BinaryNamesWindows(self): | |||
| 39 | 39 | "executable": ".exe", | |
| 40 | 40 | "shared_library": ".dll", | |
| 41 | 41 | "static_library": ".lib", | |
| 42 | - }: | ||
| 42 | + }.items(): | ||
| 43 | 43 | self.assertTrue(writer.ComputeOutputFileName(spec, key).endswith(ext)) | |
| 44 | 44 | ||
| 45 | 45 | def test_BinaryNamesLinux(self): | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -24,8 +24,8 @@ def deepcopy(x): | |||
| 24 | 24 | return _deepcopy_dispatch[type(x)](x) | |
| 25 | 25 | except KeyError: | |
| 26 | 26 | 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." | ||
| 29 | 29 | ) | |
| 30 | 30 | ||
| 31 | 31 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -21,27 +21,10 @@ | |||
| 21 | 21 | from . import requirements, specifiers, utils, version as version_module | |
| 22 | 22 | ||
| 23 | 23 | 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 | ||
| 42 | 25 | ||
| 43 | 26 | try: | |
| 44 | - ExceptionGroup | ||
| 27 | + ExceptionGroup # Added in Python 3.11+ | ||
| 45 | 28 | except NameError: # pragma: no cover | |
| 46 | 29 | ||
| 47 | 30 | class ExceptionGroup(Exception): # noqa: N818 | |
@@ -504,7 +487,7 @@ def __set_name__(self, _owner: "Metadata", name: str) -> None: | |||
| 504 | 487 | self.raw_name = _RAW_TO_EMAIL_MAPPING[name] | |
| 505 | 488 | ||
| 506 | 489 | 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(). | ||
| 508 | 491 | # No need to check the cache as attribute lookup will resolve into the | |
| 509 | 492 | # instance's __dict__ before __get__ is called. | |
| 510 | 493 | cache = instance.__dict__ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -127,10 +127,8 @@ def _normalize_string(string: str) -> str: | |||
| 127 | 127 | def _abi3_applies(python_version: PythonVersion) -> bool: | |
| 128 | 128 | """ | |
| 129 | 129 | Determine if the Python version supports abi3. | |
| 130 | - | ||
| 131 | - PEP 384 was first implemented in Python 3.2. | ||
| 132 | 130 | """ | |
| 133 | - return len(python_version) > 1 and tuple(python_version) >= (3, 2) | ||
| 131 | + return len(python_version) > 1 | ||
| 134 | 132 | ||
| 135 | 133 | ||
| 136 | 134 | 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]: | |||
| 146 | 144 | has_ext = "_d.pyd" in EXTENSION_SUFFIXES | |
| 147 | 145 | if with_debug or (with_debug is None and (has_refcount or has_ext)): | |
| 148 | 146 | 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: | ||
| 160 | 148 | # Debug builds can also load "normal" extension modules. | |
| 161 | 149 | # We can also assume no UCS-4 or pymalloc requirement. | |
| 162 | 150 | abis.append(f"cp{version}") | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta" | |||
| 4 | 4 | ||
| 5 | 5 | [project] | |
| 6 | 6 | name = "gyp-next" | |
| 7 | - version = "0.22.0" | ||
| 7 | + version = "0.22.1" | ||
| 8 | 8 | authors = [ | |
| 9 | 9 | { name="Node.js contributors", email="ryzokuken@disroot.org" }, | |
| 10 | 10 | ] | |
| 11 | 11 | description = "A fork of the GYP build system for use in the Node.js projects" | |
| 12 | 12 | readme = "README.md" | |
| 13 | 13 | license = { file="LICENSE" } | |
| 14 | - requires-python = ">=3.8" | ||
| 14 | + requires-python = ">=3.9" | ||
| 15 | 15 | dependencies = ["packaging>=24.0", "setuptools>=69.5.1"] | |
| 16 | 16 | classifiers = [ | |
| 17 | 17 | "Development Status :: 3 - Alpha", | |
@@ -21,10 +21,12 @@ classifiers = [ | |||
| 21 | 21 | "Natural Language :: English", | |
| 22 | 22 | "Programming Language :: Python", | |
| 23 | 23 | "Programming Language :: Python :: 3", | |
| 24 | - "Programming Language :: Python :: 3.8", | ||
| 25 | 24 | "Programming Language :: Python :: 3.9", | |
| 26 | 25 | "Programming Language :: Python :: 3.10", | |
| 27 | 26 | "Programming Language :: Python :: 3.11", | |
| 27 | + "Programming Language :: Python :: 3.12", | ||
| 28 | + "Programming Language :: Python :: 3.13", | ||
| 29 | + "Programming Language :: Python :: 3.14", | ||
| 28 | 30 | ] | |
| 29 | 31 | ||
| 30 | 32 | [project.optional-dependencies] | |
| Back | FazBrowse Home | New Git URL |
0 commit comments