Commit graph

16 commits

Author SHA1 Message Date
Hüseyin Açacak
c4729129da
lib: print Python executable path using UTF-8 (#2995)
* lib: print Python executable path using UTF-8

The Python executable path may have non-ASCII characters, which can make
the print function fail if the environment encoding is different. This fixes
this issue by using stdout.buffer, which can be used with UTF-8 encoding
for the output, regardless of the environment encoding.

Fixes: https://github.com/nodejs/node-gyp/issues/2829

* fixup! lib: print Python executable path using UTF-8
2024-03-13 09:20:35 -07:00
Luke Karrys
d52997e975 feat: convert internal classes from util.inherits to classes
BREAKING CHANGE: the `Gyp` class exported is now created using
ECMAScript classes and therefore might have small differences to classes
that were previously created with `util.inherits`.
2023-10-28 09:29:04 -07:00
Luke Karrys
355622f4aa feat: convert all internal functions to async/await
BREAKING CHANGE: All internal functions have been coverted to return
promises and no longer accept callbacks. This is not a breaking change
for users but may be breaking to consumers of `node-gyp` if you are
requiring internal functions directly.
2023-10-28 08:59:57 -07:00
Stefan Stojanovic
b030555cdb
lib: find python checks order changed on windows (#2872)
These changes favor py launcher over other checks excluding command line
or npm configuration and environment variable checks.

Also, updated supported python versions list.

Fixes: https://github.com/nodejs/node-gyp/issues/2871
2023-06-22 12:13:50 +02:00
Luke Karrys
192eec2aca
Sync deps and engines with npm (#2770)
* feat!: update `engines.node` to `^14.17.0 || ^16.13.0 || >=18.0.0`

* deps: nopt@^7.0.0

* feat: replace npmlog with proc-log

* deps: standard@17.0.0 and fix linting errors

* deps: which@3.0.0
- this also promiisifies the build command

* deps: glob@8.0.3

* feat: drop rimraf dependency

* fix: use fs/promises in favor of fs.promises
2023-06-20 15:44:18 +02:00
Livia Rett
5cde818aac
fix: add error arg back into catch block for older Node.js users 2021-06-22 12:21:55 +10:00
DeeDeeG
fca4795512
lib: fail gracefully if we can't find the username (#2375) 2021-05-19 15:28:36 +08:00
DeeDeeG
1bd18f3e77
lib: drop Python 2 support in find-python.js (#2333)
Co-authored-by: Christian Clauss <cclauss@me.com>

PR-URL: https://github.com/nodejs/node-gyp/pull/2333
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
2021-03-26 19:57:06 +08:00
DeeDeeG
c255ffbf6a
lib: drop "-2" flag for "py.exe" launcher
Now that node-gyp supports both Python 2 and Python 3,
We don't need to explicitly try to find only Python 2.

Fixes: https://github.com/nodejs/node-gyp/issues/2130
Refs: https://docs.python.org/3/using/windows.html#launcher
PR-URL: https://github.com/nodejs/node-gyp/pull/2131
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2020-05-18 11:08:46 +10:00
Xavier Guimard
f242ce4d2c
lib: compatibility with semver ≥ 7 (new for semver.Range)
Fixes: #2005
Reviewed-By: Rod Vagg <rod@vagg.org>
PR-URL: https://github.com/nodejs/node-gyp/pull/2006
2020-01-06 14:23:01 +11:00
Sam Roberts
dd0e97ef0b
lib: try to find python after python3
Unadorned `python` can be either Python 2 or Python 3, but it is likely
to be Python 2 for quite a while.

To find Python3, it is recommended to use the explicit name `python3`.

See:
- https://www.python.org/dev/peps/pep-0394/#for-python-runtime-distributors
- https://github.com/nodejs/node-gyp/pull/1892#issuecomment-537637433

PR-URL: https://github.com/nodejs/node-gyp/pull/1907
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: João Reis <reis@janeasystems.com>
2019-10-04 13:25:04 +10:00
Rod Vagg
ab2a4cc209
src: update to standard@14
PR-URL: https://github.com/nodejs/node-gyp/pull/1899
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2019-10-02 13:57:30 +10:00
João Reis
3d1c60ab81 lib: accept Python 3 by default
PR-URL: https://github.com/nodejs/node-gyp/pull/1844
Reviewed-By: Christian Clauss <cclauss@me.com>
2019-09-30 07:55:48 +01:00
cclauss
c6e3b65a23
lib: raise the minimum Python version from 2.6 to 2.7
As discussed in #1811

PR-URL: https://github.com/nodejs/node-gyp/pull/1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
2019-07-17 14:31:23 +10:00
João Reis
66ad305775 python: accept Python 3 conditionally
This allows us to start testing Python 3 without breaking node-gyp
for users.

This also adds support for NODE_GYP_FORCE_PYTHON, which will be the
only Python binary acceptable when defined.

PR-URL: https://github.com/nodejs/node-gyp/pull/1815
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2019-07-11 05:13:59 +01:00
João Reis
7e7fce3fed python: move Python detection to its own file
PR-URL: https://github.com/nodejs/node-gyp/pull/1815
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2019-07-11 05:13:59 +01:00