This repository contains the GPUEnv Julia package.
- Keep the package focused on GPU test-environment management.
- Prefer Pkg-based solutions over custom file rewriting when Pkg can do the job.
- Default to JLArrays, but keep the public API flexible enough to skip it.
- Treat backend prediction and backend verification as separate steps.
- Keep
sync_test_envfocused on synchronization; letactivatebe the function that changes the active environment. - The
pathkwarg always points to the exact directory containingProject.tomlto overlay (no auto-appending oftest/). - Preserve the persisted-environment warning when a project-local GPU env is not gitignored, unless the caller disables it explicitly.
- Keep tests deterministic and light; do not require real GPU hardware for the default test suite.
- Write or update docstrings for exported functions when behavior changes.
- Update README and docs together with code changes.
src/GPUEnv.jlcontains the module declaration, exports, andincludecalls.src/backends.jldefines backend types (BackendSpec,GpuBackend,SyncResult), constants (BACKEND_SPECS,NATIVE_BACKENDS), and all backend query/helper functions.src/project.jlcontains pure TOML/project-data manipulation helpers (_base_test_environment,_merge_backend_entries, etc.) — no Pkg calls.src/environment.jlcontains Pkg operations and environment management (sync_test_env,activate,_write_environment!, etc.).test/uses TestItems and TestItemRunner.docs/contains the user-facing explanation and API reference..github/workflows/CI.ymluses the TestItems reusable workflow for linting, tests, coverage reporting, and documentation deployment.
- Run
julia --project=test test/runtests.jlfor the default suite. - Keep any backend-install behavior behind a dry-run or dependency-injected path so CI remains fast.
- Code, tests, README, and docs agree on
pathsemantics and public API. - Any changed workflow still matches the behavior implemented in
docs/make.jland the package entrypoints. - Default validation passes.
- New persistence or backend-detection behavior is covered by deterministic tests.