Skip to content

Add AGENTS.md and issue templates - #2402

Open
ndgrigorian wants to merge 2 commits into
masterfrom
agentify-dpctl
Open

ndgrigorian wants to merge 2 commits into
masterfrom
agentify-dpctl

Conversation

@ndgrigorian

Copy link
Copy Markdown
Collaborator

Flagged by agent readiness checking tools

  • Have you provided a meaningful PR description?
  • Have you added a test, reproducer or referred to an issue with a reproducer?
  • Have you tested your changes locally for CPU and GPU devices?
  • Have you made sure that new changes do not introduce compiler warnings?
  • Have you checked performance impact of proposed changes?
  • Have you added documentation for your changes, if necessary?
  • Have you added your changes to the changelog?
  • If this PR is a work in progress, are you opening the PR as a draft?

@ndgrigorian

Copy link
Copy Markdown
Collaborator Author

@jharlow-intel
Take a look if you have thoughts

@ndgrigorian ndgrigorian mentioned this pull request Oct 26, 2026
2 tasks done
@github-actions

Copy link
Copy Markdown

@coveralls

coveralls commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Coverage Status

coverage: 74.989%. remained the same — agentify-dpctl into master

@jharlow-intel jharlow-intel 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. Running this through our agent-readiness scanners and checking the documented commands turned up a few changes that are probably needed.

Comment thread AGENTS.md Resolved
Comment thread AGENTS.md Resolved
Comment thread .gitignore Resolved
Comment thread AGENTS.md Resolved
Flagged by agent readiness checking tools
@ndgrigorian

Copy link
Copy Markdown
Collaborator Author

@antonwolfy @vlad-perevezentsev take a look when you have a chance

@antonwolfy antonwolfy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for adding this. I checked the commands, paths and conventions in AGENTS.md against the tree and left suggestions where they're wrong or could mislead an agent. The main ones are dpctl/_version.py listed as generated, the network access the first build needs, and the test and CHANGELOG guidance. The issue forms validate against GitHub's schema, so the comments there are minor.

Comment thread AGENTS.md
`source /opt/intel/oneapi/setvars.sh && python -m pytest dpctl/tests/...`.
- Check visible devices: `sycl-ls`. Tests skip on missing devices/aspects; a CPU
OpenCL device is enough for most of the suite.
- Python build deps: `pip install numpy cython scikit-build cmake ninja pytest "versioneer[toml]==0.29"`.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

setuptools isn't listed, but build_locally.py runs setup.py build_ext and pip install -e . --no-build-isolation, and a fresh venv on Python 3.12+ doesn't have it. pybind11 is worth adding too, since otherwise CMake downloads it (FetchContent in the top-level CMakeLists.txt):

Suggested change
- Python build deps: `pip install numpy cython scikit-build cmake ninja pytest "versioneer[toml]==0.29"`.
- Python build deps: `pip install numpy cython scikit-build cmake ninja setuptools pybind11 pytest "versioneer[toml]==0.29"`.

Comment thread AGENTS.md
## Commands

- Build in place + editable install: `python scripts/build_locally.py --verbose`
- defaults to `icx`/`icpx` on `PATH`; other compilers need `--compiler-root`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It seems --compiler-root is only required when --c-compiler/--cxx-compiler aren't absolute paths (resolve_compilers in scripts/_build_helper.py), and it's joined with the compiler name, so it has to be the directory with the binaries (CI passes .../dpcpp_compiler/bin in os-llvm-sycl-build.yml):

Suggested change
- defaults to `icx`/`icpx` on `PATH`; other compilers need `--compiler-root`
- defaults to `icx`/`icpx` on `PATH`; for other compilers pass absolute
`--c-compiler`/`--cxx-compiler` paths, or names plus `--compiler-root=<bin dir>`

Comment thread AGENTS.md
- Build in place + editable install: `python scripts/build_locally.py --verbose`
- defaults to `icx`/`icpx` on `PATH`; other compilers need `--compiler-root`
- `--debug`, `--clean`, `--target-cuda[=sm_XX]`, `--target-hip=<arch>`,
`--cmake-opts="-D..."`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Should we mention that the first configure needs network access? Level Zero is on by default and GetLevelZeroHeaders.cmake does a git clone of its headers, and pybind11 is downloaded when it isn't installed. In a sandbox this ends in a fairly confusing CMake error.

