internationalcolorconsortium/iccdev/python-bindings-test
Claude Code and agent skill by internationalcolorconsortium/iccdev
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install internationalcolorconsortium/iccdev/python-bindings-testSKILL.md
Python Bindings Build and Test
Build and validate the iccdev Python/Cython bindings, CLI-backed XML/JSON/blob helpers, profile dump, and round-trip parity tests.
Steps
- Build iccDEV with tools enabled
``bash cmake -S Build/Cmake -B Build -DCMAKE_BUILD_TYPE=Release -DENABLE_TOOLS=ON cmake --build Build --parallel ``
- Generate test profiles
``bash cd Testing sh CreateAllProfiles.sh sh RunTests.sh cd .. ``
- Install Python package
``bash python -m pip install -e "./python[dev]" ``
- Run installed-import unit tests from the repository root
``bash python -m pytest --rootdir . --import-mode=importlib python/tests -v --tb=short -m "not parity" ``
- Run native parity tests
``bash ICCDEV_BUILD_DIR=$PWD/Build python -m pytest --rootdir . --import-mode=importlib python/tests -v --tb=short -m parity ``
Expected: XML/JSON/blob helper conversion, iccDumpProfile, iccRoundTrip, and PAWG smoke tests pass or skip only when the native tool build is absent.
- Validate both package build modes
- With
ICCDEV_BUILD_DIR, verify the extension imports and its Unix linkage
includes zlib when the static library was built with ICC_USE_ZLIB.
- Without
ICCDEV_BUILD_DIR, build and install the sdist in an isolated
environment. The portable inline source set must exclude the AVX2 and AVX-512 translation units.
- Run installed-package tests without assuming setuptools is present at
runtime.
- Validate shared wheel testing and release intake
From the repository root, use Python 3.13 with cibuildwheel 3.4.0, pytest, PyYAML, and packaging installed so the wheel inventory test is collected:
``bash python -m pytest --rootdir . --import-mode=importlib .github/tests/test_python_release_wheels.py .github/tests/test_python_test_collection.py -q python .github/scripts/validate-python-release-wheels.py <wheel-dir> --identifiers <wheel-dir>/build-identifiers.txt --lane <lane-id> ``
Use the matrix lane ID so a truncated identifier file cannot reduce the expected wheel inventory. Both ci-json-python and ci-latest-release call _build-python-wheels.yml: Python 3.13 drives cibuildwheel 3.4.0 across seven lanes and 36 CPython 3.11-3.14 wheels. Run the same installed-wheel not parity suite in both callers. Every target requires binary NumPy. Primary CI sets upload-wheels: false and run-wheel-smoke: false for its native jobs; other native callers keep the default smoke check. The release caller sets upload-wheels: true, downloads each iccdev-python-* artifact by name, and includes raw wheels in checksums and provenance. Do not reuse PR artifacts for publication. Public-package verification runs after all selected publications and records a diagnostic outcome so registry propagation does not block other releases. Require consistent wheel metadata/tags, native extension and type stubs, safe unique archive members, and the canonical BSD-3-Clause license. Require RECORD coverage, secure file hashes, and sizes. For raw downloaded release assets without CI identifier files, run the validator with --release to require all 36 wheels. Verify SHA256SUMS, SHA512SUMS, and provenance separately before installation. Record the exact release tag, source SHA, and tested wheel hashes; do not call release asset URLs immutable. Branch artifacts are local QA evidence, not a release. Follow docs/python-packaging-release.md for the interim GitHub route; do not infer PyPI publication from a branch push or successful local build.
- Run CI manually when requested
``bash gh workflow run ci-json-python.yml ``
Validation Checklist
- [ ]
iccToXml,iccFromXml,iccToJson,iccFromJson,iccDumpProfile, andiccRoundTripbinaries built - [ ] CreateAllProfiles completes without errors
- [ ] RunTests passes all tests
- [ ] Python package installs cleanly
- [ ] Pre-built Unix extension resolves zlib symbols
- [ ] Standalone sdist builds on non-x86 or universal targets without x86 SIMD sources
- [ ] Installed-package smoke does not require setuptools
- [ ] Primary and release callers use the same full installed-wheel matrix
- [ ] No tests collected (pytest exit code 5) fails primary CI
- [ ] Release wheel intake rejects missing, duplicate, mismatched, or incomplete wheels and identifier inventories
- [ ] Wheel metadata, archive paths, and complete license contents pass validation
- [ ] Raw release wheels participate in SHA256/SHA512 checksums and provenance
- [ ] Tests run from repository root with
--import-mode=importlib - [ ] XML/JSON/blob helper parity tests pass
- [ ] Profile dump and round-trip parity tests pass
- [ ] For native bug fixes, report separate ASAN/UBSAN results; release-wheel tests alone do not establish sanitizer coverage
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.github/skills/python-bindings-test/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/internationalcolorconsortium/iccdev/python-bindings-test)