Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nodejs/node-gyp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 5f9d86d731af5f2efe1cdadc5461932e182dd9af
Choose a base ref
...
head repository: nodejs/node-gyp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 39ac2c135db8a9e62bf22f0c7a4469ae6c381325
Choose a head ref
  • 15 commits
  • 27 files changed
  • 11 contributors

Commits on Jul 15, 2022

  1. lib: enable support for zoslib on z/OS (#2600)

    Check if zos-base.h is in the directory identified by environment
    variable ZOSLIB_INCLUDES if set; otherwise search for it from a set of
    candidates under nodeRootDir. Then pass it as
    -Dzoslib_include_dir=<path-found> to gyp_main.py for use in common.gypi
    to set 'includes_dir' when compiling addons.
    
    Co-authored-by: Gaby Baghdadi <baghdadi@ca.ibm.com>
    
    Co-authored-by: Gaby Baghdadi <baghdadi@ca.ibm.com>
    alexcfyung and gabylb authored Jul 15, 2022
    Copy the full SHA
    83c0a12 View commit details

Commits on Jul 22, 2022

  1. chore: update dependency - nopt@6.0.0 (#2707)

    No functional changes, just dropping old node versions from engines,
    linting, and fixing CI.
    wraithgar authored Jul 22, 2022
    Copy the full SHA
    8958ecf View commit details

Commits on Aug 22, 2022

  1. fix: node.js debugger adds stderr (but exit code is 0) -> shouldn't t…

    …hrow (#2719)
    
    * fix: node.js debugger adds stderr (but exit code is 0) -> shouldn't throw
    
    * input.py: subprocess.Popen() -> subprocess.run()
    FuPeiJiang authored Aug 22, 2022
    Copy the full SHA
    c379a74 View commit details

Commits on Sep 24, 2022

  1. feat(gyp): update gyp to v0.13.0

    kadler authored and richardlau committed Sep 24, 2022
    Copy the full SHA
    3e2a532 View commit details
  2. feat: Add proper support for IBM i

    Python 3.9 on IBM i now properly returns "os400" for sys.platform
    instead of claiming to be AIX as it did previously. While the IBM i PASE
    environment is compatible with AIX, it is a subset and has numerous
    differences which makes it beneficial to distinguish, however this means
    that it now needs explicit support here.
    kadler authored and richardlau committed Sep 24, 2022
    Copy the full SHA
    a26494f View commit details

Commits on Oct 2, 2022

  1. Adding tarfile member sanitization to extractall() (#2741)

    Co-authored-by: TrellixVulnTeam <kasimir.schulz@trellix.com>
    Trott and PatchTester authored Oct 2, 2022
    Copy the full SHA
    33deab4 View commit details

Commits on Oct 4, 2022

  1. chore: release 9.2.0 (#2735)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] authored Oct 4, 2022
    Copy the full SHA
    4bc4747 View commit details

Commits on Oct 8, 2022

  1. Copy the full SHA
    7d0c83d View commit details
  2. Copy the full SHA
    131d1a4 View commit details

Commits on Oct 10, 2022

  1. Copy the full SHA
    713b8dc View commit details

Commits on Oct 11, 2022

  1. chore: release 9.3.0

    github-actions[bot] authored and rvagg committed Oct 11, 2022
    Copy the full SHA
    2cc72be View commit details

Commits on Nov 14, 2022

  1. Copy the full SHA
    ee46f9d View commit details

Commits on Dec 10, 2022

  1. ci: update python test matrix (#2774)

    * ci: drop python 3.6 from test matrix
    
    * Update .github/workflows/tests.yml
    
    Co-authored-by: Christian Clauss <cclauss@me.com>
    
    Co-authored-by: Christian Clauss <cclauss@me.com>
    lukekarrys and cclauss authored Dec 10, 2022
    Copy the full SHA
    38f01fa View commit details

Commits on Dec 16, 2022

  1. Copy the full SHA
    888efb9 View commit details

Commits on Dec 19, 2022

  1. chore: release 9.3.1

    github-actions[bot] authored and rvagg committed Dec 19, 2022
    Copy the full SHA
    39ac2c1 View commit details
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ jobs:
max-parallel: 15
matrix:
node: [14.x, 16.x, 18.x]
python: ["3.6", "3.8", "3.10"]
python: ["3.7", "3.9", "3.11"]
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
# Changelog

### [9.3.1](https://www.github.com/nodejs/node-gyp/compare/v9.3.0...v9.3.1) (2022-12-16)


### Bug Fixes

* increase node 12 support to ^12.13 ([#2771](https://www.github.com/nodejs/node-gyp/issues/2771)) ([888efb9](https://www.github.com/nodejs/node-gyp/commit/888efb9055857afee6a6b54550722cf9ae3ee323))


### Miscellaneous

* update python test matrix ([#2774](https://www.github.com/nodejs/node-gyp/issues/2774)) ([38f01fa](https://www.github.com/nodejs/node-gyp/commit/38f01fa57d10fdb3db7697121d957bc2e0e96508))

## [9.3.0](https://www.github.com/nodejs/node-gyp/compare/v9.2.0...v9.3.0) (2022-10-10)


### Features

* **gyp:** update gyp to v0.14.0 ([#2749](https://www.github.com/nodejs/node-gyp/issues/2749)) ([713b8dc](https://www.github.com/nodejs/node-gyp/commit/713b8dcdbf44532ca9453a127da266386cc737f8))
* remove support for VS2015 in Node.js >=19 ([#2746](https://www.github.com/nodejs/node-gyp/issues/2746)) ([131d1a4](https://www.github.com/nodejs/node-gyp/commit/131d1a463baf034a04154bcda753a8295f112a34))
* support IBM Open XL C/C++ on z/OS ([#2743](https://www.github.com/nodejs/node-gyp/issues/2743)) ([7d0c83d](https://www.github.com/nodejs/node-gyp/commit/7d0c83d2a95aca743dff972826d0da26203acfc4))

## [9.2.0](https://www.github.com/nodejs/node-gyp/compare/v9.1.0...v9.2.0) (2022-10-02)


### Features

* Add proper support for IBM i ([a26494f](https://www.github.com/nodejs/node-gyp/commit/a26494fbb8883d9ef784503979e115dec3e2791e))
* **gyp:** update gyp to v0.13.0 ([3e2a532](https://www.github.com/nodejs/node-gyp/commit/3e2a5324f1c24f3a04bca04cf54fe23d5c4d5e50))


### Bug Fixes

* node.js debugger adds stderr (but exit code is 0) -> shouldn't throw ([#2719](https://www.github.com/nodejs/node-gyp/issues/2719)) ([c379a74](https://www.github.com/nodejs/node-gyp/commit/c379a744c65c7ab07c2c3193d9c7e8f25ae1b05e))


### Core

* enable support for zoslib on z/OS ([#2600](https://www.github.com/nodejs/node-gyp/issues/2600)) ([83c0a12](https://www.github.com/nodejs/node-gyp/commit/83c0a12bf23b4cbf3125d41f9e2d4201db76c9ae))


### Miscellaneous

* update dependency - nopt@6.0.0 ([#2707](https://www.github.com/nodejs/node-gyp/issues/2707)) ([8958ecf](https://www.github.com/nodejs/node-gyp/commit/8958ecf2bb719227bbcbf155891c3186ee219a2e))

## [9.1.0](https://www.github.com/nodejs/node-gyp/compare/v9.0.0...v9.1.0) (2022-07-13)


43 changes: 31 additions & 12 deletions addon.gypi
Original file line number Diff line number Diff line change
@@ -103,22 +103,41 @@
'-Wl,-bimport:<(node_exp_file)'
],
}],
[ 'OS=="os400"', {
'ldflags': [
'-Wl,-bimport:<(node_exp_file)'
],
}],
[ 'OS=="zos"', {
'cflags': [
'-q64',
'-Wc,DLL',
'-qlonglong',
'-qenum=int',
'-qxclang=-fexec-charset=ISO8859-1'
'conditions': [
[ '"<!(echo $CC)" != "clang" and \
"<!(echo $CC)" != "ibm-clang64" and \
"<!(echo $CC)" != "ibm-clang"', {
'cflags': [
'-q64',
'-Wc,DLL',
'-qlonglong',
'-qenum=int',
'-qxclang=-fexec-charset=ISO8859-1'
],
'ldflags': [
'-q64',
'<(node_exp_file)',
],
}, {
'cflags': [
'-m64',
],
'ldflags': [
'-m64',
'<(node_exp_file)',
],
}],
],
'defines': [
'_ALL_SOURCE=1',
'_ALL_SOURCE',
'MAP_FAILED=-1',
'_UNIX03_SOURCE=1'
],
'ldflags': [
'-q64',
'<(node_exp_file)'
'_UNIX03_SOURCE',
],
}],
[ 'OS=="win"', {
18 changes: 12 additions & 6 deletions gyp/.github/workflows/Python_tests.yml
Original file line number Diff line number Diff line change
@@ -2,7 +2,12 @@
# TODO: Enable pytest --doctest-modules

name: Python_tests
on: [push, pull_request]
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
Python_tests:
runs-on: ${{ matrix.os }}
@@ -11,17 +16,18 @@ jobs:
max-parallel: 8
matrix:
os: [macos-latest, ubuntu-latest] # , windows-latest]
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11-dev"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements_dev.txt
python -m pip install --upgrade pip setuptools
pip install --editable ".[dev]"
- run: ./gyp -V && ./gyp --version && gyp -V && gyp --version
- name: Lint with flake8
run: flake8 . --ignore=E203,W503 --max-complexity=101 --max-line-length=88 --show-source --statistics
- name: Test with pytest
21 changes: 12 additions & 9 deletions gyp/.github/workflows/node-gyp.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,33 @@
name: node-gyp integration

on: [push, pull_request]

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
test:
integration:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
python: [3.6, 3.9]
python: ["3.7", "3.10"]

runs-on: ${{ matrix.os }}
steps:
- name: Clone gyp-next
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
path: gyp-next
- name: Clone nodejs/node-gyp
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: nodejs/node-gyp
path: node-gyp
- uses: actions/setup-node@v2
- uses: actions/setup-node@v3
with:
node-version: 14.x
- uses: actions/setup-python@v2
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
13 changes: 9 additions & 4 deletions gyp/.github/workflows/nodejs-windows.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
name: Node.js Windows integration

on: [push, pull_request]
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:

jobs:
build-windows:
runs-on: windows-latest
runs-on: windows-2019
steps:
- name: Clone gyp-next
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
path: gyp-next
- name: Clone nodejs/node
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: nodejs/node
path: node
4 changes: 2 additions & 2 deletions gyp/.github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -8,9 +8,9 @@ jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: GoogleCloudPlatform/release-please-action@v2
- uses: google-github-actions/release-please-action@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
release-type: python
package-name: gyp-next
bump-minor-pre-major: Yes
bump-minor-pre-major: true
56 changes: 56 additions & 0 deletions gyp/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,61 @@
# Changelog

## [0.14.0](https://github.com/nodejs/gyp-next/compare/v0.13.0...v0.14.0) (2022-10-08)


### Features

* Add command line argument for `gyp --version` ([#164](https://github.com/nodejs/gyp-next/issues/164)) ([5c9f4d0](https://github.com/nodejs/gyp-next/commit/5c9f4d05678dd855e18ed2327219e5d18e5374db))
* ninja build for iOS ([#174](https://github.com/nodejs/gyp-next/issues/174)) ([b6f2714](https://github.com/nodejs/gyp-next/commit/b6f271424e0033d7ed54d437706695af2ba7a1bf))
* **zos:** support IBM Open XL C/C++ & PL/I compilers on z/OS ([#178](https://github.com/nodejs/gyp-next/issues/178)) ([43a7211](https://github.com/nodejs/gyp-next/commit/43a72110ae3fafb13c9625cc7a969624b27cda47))


### Bug Fixes

* lock windows env ([#163](https://github.com/nodejs/gyp-next/issues/163)) ([44bd0dd](https://github.com/nodejs/gyp-next/commit/44bd0ddc93ea0b5770a44dd326a2e4ae62c21442))
* move configuration information into pyproject.toml ([#176](https://github.com/nodejs/gyp-next/issues/176)) ([d69d8ec](https://github.com/nodejs/gyp-next/commit/d69d8ece6dbff7af4f2ea073c9fd170baf8cb7f7))
* node.js debugger adds stderr (but exit code is 0) -> shouldn't throw ([#179](https://github.com/nodejs/gyp-next/issues/179)) ([1a457d9](https://github.com/nodejs/gyp-next/commit/1a457d9ed08cfd30c9fa551bc5cf0d90fb583787))

## [0.13.0](https://www.github.com/nodejs/gyp-next/compare/v0.12.1...v0.13.0) (2022-05-11)


### Features

* add PRODUCT_DIR_ABS variable ([#151](https://www.github.com/nodejs/gyp-next/issues/151)) ([80d2626](https://www.github.com/nodejs/gyp-next/commit/80d26263581db829b61b312a7bdb5cc791df7824))


### Bug Fixes

* execvp: printf: Argument list too long ([#147](https://www.github.com/nodejs/gyp-next/issues/147)) ([c4e14f3](https://www.github.com/nodejs/gyp-next/commit/c4e14f301673fadbac3ab7882d0b5f4d02530cb9))

### [0.12.1](https://www.github.com/nodejs/gyp-next/compare/v0.12.0...v0.12.1) (2022-04-06)


### Bug Fixes

* **msvs:** avoid fixing path for arguments with "=" ([#143](https://www.github.com/nodejs/gyp-next/issues/143)) ([7e8f16e](https://www.github.com/nodejs/gyp-next/commit/7e8f16eb165e042e64bec98fa6c2a0232a42c26b))

## [0.12.0](https://www.github.com/nodejs/gyp-next/compare/v0.11.0...v0.12.0) (2022-04-04)


### Features

* support building shared libraries on z/OS ([#137](https://www.github.com/nodejs/gyp-next/issues/137)) ([293bcfa](https://www.github.com/nodejs/gyp-next/commit/293bcfa4c25c6adb743377adafc45a80fee492c6))

## [0.11.0](https://www.github.com/nodejs/gyp-next/compare/v0.10.1...v0.11.0) (2022-03-04)


### Features

* Add proper support for IBM i ([#140](https://www.github.com/nodejs/gyp-next/issues/140)) ([fdda4a3](https://www.github.com/nodejs/gyp-next/commit/fdda4a3038b8a7042ad960ce7a223687c24a21b1))

### [0.10.1](https://www.github.com/nodejs/gyp-next/compare/v0.10.0...v0.10.1) (2021-11-24)


### Bug Fixes

* **make:** only generate makefile for multiple toolsets if requested ([#133](https://www.github.com/nodejs/gyp-next/issues/133)) ([f463a77](https://www.github.com/nodejs/gyp-next/commit/f463a77705973289ea38fec1b244c922ac438e26))

## [0.10.0](https://www.github.com/nodejs/gyp-next/compare/v0.9.6...v0.10.0) (2021-08-26)


24 changes: 24 additions & 0 deletions gyp/pylib/gyp/__init__.py
Original file line number Diff line number Diff line change
@@ -15,6 +15,7 @@
import traceback
from gyp.common import GypError


# Default debug modes for GYP
debug = {}

@@ -103,6 +104,18 @@ def Load(
for (key, val) in generator.generator_default_variables.items():
default_variables.setdefault(key, val)

output_dir = params["options"].generator_output or params["options"].toplevel_dir
if default_variables["GENERATOR"] == "ninja":
default_variables.setdefault(
"PRODUCT_DIR_ABS",
os.path.join(output_dir, "out", default_variables["build_type"]),
)
else:
default_variables.setdefault(
"PRODUCT_DIR_ABS",
os.path.join(output_dir, default_variables["CONFIGURATION_NAME"]),
)

# Give the generator the opportunity to set additional variables based on
# the params it will receive in the output phase.
if getattr(generator, "CalculateVariables", None):
@@ -451,8 +464,19 @@ def gyp_main(args):
metavar="TARGET",
help="include only TARGET and its deep dependencies",
)
parser.add_argument(
"-V",
"--version",
dest="version",
action="store_true",
help="Show the version and exit.",
)

options, build_files_arg = parser.parse_args(args)
if options.version:
import pkg_resources
print(f"v{pkg_resources.get_distribution('gyp-next').version}")
return 0
build_files = build_files_arg

# Set up the configuration directory (defaults to ~/.gyp)
13 changes: 10 additions & 3 deletions gyp/pylib/gyp/common.py
Original file line number Diff line number Diff line change
@@ -454,6 +454,8 @@ def GetFlavor(params):
return "aix"
if sys.platform.startswith(("os390", "zos")):
return "zos"
if sys.platform == "os400":
return "os400"

return "linux"

@@ -463,9 +465,14 @@ def CopyTool(flavor, out_path, generator_flags={}):
to |out_path|."""
# aix and solaris just need flock emulation. mac and win use more complicated
# support scripts.
prefix = {"aix": "flock", "solaris": "flock", "mac": "mac", "win": "win"}.get(
flavor, None
)
prefix = {
"aix": "flock",
"os400": "flock",
"solaris": "flock",
"mac": "mac",
"ios": "mac",
"win": "win",
}.get(flavor, None)
if not prefix:
return

2 changes: 1 addition & 1 deletion gyp/pylib/gyp/flock_tool.py
Original file line number Diff line number Diff line change
@@ -41,7 +41,7 @@ def ExecFlock(self, lockfile, *cmd_list):
# with EBADF, that's why we use this F_SETLK
# hack instead.
fd = os.open(lockfile, os.O_WRONLY | os.O_NOCTTY | os.O_CREAT, 0o666)
if sys.platform.startswith("aix"):
if sys.platform.startswith("aix") or sys.platform == "os400":
# Python on AIX is compiled with LARGEFILE support, which changes the
# struct size.
op = struct.pack("hhIllqq", fcntl.F_WRLCK, 0, 0, 0, 0, 0, 0)
Loading