Repository navigation
task: agent ready prep - #280
jharlow-intel wants to merge 9 commits into
Conversation
c80b57b to
823e526
Compare
- CONTRIBUTING.md: use --override-channels, install pre-commit with the pylint and shellcheck its system hooks need, note Windows support and the meson.build GCC/MSVC branches, and match the CHANGELOG link format - AGENTS.md: restore supported platforms, add the meson.build guardrail, and note that checkout tests need the editable install - conda-recipe-cf/AGENTS.md: gnu_thread is Linux-only, llvm-openmp has no run pin, and each recipe has its own conda_build_config.yaml - mkl_umath/src/AGENTS.md: scope the patch lock claim and note per-thread patch/restore balance - .github/AGENTS.md: list the templates and repo config files
napetrov
left a comment
There was a problem hiding this comment.
I checked the docs at 3f8573f against the tree and by running them.
- I ran the
CONTRIBUTING.mdsetup verbatim in a cleancondaforge/miniforge3container. Creating the env, the editable install,pytest mkl_umath/tests(392 passed, 1 skipped) andpre-commit run --all-filesall pass. A control build without-Dmkl_threading=gnu_threadfails at import withlibmkl_intel_thread.so.3: undefined symbol: __atomic_compare_exchange, so thegnu_threadnote is right. - I also ran a static check of the paths, commands and identifiers the guidance names. At head it finds no broken references. At base it found the stale
mkl_randommentions and thesrc/__umath_generated.cpath, which this PR fixes. - I checked loading with Claude Code 2.1.296. The root
AGENTS.mdloads from every directory, and each nested one loads once the agent works in its subtree..github/copilot-instructions.mdis never loaded; more on that inline.
A few remaining points are inline. None of them block the PR.
| On Linux: | ||
|
|
||
| ```sh | ||
| conda create -n mkl_umath-dev --override-channels -c conda-forge python pip \ |
There was a problem hiding this comment.
python is unpinned here. conda-forge already has Python 3.15.0, while pyproject.toml has requires-python = ">=3.10,<3.15". Today the solve picks 3.14.8 (checked), likely because not every dependency has a 3.15 build yet. Once they all do, this line creates a 3.15 env and the editable install fails on requires-python. I suggest "python<3.15", or a specific python=3.14.
There was a problem hiding this comment.
No change here: after merging main (#279), pyproject.toml has requires-python = ">=3.10,<3.16", so a Python 3.15 solve installs fine. I left python unpinned so the command does not go stale on the next release.
# Conflicts: # AGENTS.md # conda-recipe/AGENTS.md # mkl_umath/tests/AGENTS.md
| - `benchmarks/micro/` — per-ufunc micro-benchmarks | ||
| - `benchmarks/npbench/` — end-to-end kernels adapted from npbench | ||
| - `benchmarks/_patch_setup.py` — patches NumPy at import |
There was a problem hiding this comment.
That lists benchmarks/micro/, benchmarks/npbench/ and benchmarks/_patch_setup.py. The real paths are one level deeper, under benchmarks/benchmarks/; the same goes for __init__.py in the thread-default guardrail.
There was a problem hiding this comment.
These are relative to benchmarks/, like asv.conf.json and .asv/, so benchmarks/micro/ is benchmarks/benchmarks/micro/ from the root. That was easy to misread, so 4aed2ad says so at the top of the file.
| - `patch.py`, `_patch_startup.py`, `with_patch.py`, `__main__.py` — persistent | ||
| (`.pth`) and one-shot patching behind `python -m mkl_umath` | ||
| - `_version.py` — the version; `meson.build` reads it | ||
| - `generate_umath_doc.py`, `ufunc_docstrings_numpy{1,2}.py` — docstring sources |
There was a problem hiding this comment.
The NumPy 1 file was removed
| - Runtime deps: `numpy`; the conda recipes add the MKL and compiler runtimes | ||
| - Platforms: Linux and Windows; `.github/workflows/` is canonical for the matrix | ||
| - Setup, checks, and style: `CONTRIBUTING.md` | ||
| - Single test: `pytest mkl_umath/tests/<file>::<test>`, from a checkout with the |
There was a problem hiding this comment.
It should be written as <file>.py::<test>, because pytest can't find the file without the extension
| ## Setup | ||
|
|
||
| On Linux: | ||
|
|
There was a problem hiding this comment.
The pre-commit config also runs gitleaks and actionlint, which pre-commit builds from source and so need Go and network access. The pylint hook also needs the dev environment active. CONTRIBUTING mentions none of this.
There was a problem hiding this comment.
Added in 4aed2ad. Go does not need to be installed: pre-commit downloads a Go toolchain for these hooks when there is none on PATH, so the first run needs network access. The note also says to activate the env for the pylint and shellcheck hooks.
# Conflicts: # conda-recipe-cf/AGENTS.md # conda-recipe/AGENTS.md
Very similar to IntelPython/mkl_fft#379: adds contributor and coding-agent guidance (
CONTRIBUTING.md,AGENTS.md), PR and issue templates, and a README pointer, checked against this repo's build and CI. It also corrects the existingAGENTS.mdfiles.