Skip to content

gh-146197: Run -m test.pythoninfo on the Emscripten CI - #146332

Merged
vstinner merged 3 commits into
python:mainfrom
vstinner:emscripten_pythoninfo
Mar 23, 2026
Merged

gh-146197: Run -m test.pythoninfo on the Emscripten CI#146332
vstinner merged 3 commits into
python:mainfrom
vstinner:emscripten_pythoninfo

Conversation

@vstinner

@vstinnervstinner commented Mar 23, 2026

Copy link
Copy Markdown
Member

@hoodmanehoodmane left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @vstinner. Do you want to add this to the buildbot as well?

Comment threadPlatforms/emscripten/__main__.py Outdated
Comment threadPlatforms/emscripten/__main__.py Outdated
@vstinner

Copy link
Copy Markdown
MemberAuthor

This change adds "Display build info" to the CI. Examples from this CI run on this PR:

  • platform.platform: Emscripten-4.0.12
  • sys._emscripten_info: Node.js/24

I'm surprised that sys._emscripten_info only logs Node.js major version. The code uses info = "Node.js ".concat(process.version); in Python/sysmodule.c, so I expected "Node.js xxx", but we get "Node.js/xxx", where does "/" come from? :-)

Log examples:

os.cpu_count: 1
os.environ[GITHUB_ACTIONS]: true
os.uname: posix.uname_result(sysname='Emscripten', nodename='emscripten', release='4.0.12', version='#1', machine='wasm32')
platform.freedesktop_os_release[NAME]: Ubuntu
platform.freedesktop_os_release[VERSION]: 24.04.3 LTS (Noble Numbat)
platform.libc_ver: emscripten 4.0.12
platform.platform: Emscripten-4.0.12-wasm32-32bit
support.has_fork_support: False
support.has_socket_support: False
support.has_subprocess_support: False
support.is_emscripten: True
support.is_wasi: False
support.is_wasm32: True
sys._emscripten_info: sys._emscripten_info(emscripten_version=(4, 0, 12), runtime='Node.js/24', pthreads=False, shared_memory=False)
sys.executable: /home/runner/work/cpython/cpython/cross-build/wasm32-emscripten/build/python/python.sh
sys.filesystem_encoding: utf-8/surrogateescape
sys.maxsize: 2147483647
sys.version: 3.15.0a7+ (remotes/pull/146332/merge-dirty:39b0363, Mar 23 2026, 16:44:40) [Clang 22.0.0git (https:/github.com/llvm/llvm-project 7f93487862d98bf1c168babba8
sysconfig[MULTIARCH]: wasm32-emscripten
sysconfig[SOABI]: cpython-315-wasm32-emscripten

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
@vstinner

Copy link
Copy Markdown
MemberAuthor

Thanks @vstinner. Do you want to add this to the buildbot as well?

Yes, I would like to add this step to the buildbot as well. I will backport this change to 3.14, and then add a --pythoninfo step to the buildbot.

@vstinner
vstinner enabled auto-merge (squash) March 23, 2026 17:08
@hoodmane

Copy link
Copy Markdown
Contributor

The code uses info = "Node.js ".concat(process.version); in Python/sysmodule.c, so I expected "Node.js xxx", but we get "Node.js/xxx", where does "/" come from? :-)

The other branch:

$ node -e 'console.log(navigator.userAgent)'Node.js/24

@hoodmane

Copy link
Copy Markdown
Contributor

I'll make a separate PR improving this.

@vstinner
vstinner merged commit a57209e into python:mainMar 23, 2026
27 checks passed
@vstinner
vstinner deleted the emscripten_pythoninfo branch March 23, 2026 17:23
@miss-islington-app

Copy link
Copy Markdown

Thanks @vstinner for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14.
🐍🍒⛏🤖

@miss-islington-app

Copy link
Copy Markdown

Sorry, @vstinner, I could not cleanly backport this to 3.14 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker a57209eb98943f4d8edbf56a55e98ec112e00e39 3.14

@vstinner

Copy link
Copy Markdown
MemberAuthor

The other branch:

Oh ok, thanks :-)

$ node -e 'console.log(navigator.userAgent)'
Node.js/24

Is there a way to get the full Node.js version? A version string like v22.22.0.

I'll make a separate PR improving this.

Improving sys._emscripten_info? Nice!

vstinner added a commit to vstinner/cpython that referenced this pull request Mar 23, 2026
…146332)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
(cherry picked from commit a57209e)
@bedevere-app

Copy link
Copy Markdown

GH-146336 is a backport of this pull request to the 3.14 branch.

@bedevere-appbedevere-appBot removed the needs backport to 3.14 bugs and security fixes label Mar 23, 2026
@vstinner

Copy link
Copy Markdown
MemberAuthor

I merged my PR. Thanks for your fast reviews!

vstinner added a commit that referenced this pull request Mar 23, 2026
… (#146336)
gh-146197: Run -m test.pythoninfo on the Emscripten CI (#146332)
(cherry picked from commit a57209e)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
CuriousLearner added a commit to CuriousLearner/cpython that referenced this pull request Mar 23, 2026
…8577
* 'main' of github.com:python/cpython:
pythongh-146197: Run -m test.pythoninfo on the Emscripten CI (python#146332)
pythongh-146325: Use `test.support.requires_fork` in test_fastpath_cache_cleared_in_forked_child (python#146330)
pythongh-146197: Add Emscripten to CI (python#146198)
pythongh-143387: Raise an exception instead of returning None when metadata file is missing. (python#146234)
pythongh-108907: ctypes: Document _type_ codes (pythonGH-145837)
pythongh-146175: Soft-deprecate outdated macros; convert internal usage (pythonGH-146178)
pythongh-146056: Rework ref counting in treebuilder_handle_end() (python#146167)
Add a warning about untrusted input to `configparser` docs (python#146276)
pythongh-145264: Do not ignore excess Base64 data after the first padded quad (pythonGH-145267)
pythongh-146308: Fix error handling issues in _remote_debugging module (python#146309)
pythongh-146192: Add base32 support to binascii (pythonGH-146193)
pythongh-135953: Properly obtain main thread identifier in Gecko Collector (python#146045)
pythongh-143414: Implement unique reference tracking for JIT, optimize unpacking of such tuples (pythonGH-144300)
pythongh-146261: Fix bug in `_Py_uop_sym_set_func_version` (pythonGH-146291)
pythongh-145144: Add more tests for UserList, UserDict, etc (pythonGH-145145)
pythongh-143959: Fix test_datetime if _datetime is unavailable (pythonGH-145248)
pythongh-146245: Fix reference and buffer leaks via audit hook in socket module (pythonGH-146248)
pythongh-140049: Colorize exception notes in `traceback.py` (python#140051)
Update docs for pythongh-146056 (pythonGH-146213)
@vstinner

Copy link
Copy Markdown
MemberAuthor

Here is the PR to run pythoninfo on buildbots: python/buildmaster-config#690.

ljfp pushed a commit to ljfp/cpython that referenced this pull request Apr 25, 2026
…146332)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vstinner@hoodmane@hugovk