Skip to content

Commit c053bda

Browse files
authored
Merge branch 'main' into precompile-first-call
2 parents b2a2ebf + 992758d commit c053bda

17 files changed

Lines changed: 50 additions & 29 deletions

File tree

‎.github/workflows/register-pypi.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Set up Python
1818
uses: actions/setup-python@v7
1919
with:
20-
python-version: "3.10"
20+
python-version: "3.11"
2121
- name: Install build
2222
run: >-
2323
python -m

‎.github/workflows/tests.yml‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,17 @@ jobs:
4141

4242
- uses: julia-actions/cache@v3
4343

44+
# The package cache includes Conda's build configuration, but not its root environment.
45+
- name: Rebuild Conda configuration
46+
shell: julia --color=yes {0}
47+
env:
48+
JULIA_PKG_PRECOMPILE_AUTO: '0'
49+
run: |
50+
using Pkg
51+
Pkg.activate(; temp=true)
52+
Pkg.add("Conda")
53+
Pkg.build("Conda")
54+
4455
- name: Build package
4556
uses: julia-actions/julia-buildpkg@v1
4657
env:
@@ -83,7 +94,7 @@ jobs:
8394
fail-fast: false
8495
matrix:
8596
os: [ubuntu-latest, windows-latest, macos-latest]
86-
pyversion: ['3', '3.10']
97+
pyversion: ['3', '3.11']
8798
juliaexe: ["@JuliaPkg"]
8899
include:
89100
- os: ubuntu-latest

‎AGENTS.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,10 @@
99

1010
The majority of tests live in the Julia package; Python tests cover functionality that cannot be exercised from Julia (e.g., JuliaCall-specific behavior). Run both suites—typically Julia first—in whichever order makes sense.
1111

12+
- In restricted sandboxes, both suites need approval to write to the shared caches (`~/.julia` and `~/.cache/uv`).
13+
- `pysrc/juliacall/juliapkg.json` is tracked; restore its original contents after using the development copy for Python tests.
14+
1215
## Meta instructions
16+
- When testing an older Julia version, a local manifest generated by newer Julia can fail on stdlib dependencies. Use a temporary environment with `Pkg.develop(path=pwd()); Pkg.test("PythonCall")` to resolve dependencies for that Julia version.
17+
- CI caches Conda.jl build configuration without its root environment. Rebuild Conda after cache restore before PyCall is built; otherwise Julia 1.10 can fail before tests with "Path to conda environment is not valid".
1318
- When you discover environment quirks, false assumptions, process fixes, or any other generally useful info, update this AGENTS.md so future coding agents have the information.

‎CHANGELOG.md‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# Changelog
22

33
## Unreleased
4-
* The first call from Python in a new JuliaCall session no longer compiles
5-
`jl.<name>` lookup on a module or `jl.seval`, saving about a second.
4+
* Improved TTFX in JuliaCall.
5+
* Minimum supported Python version is now 3.11.
6+
7+
## 0.9.37 (2026-10-12)
8+
* Compatibility fix with Python 3.15 from conda-forge, which no longer bundles libpython.
69
* Bug fixes.
710

811
## 0.9.36 (2026-09-18)

‎CondaPkg.toml‎

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
[deps]
2-
conda = "=26.7.2"
1+
[deps.openssl]
2+
version = "<=julia"
33

4-
[deps.openssl]
5-
version = "<=julia"
4+
[deps.libstdcxx]
5+
version = "<=julia"
66

7-
[deps.libstdcxx]
8-
version = "<=julia"
7+
[deps.libstdcxx-ng]
8+
version = "<=julia"
99

10-
[deps.libstdcxx-ng]
11-
version = "<=julia"
10+
[deps.python]
11+
build = "**cpython**"
12+
version = ">=3.11,!=3.14.0,!=3.14.1,<4"
1213

13-
[deps.python]
14-
build = "**cpython**"
15-
version = ">=3.10,!=3.14.0,!=3.14.1,<4"
14+
[deps.libpython]
15+
build = "**bundled-or-separate**"
16+
channel = "conda-forge"
1617

1718
[dev.deps]
1819
numpy = ""

‎Project.toml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "PythonCall"
22
uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
33
authors = ["Christopher Doris <github.com/cjdoris>"]
4-
version = "0.9.36"
4+
version = "0.9.37"
55

66
[deps]
77
CondaPkg = "992eb4ea-22a4-4c89-a5bb-47a3300528ab"
@@ -16,7 +16,7 @@ UnsafePointers = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39"
1616

1717
[compat]
1818
CategoricalArrays = "0.10, 1"
19-
CondaPkg = "0.2.33"
19+
CondaPkg = "0.2.38"
2020
Dates = "1"
2121
Libdl = "1"
2222
MacroTools = "0.5"

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Bringing [**Python®**](https://www.python.org/) and [**Julia**](https://juliala
1414
- Fast non-copying conversion of numeric arrays in either direction: modify Python arrays (e.g. `bytes`, `array.array`, `numpy.ndarray`) from Julia or Julia arrays from Python.
1515
- Helpful wrappers: interpret Python sequences, dictionaries, arrays, dataframes and IO streams as their Julia counterparts, and vice versa.
1616
- Beautiful stack-traces.
17-
- Supports modern systems: tested on Windows, MacOS and Linux; 64-bit; Julia 1.10 upwards and Python 3.10 upwards.
17+
- Supports modern systems: tested on Windows, MacOS and Linux; 64-bit; Julia 1.10 upwards and Python 3.11 upwards.
1818

1919
⭐ If you like this, a GitHub star would be lovely thank you. ⭐
2020

‎benchmark/Project.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
[deps]
22
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
3+
PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"

‎docs/src/faq.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ np = pyimport("numpy")
112112
## What versions of Python and Julia do you support?
113113

114114
Each release of PythonCall and JuliaCall will support and require:
115-
- Any currently supported version of Python, [see here](https://devguide.python.org/versions/). Currently 3.10+.
115+
- Any currently supported version of Python, [see here](https://devguide.python.org/versions/). Currently 3.11+.
116116
- The current Julia LTS version and newer, [see here](https://julialang.org/downloads/#long_term_support_release). Currently 1.10+.
117117

118118
Only the latest patch release within each minor version is supported.

‎docs/src/index.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ Bringing [**Python®**](https://www.python.org/) and [**Julia**](https://juliala
77
- Fast non-copying conversion of numeric arrays in either direction: modify Python arrays (e.g. `bytes`, `array.array`, `numpy.ndarray`) from Julia or Julia arrays from Python.
88
- Helpful wrappers: interpret Python sequences, dictionaries, arrays, dataframes and IO streams as their Julia counterparts, and vice versa.
99
- Beautiful stack-traces.
10-
- Works anywhere: tested on Windows, MacOS and Linux; 64-bit; Julia 1.10 upwards and Python 3.10 upwards.
10+
- Works anywhere: tested on Windows, MacOS and Linux; 64-bit; Julia 1.10 upwards and Python 3.11 upwards.

0 commit comments

Comments
 (0)