Skip to content

Commit 4dad324

Browse files
timfelansalond
authored andcommitted
[GR-67892] Prepare for the 25.0 feature freeze.
PullRequest: graalpython/3914
2 parents 4a25dcd + aadfbe4 commit 4dad324

File tree

2,492 files changed

+252129
-130020
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,492 files changed

+252129
-130020
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Weekly Downstream Tests
2+
on:
3+
schedule:
4+
- cron: '0 0 * * 1'
5+
workflow_dispatch:
6+
7+
jobs:
8+
downstream-tests:
9+
strategy:
10+
fail-fast: false
11+
matrix:
12+
name:
13+
- pybind11
14+
- virtualenv
15+
- pyo3
16+
os:
17+
- id: ubuntu-latest
18+
platform: linux
19+
arch: amd64
20+
- id: macos-latest
21+
platform: darwin
22+
arch: aarch64
23+
24+
runs-on: ${{ matrix.os.id }}
25+
26+
steps:
27+
- name: Install CMake (Linux)
28+
if: ${{ matrix.os.platform == 'linux' && matrix.name == 'pybind11' }}
29+
run: |
30+
sudo apt-get update
31+
sudo apt-get install -y cmake
32+
33+
- name: Install CMake (Darwin)
34+
if: ${{ matrix.os.platform == 'darwin' && matrix.name == 'pybind11' }}
35+
run: brew install cmake
36+
37+
- name: Install Rust toolchain
38+
if: ${{ matrix.name == 'pyo3' }}
39+
run: |
40+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
41+
echo "${HOME}/.cargo/bin" >> $GITHUB_PATH
42+
43+
- name: Checkout main repository
44+
uses: actions/checkout@v4
45+
46+
- name: Get GraalPy EA build
47+
run: |
48+
tarball="$(curl -sfL https://raw.githubusercontent.com/graalvm/graal-languages-ea-builds/refs/heads/main/graalpy/versions/latest-native-${{ matrix.os.platform }}-${{ matrix.os.arch}}.url)"
49+
curl -sfL "$tarball" | tar xz
50+
51+
- name: Run downstream tests for ${{ matrix.name }}
52+
run: python mx.graalpython/downstream_tests.py graalpy-*/bin/python ${{ matrix.name }}

.pre-commit-config.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
repos:
2+
- repo: local
3+
hooks:
4+
- id: checkcopyrights
5+
name: Copyright check
6+
language: system
7+
entry: bash scripts/pre-commit-checkcopyrights.sh
8+
types: [text]
9+
- id: eclipseformat
10+
name: Eclipse formatter
11+
language: system
12+
entry: bash scripts/pre-commit-eclipseformat.sh
13+
types: [text]
14+
files: '\.java$'
15+
- id: checkstyle
16+
name: Checkstyle
17+
language: system
18+
entry: bash scripts/pre-commit-checkstyle.sh
19+
types: [text]
20+
files: '\.java$'
21+
- id: pylint
22+
name: Pylint on mx files
23+
language: system
24+
pass_filenames: false
25+
entry: bash scripts/pre-commit-pylint.sh
26+
types: [text]
27+
files: '^mx\.graalpython/.*\.py$'
28+
- repo: https://github.com/pre-commit/pre-commit-hooks
29+
rev: v5.0.0
30+
hooks:
31+
- id: trailing-whitespace
32+
name: Trim Trailing Whitespace
33+
entry: trailing-whitespace-fixer
34+
language: python
35+
types: [text]
36+
files: '\.(java|py|md|c|h|sh)$'
37+
exclude: '^graalpython/lib-python/.*'

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,16 @@ language runtime. The main focus is on user-observable behavior of the engine.
88
* `GRAALPY_VERSION_NUM` C macro now inlcudes the release level and serial number at the end to conform to the `hexversion` format. This shouldn't break any existing comparisons.
99
* `dir(foreign_object)` now returns both foreign methods and Python methods (it used to return only foreign methods).
1010
* Support `__name__`, `__doc__`, `__text_signature__` fields on foreign executables to serve as their proper counterparts on the Python side. This is useful to, for example, use Java functional interfaces in lieu of Python functions for things like LangChain's `@tool` annotation that want to inspect the underlying function.
11-
* Remove support for running C extensions as LLVM bitcode. This also removes the related options `python.UseSystemToolchain` and `python.NativeModules`.
11+
* Remove support for running C extensions as LLVM bitcode. This also removes the related options `python.UseSystemToolchain` and `python.NativeModules`. Isolation of native code when embedding GraalPy into Java projects is now provided via the GraalVM enterprise edition polyglot isolate feature, which can launch in a separate external sub-process by setting the `--engine.IsolateMode=external` option.
1212
* Remove built-in HPy module. HPy can now be installed and used from the upstream sources.
13+
* Update Python standard library and core to 3.12.8.
14+
* Implement `faulthandler.dump_traceback_later` to better support testing frameworks that implement resilience to crashes.
15+
* Fix various issues affecting cibuildwheels on Windows, to make it easier for Python projects to provide native extensions for GraalPy on all supported platforms.
16+
* Add support for sharing Arrow arrays and tables between Java, PyArrow, and Pandas to avoid data copying when embedding those libraries into a Java project.
17+
* Enable FTS3, FTS4, FTS5, RTREE, and math function features in the bundled sqlite3 library.
18+
* Add support patches for Torch 2.7.0, PyGObject 3.52.3, xmlschema 4.0.0, lxml < 5.4.0, SciPy 1.15, jq 1.8.0, NumPy < 2.3, ormsgpack < 1.9.1, pandas 2.2.3, PyArrow 19.0, PyMuPDF 1.25.4.
19+
* The GraalPy Native standalone on Linux now uses the G1 garbage collector which is much faster.
20+
* Speedup native extensions by using the Panama NFI backend for faster native calls, available on GraalVM 25, JDK 25 and in the GraalPy JVM standalone.
1321

1422
## Version 24.2.0
1523
* Updated developer metadata of Maven artifacts.

0 commit comments

Comments
 (0)