Skip to content

Commit 7e65249

Browse files
author
Release Manager
committed
sagemathgh-36640: Use GNU make tokenpool protocol to manage parallelism of doctesting <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes sagemath#1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> This is useful when running our doctester in parallel with other build steps, or several doctesters in parallel, as happens for example in `make SAGE_CHECK=yes pypi-wheels`, and more of that after sagemath#35095. To test: ``` MAKE="make -j14" make SAGE_NUM_THREADS=100 DEBUG_JOBCLIENT=1 ptest ``` This will make the doctester attempt to use 100 workers, but it will only get tokens for 14 workers from `make`. `DEBUG_JOBCLIENT=1` shows what's happening. Upstream PR: - milahu/gnumake-tokenpool#3 (merged) <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes sagemath#12345". --> - Resolves sagemath#30369 <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - sagemath#12345: short description why this is a dependency - sagemath#34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: sagemath#36640 Reported by: Matthias Köppe Reviewer(s): Michael Orlitzky
2 parents ab24b1c + 1dc6d36 commit 7e65249

File tree

15 files changed

+73
-9
lines changed

15 files changed

+73
-9
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
gnumake_tokenpool: Jobclient and jobserver for the GNU make tokenpool protocol
2+
==============================================================================
3+
4+
Description
5+
-----------
6+
7+
The project has implementations in multiple languages.
8+
9+
We only install the implementation in Python.
10+
11+
12+
License
13+
-------
14+
15+
MIT
16+
17+
18+
Upstream Contact
19+
----------------
20+
21+
- https://github.com/milahu/gnumake-tokenpool (upstream)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
tarball=gnumake_tokenpool-VERSION-py3-none-any.whl
2+
sha1=a060f03e0306a85bc1a91a450e457be83ed371e9
3+
md5=834ccc4d6d52741c5eabac1bdb8f39b2
4+
cksum=1679797266
5+
upstream_url=https://pypi.io/packages/py3/g/gnumake_tokenpool/gnumake_tokenpool-VERSION-py3-none-any.whl
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
| $(PYTHON) $(PYTHON_TOOLCHAIN)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
gnumake-tokenpool
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0.0.3

build/pkgs/gnumake_tokenpool/type

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
standard

pkgs/sagemath-categories/tox.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ passenv =
2626
# Parallel build
2727
SAGE_NUM_THREADS
2828
SAGE_NUM_THREADS_PARALLEL
29+
MAKEFLAGS
2930
# SAGE_VENV only for referring to the basepython or finding the wheels
3031
sagepython, sagewheels: SAGE_VENV
3132
# Location of the wheels

pkgs/sagemath-environment/tox.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ passenv =
2626
# Parallel build
2727
SAGE_NUM_THREADS
2828
SAGE_NUM_THREADS_PARALLEL
29+
MAKEFLAGS
2930
# SAGE_VENV only for referring to the basepython or finding the wheels
3031
sagepython, sagewheels: SAGE_VENV
3132
# Location of the wheels

pkgs/sagemath-objects/tox.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ passenv =
2626
# Parallel build
2727
SAGE_NUM_THREADS
2828
SAGE_NUM_THREADS_PARALLEL
29+
MAKEFLAGS
2930
# SAGE_VENV only for referring to the basepython or finding the wheels
3031
sagepython, sagewheels: SAGE_VENV
3132
# Location of the wheels

pkgs/sagemath-repl/tox.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ passenv =
2626
# Parallel build
2727
SAGE_NUM_THREADS
2828
SAGE_NUM_THREADS_PARALLEL
29+
MAKEFLAGS
2930
# SAGE_VENV only for referring to the basepython or finding the wheels
3031
sagepython, sagewheels: SAGE_VENV
3132
# Location of the wheels

0 commit comments

Comments
 (0)