Suggested change
`--cmake-opts="-D..."`
`--cmake-opts="-D..."`
- the first configure clones the Level Zero headers and downloads pybind11;
offline, pass `--no-level-zero` (or
`--cmake-opts="-DDPCTL_LEVEL_ZERO_INCLUDE_DIR=<dir>"`) and install `pybind11`

Comment thread AGENTS.md
- one file: `python -m pytest dpctl/tests/test_sycl_queue.py`
- one test: `python -m pytest dpctl/tests/test_sycl_queue_memset.py::test_memset_partial_count`
- without a C compiler/Cython: add `-k "not test_cython_api and not test_c_headers"`
- C API tests (GoogleTest, needs `GTEST_ROOT`): `(cd libsyclinterface && bash dbg_build.sh)`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nit: libsyclinterface/tests/CMakeLists.txt just does find_package(GTest REQUIRED), so a system GoogleTest works as well and GTEST_ROOT is only one way to point at it. The script is also Linux only:

Suggested change
- C API tests (GoogleTest, needs `GTEST_ROOT`): `(cd libsyclinterface && bash dbg_build.sh)`
- C API tests (Linux; GoogleTest must be findable by CMake, e.g. via `GTEST_ROOT`): `(cd libsyclinterface && bash dbg_build.sh)`

Comment thread AGENTS.md
Comment on lines +27 to +28
- Coverage (C + Python, rebuilds with `-DDPCTL_BUILD_CAPI_TESTS=ON`):
`python scripts/gen_coverage.py --oneapi`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

--oneapi is already the default (CI runs plain python scripts/gen_coverage.py --verbose). Maybe also say that it runs the whole pytest suite at the end and leaves the in-place build instrumented (build_ext --inplace with the Coverage build type)?

Suggested change
- Coverage (C + Python, rebuilds with `-DDPCTL_BUILD_CAPI_TESTS=ON`):
`python scripts/gen_coverage.py --oneapi`
- Coverage (Linux; C + Python, rebuilds in place with `-DDPCTL_BUILD_CAPI_TESTS=ON`,
then runs the full pytest suite unless `--skip-pytest`): `python scripts/gen_coverage.py`,
then `python scripts/build_locally.py --clean` for a normal build

id: devices
attributes:
label: Devices
description: Output of `python -m dpctl -f`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Same here:

Suggested change
description: Output of `python -m dpctl -f`
description: Output of `python -m dpctl -f` (or `sycl-ls` if dpctl fails to import)

id: environment
attributes:
label: Environment
description: OS, Python version (and whether free-threaded), how dpctl was installed (conda/pip/source), DPC++ compiler version if built from source.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

python -m dpctl -f shows the driver versions but not the DPC++ runtime version, which often matters for dpctl issues. Should we ask for it?

Suggested change
description: OS, Python version (and whether free-threaded), how dpctl was installed (conda/pip/source), DPC++ compiler version if built from source.
description: OS, Python version (and whether free-threaded), how dpctl was installed (conda/pip/source), DPC++ runtime version (`intel-sycl-rt` in `conda list`/`pip list`), DPC++ compiler version if built from source.

- type: textarea
id: alternatives
attributes:
label: Alternatives considered

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nit: the last field has no description:

Suggested change
label: Alternatives considered
label: Alternatives considered
description: Optional. Workarounds you use today, or other designs you considered.

blank_issues_enabled: true
contact_links:
- name: Questions and discussions
url: https://github.com/IntelPython/dpctl/discussions

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nit: maybe link straight to the Q&A category?

Suggested change
url: https://github.com/IntelPython/dpctl/discussions
url: https://github.com/IntelPython/dpctl/discussions/categories/q-a

Comment thread .gitignore
.venv/
venv/
.pytest_cache/
.env

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nit: .env.local and similar variants aren't covered:

Suggested change
.env
.env
.env.*

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants